├── .gitignore ├── .gitmodules ├── RichTextBlockInlineDecorator ├── Resources │ └── Icon128.png ├── RichTextBlockInlineDecorator.uplugin └── Source │ └── RichTextBlockInlineDecorator │ ├── Private │ ├── RichTextBlockInlineDecorator.cpp │ └── RichTextBlockInlineDecoratorModule.cpp │ ├── Public │ ├── RichTextBlockInlineDecorator.h │ └── RichTextBlockInlineDecoratorModule.h │ └── RichTextBlockInlineDecorator.Build.cs ├── Sentry ├── CHANGELOG.md ├── Config │ └── FilterPlugin.ini ├── Gradle │ └── gradle-wrapper.properties ├── LICENSE ├── Resources │ └── Icon128.png ├── Scripts │ ├── upload-debug-symbols-win.bat │ └── upload-debug-symbols.sh ├── Sentry.uplugin ├── Source │ ├── Sentry │ │ ├── Private │ │ │ ├── Android │ │ │ │ ├── Callbacks │ │ │ │ │ ├── SentryScopeCallbackAndroid.cpp │ │ │ │ │ └── SentryScopeCallbackAndroid.h │ │ │ │ ├── Infrastructure │ │ │ │ │ ├── SentryConvertorsAndroid.cpp │ │ │ │ │ ├── SentryConvertorsAndroid.h │ │ │ │ │ ├── SentryDataTypesAndroid.h │ │ │ │ │ ├── SentryJavaClasses.cpp │ │ │ │ │ ├── SentryJavaClasses.h │ │ │ │ │ ├── SentryJavaObjectWrapper.cpp │ │ │ │ │ └── SentryJavaObjectWrapper.h │ │ │ │ ├── Java │ │ │ │ │ └── SentryBridgeJava.java │ │ │ │ ├── Jni │ │ │ │ │ └── SentryJniAndroid.cpp │ │ │ │ ├── SentryAttachmentAndroid.cpp │ │ │ │ ├── SentryAttachmentAndroid.h │ │ │ │ ├── SentryBreadcrumbAndroid.cpp │ │ │ │ ├── SentryBreadcrumbAndroid.h │ │ │ │ ├── SentryEventAndroid.cpp │ │ │ │ ├── SentryEventAndroid.h │ │ │ │ ├── SentryHintAndroid.cpp │ │ │ │ ├── SentryHintAndroid.h │ │ │ │ ├── SentryIdAndroid.cpp │ │ │ │ ├── SentryIdAndroid.h │ │ │ │ ├── SentryMessageAndroid.cpp │ │ │ │ ├── SentryMessageAndroid.h │ │ │ │ ├── SentrySamplingContextAndroid.cpp │ │ │ │ ├── SentrySamplingContextAndroid.h │ │ │ │ ├── SentryScopeAndroid.cpp │ │ │ │ ├── SentryScopeAndroid.h │ │ │ │ ├── SentrySpanAndroid.cpp │ │ │ │ ├── SentrySpanAndroid.h │ │ │ │ ├── SentrySubsystemAndroid.cpp │ │ │ │ ├── SentrySubsystemAndroid.h │ │ │ │ ├── SentryTransactionAndroid.cpp │ │ │ │ ├── SentryTransactionAndroid.h │ │ │ │ ├── SentryTransactionContextAndroid.cpp │ │ │ │ ├── SentryTransactionContextAndroid.h │ │ │ │ ├── SentryTransactionOptionsAndroid.cpp │ │ │ │ ├── SentryTransactionOptionsAndroid.h │ │ │ │ ├── SentryUserAndroid.cpp │ │ │ │ ├── SentryUserAndroid.h │ │ │ │ ├── SentryUserFeedbackAndroid.cpp │ │ │ │ └── SentryUserFeedbackAndroid.h │ │ │ ├── Apple │ │ │ │ ├── Convenience │ │ │ │ │ ├── SentryInclude.h │ │ │ │ │ └── SentryMacro.h │ │ │ │ ├── Infrastructure │ │ │ │ │ ├── SentryConvertorsApple.cpp │ │ │ │ │ └── SentryConvertorsApple.h │ │ │ │ ├── SentryAttachmentApple.cpp │ │ │ │ ├── SentryAttachmentApple.h │ │ │ │ ├── SentryBreadcrumbApple.cpp │ │ │ │ ├── SentryBreadcrumbApple.h │ │ │ │ ├── SentryEventApple.cpp │ │ │ │ ├── SentryEventApple.h │ │ │ │ ├── SentryIdApple.cpp │ │ │ │ ├── SentryIdApple.h │ │ │ │ ├── SentrySamplingContextApple.cpp │ │ │ │ ├── SentrySamplingContextApple.h │ │ │ │ ├── SentryScopeApple.cpp │ │ │ │ ├── SentryScopeApple.h │ │ │ │ ├── SentrySpanApple.cpp │ │ │ │ ├── SentrySpanApple.h │ │ │ │ ├── SentrySubsystemApple.cpp │ │ │ │ ├── SentrySubsystemApple.h │ │ │ │ ├── SentryTransactionApple.cpp │ │ │ │ ├── SentryTransactionApple.h │ │ │ │ ├── SentryTransactionContextApple.cpp │ │ │ │ ├── SentryTransactionContextApple.h │ │ │ │ ├── SentryUserApple.cpp │ │ │ │ ├── SentryUserApple.h │ │ │ │ ├── SentryUserFeedbackApple.cpp │ │ │ │ └── SentryUserFeedbackApple.h │ │ │ ├── Desktop │ │ │ │ ├── Convenience │ │ │ │ │ └── SentryInclude.h │ │ │ │ ├── CrashReporter │ │ │ │ │ ├── SentryCrashContext.cpp │ │ │ │ │ ├── SentryCrashContext.h │ │ │ │ │ ├── SentryCrashReporter.cpp │ │ │ │ │ └── SentryCrashReporter.h │ │ │ │ ├── Infrastructure │ │ │ │ │ ├── SentryConvertorsDesktop.cpp │ │ │ │ │ └── SentryConvertorsDesktop.h │ │ │ │ ├── SentryBreadcrumbDesktop.cpp │ │ │ │ ├── SentryBreadcrumbDesktop.h │ │ │ │ ├── SentryEventDesktop.cpp │ │ │ │ ├── SentryEventDesktop.h │ │ │ │ ├── SentryIdDesktop.cpp │ │ │ │ ├── SentryIdDesktop.h │ │ │ │ ├── SentryScopeDesktop.cpp │ │ │ │ ├── SentryScopeDesktop.h │ │ │ │ ├── SentrySpanDesktop.cpp │ │ │ │ ├── SentrySpanDesktop.h │ │ │ │ ├── SentrySubsystemDesktop.cpp │ │ │ │ ├── SentrySubsystemDesktop.h │ │ │ │ ├── SentryTransactionContextDesktop.cpp │ │ │ │ ├── SentryTransactionContextDesktop.h │ │ │ │ ├── SentryTransactionDesktop.cpp │ │ │ │ ├── SentryTransactionDesktop.h │ │ │ │ ├── SentryUserDesktop.cpp │ │ │ │ ├── SentryUserDesktop.h │ │ │ │ ├── SentryUserFeedbackDesktop.cpp │ │ │ │ ├── SentryUserFeedbackDesktop.h │ │ │ │ └── Transport │ │ │ │ │ ├── SentryDsnUrl.cpp │ │ │ │ │ ├── SentryDsnUrl.h │ │ │ │ │ ├── SentryTransport.cpp │ │ │ │ │ └── SentryTransport.h │ │ │ ├── Interface │ │ │ │ ├── SentryAttachmentInterface.h │ │ │ │ ├── SentryBreadcrumbInterface.h │ │ │ │ ├── SentryEventInterface.h │ │ │ │ ├── SentryHintInterface.h │ │ │ │ ├── SentryIdInterface.h │ │ │ │ ├── SentrySamplingContextInterface.h │ │ │ │ ├── SentryScopeInterface.h │ │ │ │ ├── SentrySpanInterface.h │ │ │ │ ├── SentrySubsystemInterface.h │ │ │ │ ├── SentryTransactionContextInterface.h │ │ │ │ ├── SentryTransactionInterface.h │ │ │ │ ├── SentryUserFeedbackInterface.h │ │ │ │ └── SentryUserInterface.h │ │ │ ├── SentryAttachment.cpp │ │ │ ├── SentryBeforeSendHandler.cpp │ │ │ ├── SentryBreadcrumb.cpp │ │ │ ├── SentryDefines.h │ │ │ ├── SentryEvent.cpp │ │ │ ├── SentryHint.cpp │ │ │ ├── SentryId.cpp │ │ │ ├── SentryLibrary.cpp │ │ │ ├── SentryModule.cpp │ │ │ ├── SentryOutputDevice.cpp │ │ │ ├── SentryOutputDeviceError.cpp │ │ │ ├── SentrySamplingContext.cpp │ │ │ ├── SentryScope.cpp │ │ │ ├── SentrySettings.cpp │ │ │ ├── SentrySpan.cpp │ │ │ ├── SentrySubsystem.cpp │ │ │ ├── SentryTraceSampler.cpp │ │ │ ├── SentryTransaction.cpp │ │ │ ├── SentryTransactionContext.cpp │ │ │ ├── SentryUser.cpp │ │ │ ├── SentryUserFeedback.cpp │ │ │ ├── Tests │ │ │ │ ├── SentryBreadcrumb.spec.cpp │ │ │ │ ├── SentryEvent.spec.cpp │ │ │ │ ├── SentryScope.spec.cpp │ │ │ │ ├── SentrySubsystem.spec.cpp │ │ │ │ └── SentryUser.spec.cpp │ │ │ └── Utils │ │ │ │ ├── SentryFileUtils.cpp │ │ │ │ ├── SentryFileUtils.h │ │ │ │ ├── SentryScreenshotUtils.cpp │ │ │ │ └── SentryScreenshotUtils.h │ │ ├── Public │ │ │ ├── SentryAttachment.h │ │ │ ├── SentryBeforeSendHandler.h │ │ │ ├── SentryBreadcrumb.h │ │ │ ├── SentryDataTypes.h │ │ │ ├── SentryEvent.h │ │ │ ├── SentryHint.h │ │ │ ├── SentryId.h │ │ │ ├── SentryLibrary.h │ │ │ ├── SentryModule.h │ │ │ ├── SentryOutputDevice.h │ │ │ ├── SentryOutputDeviceError.h │ │ │ ├── SentrySamplingContext.h │ │ │ ├── SentryScope.h │ │ │ ├── SentrySettings.h │ │ │ ├── SentrySpan.h │ │ │ ├── SentrySubsystem.h │ │ │ ├── SentryTraceSampler.h │ │ │ ├── SentryTransaction.h │ │ │ ├── SentryTransactionContext.h │ │ │ ├── SentryUser.h │ │ │ └── SentryUserFeedback.h │ │ ├── Sentry.Build.cs │ │ ├── Sentry_Android_UPL.xml │ │ └── Sentry_IOS_UPL.xml │ ├── SentryEditor │ │ ├── Private │ │ │ ├── SentryEditorModule.cpp │ │ │ ├── SentrySettingsCustomization.cpp │ │ │ └── SentrySymToolsDownloader.cpp │ │ ├── Public │ │ │ ├── SentryEditorModule.h │ │ │ ├── SentrySettingsCustomization.h │ │ │ └── SentrySymToolsDownloader.h │ │ └── SentryEditor.Build.cs │ └── ThirdParty │ │ ├── Android │ │ ├── sentry-android-core-release.aar │ │ ├── sentry-android-ndk-release.aar │ │ └── sentry.jar │ │ ├── CLI │ │ ├── sentry-cli-Darwin-universal │ │ ├── sentry-cli-Linux-x86_64 │ │ └── sentry-cli-Windows-x86_64.exe │ │ ├── IOS │ │ ├── Sentry.embeddedframework.zip │ │ └── Sentry.framework │ │ │ ├── Headers │ │ │ ├── Sentry-Swift.h │ │ │ ├── Sentry.h │ │ │ ├── SentryAttachment.h │ │ │ ├── SentryBaggage.h │ │ │ ├── SentryBreadcrumb.h │ │ │ ├── SentryClient.h │ │ │ ├── SentryCrashExceptionApplication.h │ │ │ ├── SentryDebugImageProvider.h │ │ │ ├── SentryDebugMeta.h │ │ │ ├── SentryDefines.h │ │ │ ├── SentryDsn.h │ │ │ ├── SentryEnvelopeItemHeader.h │ │ │ ├── SentryError.h │ │ │ ├── SentryEvent.h │ │ │ ├── SentryException.h │ │ │ ├── SentryFrame.h │ │ │ ├── SentryGeo.h │ │ │ ├── SentryHttpStatusCodeRange.h │ │ │ ├── SentryHub.h │ │ │ ├── SentryMeasurementUnit.h │ │ │ ├── SentryMechanism.h │ │ │ ├── SentryMechanismMeta.h │ │ │ ├── SentryMessage.h │ │ │ ├── SentryNSError.h │ │ │ ├── SentryOptions.h │ │ │ ├── SentryProfilingConditionals.h │ │ │ ├── SentryReplayApi.h │ │ │ ├── SentryRequest.h │ │ │ ├── SentrySDK.h │ │ │ ├── SentrySampleDecision.h │ │ │ ├── SentrySamplingContext.h │ │ │ ├── SentryScope.h │ │ │ ├── SentrySerializable.h │ │ │ ├── SentrySpanContext.h │ │ │ ├── SentrySpanId.h │ │ │ ├── SentrySpanProtocol.h │ │ │ ├── SentrySpanStatus.h │ │ │ ├── SentryStacktrace.h │ │ │ ├── SentryThread.h │ │ │ ├── SentryTraceContext.h │ │ │ ├── SentryTraceHeader.h │ │ │ ├── SentryTransactionContext.h │ │ │ ├── SentryUser.h │ │ │ ├── SentryUserFeedback.h │ │ │ └── SentryWithoutUIKit.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ ├── Sentry.swiftmodule │ │ │ │ ├── arm64-apple-ios.abi.json │ │ │ │ ├── arm64-apple-ios.private.swiftinterface │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ ├── arm64-apple-ios.swiftinterface │ │ │ │ ├── arm64-apple-ios.swiftmodule │ │ │ │ ├── arm64e-apple-ios.abi.json │ │ │ │ ├── arm64e-apple-ios.private.swiftinterface │ │ │ │ ├── arm64e-apple-ios.swiftdoc │ │ │ │ ├── arm64e-apple-ios.swiftinterface │ │ │ │ └── arm64e-apple-ios.swiftmodule │ │ │ └── module.modulemap │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ ├── PrivateHeaders │ │ │ ├── PrivateSentrySDKOnly.h │ │ │ ├── PrivatesHeader.h │ │ │ ├── SentryAppStartMeasurement.h │ │ │ ├── SentryAsynchronousOperation.h │ │ │ ├── SentryAutoSessionTrackingIntegration.h │ │ │ ├── SentryCrashInstallationReporter.h │ │ │ ├── SentryCrashReportConverter.h │ │ │ ├── SentryCrashReportSink.h │ │ │ ├── SentryDateUtils.h │ │ │ ├── SentryEnvelope.h │ │ │ ├── SentryEnvelopeItemType.h │ │ │ ├── SentryLog.h │ │ │ ├── SentryNSDataUtils.h │ │ │ ├── SentryNSDictionarySanitize.h │ │ │ ├── SentryOptions+HybridSDKs.h │ │ │ ├── SentryOptions+Private.h │ │ │ ├── SentryRequestOperation.h │ │ │ ├── SentrySDK+Private.h │ │ │ ├── SentryScreenFrames.h │ │ │ ├── SentrySdkInfo.h │ │ │ └── SentrySwift.h │ │ │ └── Sentry │ │ ├── Linux │ │ ├── bin │ │ │ └── crashpad_handler │ │ ├── include │ │ │ └── sentry.h │ │ └── lib │ │ │ ├── libcrashpad_client.a │ │ │ ├── libcrashpad_compat.a │ │ │ ├── libcrashpad_handler_lib.a │ │ │ ├── libcrashpad_minidump.a │ │ │ ├── libcrashpad_snapshot.a │ │ │ ├── libcrashpad_tools.a │ │ │ ├── libcrashpad_util.a │ │ │ ├── libmini_chromium.a │ │ │ └── libsentry.a │ │ ├── Mac │ │ ├── bin │ │ │ └── sentry.dylib │ │ └── include │ │ │ └── Sentry │ │ │ ├── PrivateSentrySDKOnly.h │ │ │ ├── PrivatesHeader.h │ │ │ ├── Sentry-Swift.h │ │ │ ├── Sentry.h │ │ │ ├── SentryAppStartMeasurement.h │ │ │ ├── SentryAsynchronousOperation.h │ │ │ ├── SentryAttachment.h │ │ │ ├── SentryAutoSessionTrackingIntegration.h │ │ │ ├── SentryBaggage.h │ │ │ ├── SentryBreadcrumb.h │ │ │ ├── SentryClient.h │ │ │ ├── SentryCrashExceptionApplication.h │ │ │ ├── SentryCrashInstallationReporter.h │ │ │ ├── SentryCrashReportConverter.h │ │ │ ├── SentryCrashReportSink.h │ │ │ ├── SentryDateUtils.h │ │ │ ├── SentryDebugImageProvider.h │ │ │ ├── SentryDebugMeta.h │ │ │ ├── SentryDefines.h │ │ │ ├── SentryDsn.h │ │ │ ├── SentryEnvelope.h │ │ │ ├── SentryEnvelopeItemHeader.h │ │ │ ├── SentryEnvelopeItemType.h │ │ │ ├── SentryError.h │ │ │ ├── SentryEvent.h │ │ │ ├── SentryException.h │ │ │ ├── SentryFrame.h │ │ │ ├── SentryGeo.h │ │ │ ├── SentryHttpStatusCodeRange.h │ │ │ ├── SentryHub.h │ │ │ ├── SentryLog.h │ │ │ ├── SentryMeasurementUnit.h │ │ │ ├── SentryMechanism.h │ │ │ ├── SentryMechanismMeta.h │ │ │ ├── SentryMessage.h │ │ │ ├── SentryNSDataUtils.h │ │ │ ├── SentryNSDictionarySanitize.h │ │ │ ├── SentryNSError.h │ │ │ ├── SentryOptions+HybridSDKs.h │ │ │ ├── SentryOptions+Private.h │ │ │ ├── SentryOptions.h │ │ │ ├── SentryProfilingConditionals.h │ │ │ ├── SentryReplayApi.h │ │ │ ├── SentryRequest.h │ │ │ ├── SentryRequestOperation.h │ │ │ ├── SentrySDK+Private.h │ │ │ ├── SentrySDK.h │ │ │ ├── SentrySampleDecision.h │ │ │ ├── SentrySamplingContext.h │ │ │ ├── SentryScope.h │ │ │ ├── SentryScreenFrames.h │ │ │ ├── SentrySdkInfo.h │ │ │ ├── SentrySerializable.h │ │ │ ├── SentrySpanContext.h │ │ │ ├── SentrySpanId.h │ │ │ ├── SentrySpanProtocol.h │ │ │ ├── SentrySpanStatus.h │ │ │ ├── SentryStacktrace.h │ │ │ ├── SentrySwift.h │ │ │ ├── SentryThread.h │ │ │ ├── SentryTraceContext.h │ │ │ ├── SentryTraceHeader.h │ │ │ ├── SentryTransactionContext.h │ │ │ ├── SentryUser.h │ │ │ ├── SentryUserFeedback.h │ │ │ └── SentryWithoutUIKit.h │ │ └── Win64 │ │ ├── Breakpad │ │ ├── include │ │ │ └── sentry.h │ │ └── lib │ │ │ ├── breakpad_client.lib │ │ │ └── sentry.lib │ │ └── Crashpad │ │ ├── bin │ │ └── crashpad_handler.exe │ │ ├── include │ │ └── sentry.h │ │ └── lib │ │ ├── crashpad_client.lib │ │ ├── crashpad_compat.lib │ │ ├── crashpad_getopt.lib │ │ ├── crashpad_handler_lib.lib │ │ ├── crashpad_minidump.lib │ │ ├── crashpad_snapshot.lib │ │ ├── crashpad_tools.lib │ │ ├── crashpad_util.lib │ │ ├── crashpad_zlib.lib │ │ ├── mini_chromium.lib │ │ └── sentry.lib └── sentry-cli.properties ├── SteamAudio ├── Config │ └── BaseSteamAudio.ini ├── Content │ ├── Materials │ │ ├── Brick.uasset │ │ ├── Carpet.uasset │ │ ├── Ceramic.uasset │ │ ├── Concrete.uasset │ │ ├── Default.uasset │ │ ├── Glass.uasset │ │ ├── Gravel.uasset │ │ ├── Metal.uasset │ │ ├── Plaster.uasset │ │ ├── Rock.uasset │ │ └── Wood.uasset │ ├── S_SteamAudioGeometry_16.png │ ├── S_SteamAudioListener_16.png │ ├── S_SteamAudioMaterial_16.png │ ├── S_SteamAudioOcclusionSettings_16.png │ ├── S_SteamAudioOcclusionSettings_64.png │ ├── S_SteamAudioProbe_16.png │ ├── S_SteamAudioReverbSettings_16.png │ ├── S_SteamAudioReverbSettings_64.png │ ├── S_SteamAudioSource_16.png │ ├── S_SteamAudioSpatializationSettings_16.png │ ├── S_SteamAudioSpatializationSettings_64.png │ ├── SteamAudio_EdMode_16.png │ └── SteamAudio_EdMode_40.png ├── Resources │ └── Icon128.png ├── Source │ ├── SteamAudio │ │ ├── Private │ │ │ ├── SOFAFile.cpp │ │ │ ├── SteamAudioBakedListenerComponent.cpp │ │ │ ├── SteamAudioBakedSourceComponent.cpp │ │ │ ├── SteamAudioCommon.cpp │ │ │ ├── SteamAudioCommon.h │ │ │ ├── SteamAudioDynamicObjectComponent.cpp │ │ │ ├── SteamAudioGeometryComponent.cpp │ │ │ ├── SteamAudioListenerComponent.cpp │ │ │ ├── SteamAudioManager.cpp │ │ │ ├── SteamAudioManager.h │ │ │ ├── SteamAudioMaterial.cpp │ │ │ ├── SteamAudioModule.cpp │ │ │ ├── SteamAudioOcclusion.cpp │ │ │ ├── SteamAudioOcclusion.h │ │ │ ├── SteamAudioOcclusionSettings.cpp │ │ │ ├── SteamAudioProbeComponent.cpp │ │ │ ├── SteamAudioProbeVolume.cpp │ │ │ ├── SteamAudioReverb.cpp │ │ │ ├── SteamAudioReverb.h │ │ │ ├── SteamAudioReverbSettings.cpp │ │ │ ├── SteamAudioScene.cpp │ │ │ ├── SteamAudioScene.h │ │ │ ├── SteamAudioSerializedObject.cpp │ │ │ ├── SteamAudioSettings.cpp │ │ │ ├── SteamAudioSourceComponent.cpp │ │ │ ├── SteamAudioSpatialization.cpp │ │ │ ├── SteamAudioSpatialization.h │ │ │ ├── SteamAudioSpatializationSettings.cpp │ │ │ ├── SteamAudioStaticMeshActor.cpp │ │ │ ├── SteamAudioUnrealAudioEngineInterface.cpp │ │ │ └── SteamAudioUnrealAudioEngineInterface.h │ │ ├── Public │ │ │ ├── SOFAFile.h │ │ │ ├── SteamAudioAudioEngineInterface.h │ │ │ ├── SteamAudioBakedListenerComponent.h │ │ │ ├── SteamAudioBakedSourceComponent.h │ │ │ ├── SteamAudioDynamicObjectComponent.h │ │ │ ├── SteamAudioGeometryComponent.h │ │ │ ├── SteamAudioListenerComponent.h │ │ │ ├── SteamAudioMaterial.h │ │ │ ├── SteamAudioModule.h │ │ │ ├── SteamAudioOcclusionSettings.h │ │ │ ├── SteamAudioProbeComponent.h │ │ │ ├── SteamAudioProbeVolume.h │ │ │ ├── SteamAudioReverbSettings.h │ │ │ ├── SteamAudioSerializedObject.h │ │ │ ├── SteamAudioSettings.h │ │ │ ├── SteamAudioSourceComponent.h │ │ │ ├── SteamAudioSpatializationSettings.h │ │ │ └── SteamAudioStaticMeshActor.h │ │ └── SteamAudio.Build.cs │ ├── SteamAudioEditor │ │ ├── Private │ │ │ ├── SOFAFileFactory.cpp │ │ │ ├── SOFAFileFactory.h │ │ │ ├── SteamAudioBakeWindow.cpp │ │ │ ├── SteamAudioBakeWindow.h │ │ │ ├── SteamAudioBakedListenerComponentVisualizer.cpp │ │ │ ├── SteamAudioBakedListenerComponentVisualizer.h │ │ │ ├── SteamAudioBakedListenerDetails.cpp │ │ │ ├── SteamAudioBakedListenerDetails.h │ │ │ ├── SteamAudioBakedSourceComponentVisualizer.cpp │ │ │ ├── SteamAudioBakedSourceComponentVisualizer.h │ │ │ ├── SteamAudioBakedSourceDetails.cpp │ │ │ ├── SteamAudioBakedSourceDetails.h │ │ │ ├── SteamAudioBaking.cpp │ │ │ ├── SteamAudioBaking.h │ │ │ ├── SteamAudioDynamicObjectDetails.cpp │ │ │ ├── SteamAudioDynamicObjectDetails.h │ │ │ ├── SteamAudioEditorModule.cpp │ │ │ ├── SteamAudioListenerDetails.cpp │ │ │ ├── SteamAudioListenerDetails.h │ │ │ ├── SteamAudioMaterialFactory.cpp │ │ │ ├── SteamAudioMaterialFactory.h │ │ │ ├── SteamAudioOcclusionSettingsFactory.cpp │ │ │ ├── SteamAudioOcclusionSettingsFactory.h │ │ │ ├── SteamAudioProbeComponentVisualizer.cpp │ │ │ ├── SteamAudioProbeComponentVisualizer.h │ │ │ ├── SteamAudioProbeVolumeDetails.cpp │ │ │ ├── SteamAudioProbeVolumeDetails.h │ │ │ ├── SteamAudioReverbSettingsFactory.cpp │ │ │ ├── SteamAudioReverbSettingsFactory.h │ │ │ ├── SteamAudioSourceComponentVisualizer.cpp │ │ │ ├── SteamAudioSourceComponentVisualizer.h │ │ │ ├── SteamAudioSpatializationSettingsFactory.cpp │ │ │ ├── SteamAudioSpatializationSettingsFactory.h │ │ │ ├── TickableNotification.cpp │ │ │ └── TickableNotification.h │ │ ├── Public │ │ │ └── SteamAudioEditorModule.h │ │ └── SteamAudioEditor.Build.cs │ └── SteamAudioSDK │ │ ├── SteamAudioSDK.Build.cs │ │ ├── SteamAudioSDK_APL.xml │ │ ├── include │ │ ├── phonon.h │ │ ├── phonon_interfaces.h │ │ └── phonon_version.h │ │ └── lib │ │ └── windows-x64 │ │ ├── GPUUtilities.dll │ │ ├── GPUUtilities.lib │ │ ├── TrueAudioNext.dll │ │ ├── TrueAudioNext.lib │ │ ├── phonon.dll │ │ ├── phonon.lib │ │ └── phonon.pdb └── SteamAudio.uplugin └── SteamAudioFMODStudio ├── Resources └── Icon128.png ├── Source └── SteamAudioFMODStudio │ ├── Private │ └── SteamAudioFMODStudio.cpp │ ├── Public │ └── SteamAudioFMODStudio.h │ └── SteamAudioFMODStudio.Build.cs └── SteamAudioFMODStudio.uplugin /.gitignore: -------------------------------------------------------------------------------- 1 | Intermediate 2 | Binaries 3 | Saved 4 | Build 5 | 6 | # Large libs that we compress 7 | ULIS1.0.lib 8 | libULIS1.0.a 9 | libzmq_d.lib 10 | 11 | # raddbg 12 | *.rdi 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Prefabricator"] 2 | path = Prefabricator 3 | url = https://github.com/ProjectBorealis/prefabricator-ue4.git 4 | branch = master 5 | [submodule "ArcticAnalytics"] 6 | path = ArcticAnalytics 7 | url = https://github.com/ProjectBorealis/ArcticAnalytics.git 8 | branch = master 9 | [submodule "DiscordGameSDK"] 10 | path = DiscordGameSDK 11 | url = https://github.com/ProjectBorealis/DiscordGameSDK.git 12 | branch = master 13 | [submodule "SplashSettings"] 14 | path = SplashSettings 15 | url = https://github.com/ProjectBorealis/SplashSettings.git 16 | branch = main 17 | [submodule "IAUS"] 18 | path = IAUS 19 | url = https://github.com/ProjectBorealis/IAUS.git 20 | branch = ue5 21 | [submodule "FillDDCForPIE"] 22 | path = FillDDCForPIE 23 | url = https://github.com/ProjectBorealis/FillDDCForPIE.git 24 | branch = master 25 | [submodule "Blast"] 26 | path = Blast 27 | url = https://github.com/ProjectBorealis/Blast-UE-Plugin.git 28 | branch = main 29 | [submodule "ALSV4_CPP"] 30 | path = ALSV4_CPP 31 | url = https://github.com/ProjectBorealis/ALS-Community-UE5.git 32 | branch = main 33 | [submodule "AsyncLoadingScreen"] 34 | path = AsyncLoadingScreen 35 | url = https://github.com/ProjectBorealis/AsyncLoadingScreen.git 36 | branch = master 37 | [submodule "UEGitPlugin"] 38 | path = UEGitPlugin 39 | url = https://github.com/ProjectBorealis/UEGitPlugin.git 40 | branch = dev 41 | [submodule "VisualStudioTools"] 42 | path = VisualStudioTools 43 | url = https://github.com/ProjectBorealis/vc-ue-extensions 44 | branch = main 45 | [submodule "StevesUEHelpers"] 46 | path = StevesUEHelpers 47 | url = https://github.com/ProjectBorealis/StevesUEHelpers.git 48 | -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/RichTextBlockInlineDecorator/Resources/Icon128.png -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/RichTextBlockInlineDecorator.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 9, 4 | "VersionName": "1.7", 5 | "FriendlyName": "RichTextBlock Inline Decorator", 6 | "Description": "Allows inline styling of text using tags, supporting functionality that used to exist in the engine pre-4.20", 7 | "Category": "User Interface", 8 | "CreatedBy": "Sam Bonifacio", 9 | "CreatedByURL": "https://www.unrealengine.com/marketplace/en-US/profile/Sam+Bonifacio", 10 | "DocsURL": "https://forums.unrealengine.com/community/community-content-tools-and-tutorials/1536690-inline-styling-decorator-for-rich-text-block", 11 | "MarketplaceURL": "", 12 | "SupportURL": "https://forums.unrealengine.com/community/community-content-tools-and-tutorials/1536690-inline-styling-decorator-for-rich-text-block", 13 | "CanContainContent": false, 14 | "Modules": [ 15 | { 16 | "Name": "RichTextBlockInlineDecorator", 17 | "Type": "Runtime", 18 | "LoadingPhase": "Default" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/Source/RichTextBlockInlineDecorator/Private/RichTextBlockInlineDecoratorModule.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2018 Sam Bonifacio. All Rights Reserved. 2 | 3 | #include "RichTextBlockInlineDecoratorModule.h" 4 | 5 | #define LOCTEXT_NAMESPACE "FRichTextBlockInlineDecoratorModule" 6 | 7 | void FRichTextBlockInlineDecoratorModule::StartupModule() 8 | { 9 | // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module 10 | } 11 | 12 | void FRichTextBlockInlineDecoratorModule::ShutdownModule() 13 | { 14 | // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, 15 | // we call this function before unloading the module. 16 | } 17 | 18 | #undef LOCTEXT_NAMESPACE 19 | 20 | IMPLEMENT_MODULE(FRichTextBlockInlineDecoratorModule, RichTextBlockInlineDecorator) -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/Source/RichTextBlockInlineDecorator/Public/RichTextBlockInlineDecorator.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 Sam Bonifacio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Components/RichTextBlockDecorator.h" 6 | #include "RichTextBlockInlineDecorator.generated.h" 7 | 8 | /** 9 | * Allows inline styling of text using tags, supporting functionality that used to exist in the engine pre-4.20 10 | */ 11 | UCLASS() 12 | class URichTextBlockInlineDecorator : public URichTextBlockDecorator 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | URichTextBlockInlineDecorator(const FObjectInitializer& ObjectInitializer); 18 | 19 | virtual TSharedPtr CreateDecorator(URichTextBlock* InOwner) override; 20 | }; -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/Source/RichTextBlockInlineDecorator/Public/RichTextBlockInlineDecoratorModule.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 Sam Bonifacio. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Modules/ModuleManager.h" 7 | 8 | class FRichTextBlockInlineDecoratorModule : public IModuleInterface 9 | { 10 | public: 11 | 12 | /** IModuleInterface implementation */ 13 | virtual void StartupModule() override; 14 | virtual void ShutdownModule() override; 15 | }; 16 | -------------------------------------------------------------------------------- /RichTextBlockInlineDecorator/Source/RichTextBlockInlineDecorator/RichTextBlockInlineDecorator.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 Sam Bonifacio. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class RichTextBlockInlineDecorator : ModuleRules 6 | { 7 | public RichTextBlockInlineDecorator(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicIncludePaths.AddRange( 12 | new string[] { 13 | // ... add public include paths required here ... 14 | } 15 | ); 16 | 17 | 18 | PrivateIncludePaths.AddRange( 19 | new string[] { 20 | // ... add other private include paths required here ... 21 | } 22 | ); 23 | 24 | 25 | PublicDependencyModuleNames.AddRange( 26 | new string[] 27 | { 28 | "Core", 29 | // ... add other public dependencies that you statically link with here ... 30 | } 31 | ); 32 | 33 | 34 | PrivateDependencyModuleNames.AddRange( 35 | new string[] 36 | { 37 | "CoreUObject", 38 | "Engine", 39 | "Slate", 40 | "SlateCore", 41 | "UMG" 42 | // ... add private dependencies that you statically link with here ... 43 | } 44 | ); 45 | 46 | 47 | DynamicallyLoadedModuleNames.AddRange( 48 | new string[] 49 | { 50 | // ... add any modules that your module loads dynamically here ... 51 | } 52 | ); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Sentry/Config/FilterPlugin.ini: -------------------------------------------------------------------------------- 1 | [FilterPlugin] 2 | ; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and 3 | ; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively. 4 | ; 5 | ; Examples: 6 | ; /README.txt 7 | ; /Extras/... 8 | ; /Binaries/ThirdParty/*.dll 9 | /Scripts/* 10 | /Gradle/* 11 | /sentry-cli.properties -------------------------------------------------------------------------------- /Sentry/Gradle/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip 6 | -------------------------------------------------------------------------------- /Sentry/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-2024 Sentry 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Sentry/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Resources/Icon128.png -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/Callbacks/SentryScopeCallbackAndroid.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryScopeCallbackAndroid.h" 4 | 5 | USentryScopeCallbackAndroid::USentryScopeCallbackAndroid() 6 | { 7 | if (USentryScope::StaticClass()->GetDefaultObject() != this) 8 | { 9 | AddToRoot(); 10 | } 11 | } 12 | 13 | void USentryScopeCallbackAndroid::BindDelegate(const FConfigureScopeNativeDelegate& OnConfigure) 14 | { 15 | OnConfigureDelegate = OnConfigure; 16 | } 17 | 18 | void USentryScopeCallbackAndroid::ExecuteDelegate(USentryScope* Scope) 19 | { 20 | OnConfigureDelegate.ExecuteIfBound(Scope); 21 | RemoveFromRoot(); 22 | } 23 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/Callbacks/SentryScopeCallbackAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentryScope.h" 8 | 9 | #include "SentryScopeCallbackAndroid.generated.h" 10 | 11 | UCLASS() 12 | class USentryScopeCallbackAndroid : public UObject 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | USentryScopeCallbackAndroid(); 18 | 19 | void BindDelegate(const FConfigureScopeNativeDelegate& OnConfigure); 20 | void ExecuteDelegate(USentryScope* Scope); 21 | 22 | private: 23 | FConfigureScopeNativeDelegate OnConfigureDelegate; 24 | }; 25 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/Infrastructure/SentryDataTypesAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Android/AndroidJNI.h" 6 | 7 | enum class ESentryJavaClassType : uint8 8 | { 9 | System = 0, 10 | External 11 | }; 12 | 13 | struct FSentryJavaClass 14 | { 15 | FName Name; 16 | ESentryJavaClassType Type; 17 | }; 18 | 19 | struct FSentryJavaMethod 20 | { 21 | FName Name; 22 | FName Signature; 23 | jmethodID Method; 24 | bool IsStatic; 25 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/Infrastructure/SentryJavaClasses.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "SentryDataTypesAndroid.h" 6 | 7 | struct SentryJavaClasses 8 | { 9 | // External Java classes 10 | const static FSentryJavaClass SentryBridgeJava; 11 | const static FSentryJavaClass Sentry; 12 | const static FSentryJavaClass Attachment; 13 | const static FSentryJavaClass Breadcrumb; 14 | const static FSentryJavaClass SentryEvent; 15 | const static FSentryJavaClass SentryId; 16 | const static FSentryJavaClass Scope; 17 | const static FSentryJavaClass User; 18 | const static FSentryJavaClass UserFeedback; 19 | const static FSentryJavaClass Message; 20 | const static FSentryJavaClass SentryLevel; 21 | const static FSentryJavaClass SentryHint; 22 | const static FSentryJavaClass Transaction; 23 | const static FSentryJavaClass Span; 24 | const static FSentryJavaClass SamplingContext; 25 | const static FSentryJavaClass CustomSamplingContext; 26 | const static FSentryJavaClass TransactionContext; 27 | const static FSentryJavaClass TransactionOptions; 28 | const static FSentryJavaClass SentryTraceHeader; 29 | 30 | // System Java classes 31 | const static FSentryJavaClass ArrayList; 32 | const static FSentryJavaClass HashMap; 33 | const static FSentryJavaClass Map; 34 | const static FSentryJavaClass Set; 35 | const static FSentryJavaClass Iterator; 36 | const static FSentryJavaClass MapEntry; 37 | const static FSentryJavaClass List; 38 | const static FSentryJavaClass Double; 39 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryAttachmentAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryAttachmentInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryAttachmentAndroid : public ISentryAttachment, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryAttachmentAndroid(const TArray& data, const FString& filename, const FString& contentType); 13 | SentryAttachmentAndroid(const FString& path, const FString& filename, const FString& contentType); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual TArray GetData() const override; 18 | virtual FString GetPath() const override; 19 | virtual FString GetFilename() const override; 20 | virtual FString GetContentType() const override; 21 | 22 | private: 23 | FSentryJavaMethod GetDataMethod; 24 | FSentryJavaMethod GetPathMethod; 25 | FSentryJavaMethod GetFilenameMethod; 26 | FSentryJavaMethod GetContentTypeMethod; 27 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryBreadcrumbAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryBreadcrumbInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryBreadcrumbAndroid : public ISentryBreadcrumb, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryBreadcrumbAndroid(); 13 | SentryBreadcrumbAndroid(jobject breadcrumb); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual void SetMessage(const FString& message) override; 18 | virtual FString GetMessage() const override; 19 | virtual void SetType(const FString& type) override; 20 | virtual FString GetType() const override; 21 | virtual void SetCategory(const FString& category) override; 22 | virtual FString GetCategory() const override; 23 | virtual void SetData(const TMap& data) override; 24 | virtual TMap GetData() const override; 25 | virtual void SetLevel(ESentryLevel level) override; 26 | virtual ESentryLevel GetLevel() const override; 27 | 28 | private: 29 | FSentryJavaMethod SetMessageMethod; 30 | FSentryJavaMethod GetMessageMethod; 31 | FSentryJavaMethod SetTypeMethod; 32 | FSentryJavaMethod GetTypeMethod; 33 | FSentryJavaMethod SetCategoryMethod; 34 | FSentryJavaMethod GetCategoryMethod; 35 | FSentryJavaMethod SetDataMethod; 36 | FSentryJavaMethod GetDataMethod; 37 | FSentryJavaMethod SetLevelMethod; 38 | FSentryJavaMethod GetLevelMethod; 39 | }; 40 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryEventAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryEventInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryEventAndroid : public ISentryEvent, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryEventAndroid(); 13 | SentryEventAndroid(jobject event); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual void SetMessage(const FString& message) override; 18 | virtual FString GetMessage() const override; 19 | virtual void SetLevel(ESentryLevel level) override; 20 | virtual ESentryLevel GetLevel() const override; 21 | virtual bool IsCrash() const override; 22 | virtual bool IsAnr() const override; 23 | 24 | private: 25 | FSentryJavaMethod SetMessageMethod; 26 | FSentryJavaMethod GetMessageMethod; 27 | FSentryJavaMethod SetLevelMethod; 28 | FSentryJavaMethod GetLevelMethod; 29 | FSentryJavaMethod IsCrashMethod; 30 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryHintAndroid.cpp: -------------------------------------------------------------------------------- 1 | #include "SentryHintAndroid.h" 2 | 3 | #include "SentryAttachmentAndroid.h" 4 | 5 | #include "SentryAttachment.h" 6 | 7 | #include "Infrastructure/SentryJavaClasses.h" 8 | 9 | SentryHintAndroid::SentryHintAndroid() 10 | : FSentryJavaObjectWrapper(SentryJavaClasses::SentryHint, "()V") 11 | { 12 | SetupClassMethods(); 13 | } 14 | 15 | SentryHintAndroid::SentryHintAndroid(jobject hint) 16 | : FSentryJavaObjectWrapper(SentryJavaClasses::SentryHint, hint) 17 | { 18 | SetupClassMethods(); 19 | } 20 | 21 | void SentryHintAndroid::SetupClassMethods() 22 | { 23 | AddAttachmentMethod = GetMethod("addAttachment", "(Lio/sentry/Attachment;)V"); 24 | } 25 | 26 | void SentryHintAndroid::AddAttachment(USentryAttachment* attachment) 27 | { 28 | TSharedPtr attachmentAndroid = StaticCastSharedPtr(attachment->GetNativeImpl()); 29 | CallMethod(AddAttachmentMethod, attachmentAndroid->GetJObject()); 30 | } -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryHintAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryHintInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryHintAndroid : public ISentryHint, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryHintAndroid(); 13 | SentryHintAndroid(jobject hint); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual void AddAttachment(USentryAttachment* attachment) override; 18 | 19 | private: 20 | FSentryJavaMethod AddAttachmentMethod; 21 | }; 22 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryIdAndroid.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryIdAndroid.h" 4 | 5 | #include "Infrastructure/SentryJavaClasses.h" 6 | 7 | SentryIdAndroid::SentryIdAndroid() 8 | : FSentryJavaObjectWrapper(SentryJavaClasses::SentryId, "()V") 9 | { 10 | SetupClassMethods(); 11 | } 12 | 13 | SentryIdAndroid::SentryIdAndroid(jobject id) 14 | : FSentryJavaObjectWrapper(SentryJavaClasses::SentryId, id) 15 | { 16 | SetupClassMethods(); 17 | } 18 | 19 | void SentryIdAndroid::SetupClassMethods() 20 | { 21 | ToStringMethod = GetMethod("toString", "()Ljava/lang/String;"); 22 | } 23 | 24 | FString SentryIdAndroid::ToString() const 25 | { 26 | return CallMethod(ToStringMethod); 27 | } 28 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryIdAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryIdInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryIdAndroid : public ISentryId, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryIdAndroid(); 13 | SentryIdAndroid(jobject id); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual FString ToString() const override; 18 | 19 | private: 20 | FSentryJavaMethod ToStringMethod; 21 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryMessageAndroid.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryMessageAndroid.h" 4 | 5 | #include "Infrastructure/SentryJavaClasses.h" 6 | 7 | SentryMessageAndroid::SentryMessageAndroid(const FString& message) 8 | : FSentryJavaObjectWrapper(SentryJavaClasses::Message, "()V") 9 | { 10 | SetupClassMethods(); 11 | 12 | CallMethod(SetMessageMethod, *GetJString(message)); 13 | } 14 | 15 | SentryMessageAndroid::SentryMessageAndroid(jobject message) 16 | : FSentryJavaObjectWrapper(SentryJavaClasses::Message, message) 17 | { 18 | SetupClassMethods(); 19 | } 20 | 21 | void SentryMessageAndroid::SetupClassMethods() 22 | { 23 | SetMessageMethod = GetMethod("setMessage", "(Ljava/lang/String;)V"); 24 | GetMessageMethod = GetMethod("getMessage", "()Ljava/lang/String;"); 25 | } 26 | 27 | FString SentryMessageAndroid::ToString() const 28 | { 29 | return CallMethod(GetMessageMethod); 30 | } -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryMessageAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Infrastructure/SentryJavaObjectWrapper.h" 6 | 7 | class SentryMessageAndroid : public FSentryJavaObjectWrapper 8 | { 9 | public: 10 | SentryMessageAndroid(const FString& message); 11 | SentryMessageAndroid(jobject message); 12 | 13 | void SetupClassMethods(); 14 | 15 | virtual FString ToString() const; 16 | 17 | private: 18 | FSentryJavaMethod SetMessageMethod; 19 | FSentryJavaMethod GetMessageMethod; 20 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentrySamplingContextAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentrySamplingContextInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentrySamplingContextAndroid : public ISentrySamplingContext, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentrySamplingContextAndroid(jobject samplingContext); 13 | 14 | void SetupClassMethods(); 15 | 16 | virtual USentryTransactionContext* GetTransactionContext() const override; 17 | virtual TMap GetCustomSamplingContext() const override; 18 | 19 | private: 20 | FSentryJavaMethod GetTransactionContextMethod; 21 | FSentryJavaMethod GetCustomSamplingContextMethod; 22 | }; 23 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentrySpanAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentrySpanInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentrySpanAndroid : public ISentrySpan, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentrySpanAndroid(jobject span); 13 | 14 | void SetupClassMethods(); 15 | 16 | virtual void Finish() override; 17 | virtual bool IsFinished() const override; 18 | virtual void SetTag(const FString& key, const FString& value) override; 19 | virtual void RemoveTag(const FString& key) override; 20 | virtual void SetData(const FString& key, const TMap& values) override; 21 | virtual void RemoveData(const FString& key) override; 22 | virtual void GetTrace(FString& name, FString& value) override; 23 | 24 | private: 25 | FSentryJavaMethod FinishMethod; 26 | FSentryJavaMethod IsFinishedMethod; 27 | FSentryJavaMethod SetTagMethod; 28 | FSentryJavaMethod SetDataMethod; 29 | FSentryJavaMethod ToSentryTraceMethod; 30 | }; 31 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryTransactionAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryTransactionInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryTransactionAndroid : public ISentryTransaction, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryTransactionAndroid(jobject transaction); 13 | 14 | void SetupClassMethods(); 15 | 16 | virtual USentrySpan* StartChild(const FString& operation, const FString& desctiption) override; 17 | virtual void Finish() override; 18 | virtual bool IsFinished() const override; 19 | virtual void SetName(const FString& name) override; 20 | virtual void SetTag(const FString& key, const FString& value) override; 21 | virtual void RemoveTag(const FString& key) override; 22 | virtual void SetData(const FString& key, const TMap& values) override; 23 | virtual void RemoveData(const FString& key) override; 24 | virtual void GetTrace(FString& name, FString& value) override; 25 | 26 | private: 27 | FSentryJavaMethod StartChildMethod; 28 | FSentryJavaMethod FinishMethod; 29 | FSentryJavaMethod IsFinishedMethod; 30 | FSentryJavaMethod SetNameMethod; 31 | FSentryJavaMethod SetTagMethod; 32 | FSentryJavaMethod SetDataMethod; 33 | FSentryJavaMethod ToSentryTraceMethod; 34 | }; 35 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryTransactionContextAndroid.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryTransactionContextAndroid.h" 4 | 5 | #include "Infrastructure/SentryConvertorsAndroid.h" 6 | #include "Infrastructure/SentryJavaClasses.h" 7 | 8 | SentryTransactionContextAndroid::SentryTransactionContextAndroid(const FString& name, const FString& operation) 9 | : FSentryJavaObjectWrapper(SentryJavaClasses::TransactionContext, "(Ljava/lang/String;Ljava/lang/String;)V", 10 | *GetJString(name), *GetJString(operation)) 11 | { 12 | SetupClassMethods(); 13 | } 14 | 15 | SentryTransactionContextAndroid::SentryTransactionContextAndroid(jobject transactionContext) 16 | : FSentryJavaObjectWrapper(SentryJavaClasses::TransactionContext, transactionContext) 17 | { 18 | SetupClassMethods(); 19 | } 20 | 21 | void SentryTransactionContextAndroid::SetupClassMethods() 22 | { 23 | GetNameMethod = GetMethod("getName", "()Ljava/lang/String;"); 24 | GetOperationMethod = GetMethod("getOperation", "()Ljava/lang/String;"); 25 | } 26 | 27 | FString SentryTransactionContextAndroid::GetName() const 28 | { 29 | return CallMethod(GetNameMethod); 30 | } 31 | 32 | FString SentryTransactionContextAndroid::GetOperation() const 33 | { 34 | return CallMethod(GetOperationMethod); 35 | } 36 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryTransactionContextAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryTransactionContextInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryTransactionContextAndroid : public ISentryTransactionContext, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryTransactionContextAndroid(const FString& name, const FString& operation); 13 | SentryTransactionContextAndroid(jobject transactionContext); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual FString GetName() const override; 18 | virtual FString GetOperation() const override; 19 | 20 | private: 21 | 22 | FSentryJavaMethod GetNameMethod; 23 | FSentryJavaMethod GetOperationMethod; 24 | }; 25 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryTransactionOptionsAndroid.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryTransactionOptionsAndroid.h" 4 | 5 | #include "Infrastructure/SentryConvertorsAndroid.h" 6 | #include "Infrastructure/SentryJavaClasses.h" 7 | 8 | SentryTransactionOptionsAndroid::SentryTransactionOptionsAndroid() 9 | : FSentryJavaObjectWrapper(SentryJavaClasses::TransactionOptions, "()V") 10 | { 11 | SetupClassMethods(); 12 | } 13 | 14 | void SentryTransactionOptionsAndroid::SetupClassMethods() 15 | { 16 | SetCustomSamplingContextMethod = GetMethod("setCustomSamplingContext", "(Lio/sentry/CustomSamplingContext;)V"); 17 | } 18 | 19 | void SentryTransactionOptionsAndroid::SetCustomSamplingContext(const TMap& data) 20 | { 21 | FSentryJavaObjectWrapper NativeCustomSamplingContext(SentryJavaClasses::CustomSamplingContext, "()V"); 22 | FSentryJavaMethod SetMethod = NativeCustomSamplingContext.GetMethod("set", "(Ljava/lang/String;Ljava/lang/Object;)V"); 23 | 24 | for (const auto& dataItem : data) 25 | { 26 | NativeCustomSamplingContext.CallMethod(SetMethod, *GetJString(dataItem.Key), *GetJString(dataItem.Value)); 27 | } 28 | 29 | CallMethod(SetCustomSamplingContextMethod, NativeCustomSamplingContext.GetJObject()); 30 | } 31 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryTransactionOptionsAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Infrastructure/SentryJavaObjectWrapper.h" 6 | 7 | class SentryTransactionOptionsAndroid : public FSentryJavaObjectWrapper 8 | { 9 | public: 10 | SentryTransactionOptionsAndroid(); 11 | 12 | void SetupClassMethods(); 13 | 14 | void SetCustomSamplingContext(const TMap& data); 15 | 16 | private: 17 | FSentryJavaMethod SetCustomSamplingContextMethod; 18 | }; 19 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryUserAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryUserInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class SentryUserAndroid : public ISentryUser, public FSentryJavaObjectWrapper 10 | { 11 | public: 12 | SentryUserAndroid(); 13 | SentryUserAndroid(jobject user); 14 | 15 | void SetupClassMethods(); 16 | 17 | virtual void SetEmail(const FString& email) override; 18 | virtual FString GetEmail() const override; 19 | virtual void SetId(const FString& id) override; 20 | virtual FString GetId() const override; 21 | virtual void SetUsername(const FString& username) override; 22 | virtual FString GetUsername() const override; 23 | virtual void SetIpAddress(const FString& ipAddress) override; 24 | virtual FString GetIpAddress() const override; 25 | virtual void SetData(const TMap& data) override; 26 | virtual TMap GetData() override; 27 | 28 | private: 29 | FSentryJavaMethod SetEmailMethod; 30 | FSentryJavaMethod GetEmailMethod; 31 | FSentryJavaMethod SetIdMethod; 32 | FSentryJavaMethod GetIdMethod; 33 | FSentryJavaMethod SetUsernameMethod; 34 | FSentryJavaMethod GetUsernameMethod; 35 | FSentryJavaMethod SetIpAddressMethod; 36 | FSentryJavaMethod GetIpAddressMethod; 37 | FSentryJavaMethod SetDataMethod; 38 | FSentryJavaMethod GetDataMethod; 39 | }; 40 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Android/SentryUserFeedbackAndroid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryUserFeedbackInterface.h" 6 | 7 | #include "Infrastructure/SentryJavaObjectWrapper.h" 8 | 9 | class USentryId; 10 | 11 | class SentryUserFeedbackAndroid : public ISentryUserFeedback, public FSentryJavaObjectWrapper 12 | { 13 | public: 14 | SentryUserFeedbackAndroid(USentryId* eventId); 15 | 16 | void SetupClassMethods(); 17 | 18 | virtual void SetName(const FString& name) override; 19 | virtual FString GetName() const override; 20 | virtual void SetEmail(const FString& email) override; 21 | virtual FString GetEmail() const override; 22 | virtual void SetComment(const FString& comment) override; 23 | virtual FString GetComment() const override; 24 | 25 | private: 26 | FSentryJavaMethod SetNameMethod; 27 | FSentryJavaMethod GetNameMethod; 28 | FSentryJavaMethod SetEmailMethod; 29 | FSentryJavaMethod GetEmailMethod; 30 | FSentryJavaMethod SetCommentMethod; 31 | FSentryJavaMethod GetCommentMethod; 32 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/Convenience/SentryInclude.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "HAL/Platform.h" 6 | 7 | #if PLATFORM_MAC 8 | #include 9 | #include 10 | #include 11 | #elif PLATFORM_IOS 12 | #import 13 | #import 14 | #import 15 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/Convenience/SentryMacro.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "HAL/Platform.h" 6 | 7 | #include "SentryModule.h" 8 | 9 | #include 10 | 11 | #if PLATFORM_MAC 12 | #define SENTRY_APPLE_CLASS(Name) \ 13 | (__bridge Class)dlsym(FSentryModule::Get().GetSentryLibHandle(), "OBJC_CLASS_$_" #Name) 14 | #elif PLATFORM_IOS 15 | #define SENTRY_APPLE_CLASS(Name) \ 16 | Name 17 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryAttachmentApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryAttachmentInterface.h" 6 | 7 | @class SentryAttachment; 8 | 9 | class SentryAttachmentApple : public ISentryAttachment 10 | { 11 | public: 12 | SentryAttachmentApple(const TArray& data, const FString& filename, const FString& contentType); 13 | SentryAttachmentApple(const FString& path, const FString& filename, const FString& contentType); 14 | virtual ~SentryAttachmentApple() override; 15 | 16 | SentryAttachment* GetNativeObject(); 17 | 18 | virtual TArray GetData() const override; 19 | virtual FString GetPath() const override; 20 | virtual FString GetFilename() const override; 21 | virtual FString GetContentType() const override; 22 | 23 | private: 24 | SentryAttachment* AttachmentApple; 25 | }; 26 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryBreadcrumbApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryBreadcrumbInterface.h" 6 | 7 | @class SentryBreadcrumb; 8 | 9 | class SentryBreadcrumbApple : public ISentryBreadcrumb 10 | { 11 | public: 12 | SentryBreadcrumbApple(); 13 | SentryBreadcrumbApple(SentryBreadcrumb* breadcrumb); 14 | virtual ~SentryBreadcrumbApple() override; 15 | 16 | SentryBreadcrumb* GetNativeObject(); 17 | 18 | virtual void SetMessage(const FString& message) override; 19 | virtual FString GetMessage() const override; 20 | virtual void SetType(const FString& type) override; 21 | virtual FString GetType() const override; 22 | virtual void SetCategory(const FString& category) override; 23 | virtual FString GetCategory() const override; 24 | virtual void SetData(const TMap& data) override; 25 | virtual TMap GetData() const override; 26 | virtual void SetLevel(ESentryLevel level) override; 27 | virtual ESentryLevel GetLevel() const override; 28 | 29 | private: 30 | SentryBreadcrumb* BreadcrumbApple; 31 | }; 32 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryEventApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryEventInterface.h" 6 | 7 | @class SentryEvent; 8 | 9 | class SentryEventApple : public ISentryEvent 10 | { 11 | public: 12 | SentryEventApple(); 13 | SentryEventApple(SentryEvent* event); 14 | virtual ~SentryEventApple() override; 15 | 16 | SentryEvent* GetNativeObject(); 17 | 18 | virtual void SetMessage(const FString& message) override; 19 | virtual FString GetMessage() const override; 20 | virtual void SetLevel(ESentryLevel level) override; 21 | virtual ESentryLevel GetLevel() const override; 22 | virtual bool IsCrash() const override; 23 | virtual bool IsAnr() const override; 24 | 25 | private: 26 | SentryEvent* EventApple; 27 | }; 28 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryIdApple.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryIdApple.h" 4 | 5 | #include "Convenience/SentryInclude.h" 6 | #include "Convenience/SentryMacro.h" 7 | 8 | SentryIdApple::SentryIdApple() 9 | { 10 | // `SentryId` definition was moved to Swift so its name that can be recognized by UE should be taken from "Sentry-Swift.h" to successfully load class on Mac 11 | #if PLATFORM_MAC 12 | IdApple = [[SENTRY_APPLE_CLASS(_TtC6Sentry8SentryId) alloc] init]; 13 | #elif PLATFORM_IOS 14 | IdApple = [[SENTRY_APPLE_CLASS(SentryId) alloc] init]; 15 | #endif 16 | } 17 | 18 | SentryIdApple::SentryIdApple(SentryId* id) 19 | { 20 | IdApple = id; 21 | } 22 | 23 | SentryIdApple::~SentryIdApple() 24 | { 25 | // Put custom destructor logic here if needed 26 | } 27 | 28 | SentryId* SentryIdApple::GetNativeObject() 29 | { 30 | return IdApple; 31 | } 32 | 33 | FString SentryIdApple::ToString() const 34 | { 35 | return FString(IdApple.sentryIdString); 36 | } 37 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryIdApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryIdInterface.h" 6 | 7 | @class SentryId; 8 | 9 | class SentryIdApple : public ISentryId 10 | { 11 | public: 12 | SentryIdApple(); 13 | SentryIdApple(SentryId* id); 14 | virtual ~SentryIdApple() override; 15 | 16 | SentryId* GetNativeObject(); 17 | 18 | virtual FString ToString() const override; 19 | 20 | private: 21 | SentryId* IdApple; 22 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentrySamplingContextApple.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentrySamplingContextApple.h" 4 | #include "SentryTransactionContextApple.h" 5 | 6 | #include "SentryTransactionContext.h" 7 | 8 | #include "Infrastructure/SentryConvertorsApple.h" 9 | 10 | #include "Convenience/SentryInclude.h" 11 | #include "Convenience/SentryMacro.h" 12 | 13 | SentrySamplingContextApple::SentrySamplingContextApple(SentrySamplingContext* context) 14 | { 15 | SamplingContext = context; 16 | } 17 | 18 | SentrySamplingContextApple::~SentrySamplingContextApple() 19 | { 20 | // Put custom destructor logic here if needed 21 | } 22 | 23 | USentryTransactionContext* SentrySamplingContextApple::GetTransactionContext() const 24 | { 25 | return SentryConvertorsApple::SentryTransactionContextToUnreal(SamplingContext.transactionContext); 26 | } 27 | 28 | TMap SentrySamplingContextApple::GetCustomSamplingContext() const 29 | { 30 | return SentryConvertorsApple::StringMapToUnreal(SamplingContext.customSamplingContext); 31 | } 32 | 33 | SentrySamplingContext* SentrySamplingContextApple::GetNativeObject() 34 | { 35 | return SamplingContext; 36 | } 37 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentrySamplingContextApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentrySamplingContextInterface.h" 6 | 7 | @class SentrySamplingContext; 8 | 9 | class SentrySamplingContextApple : public ISentrySamplingContext 10 | { 11 | public: 12 | SentrySamplingContextApple(SentrySamplingContext* context); 13 | virtual ~SentrySamplingContextApple() override; 14 | 15 | virtual USentryTransactionContext* GetTransactionContext() const override; 16 | virtual TMap GetCustomSamplingContext() const override; 17 | 18 | SentrySamplingContext* GetNativeObject(); 19 | 20 | private: 21 | SentrySamplingContext* SamplingContext; 22 | }; 23 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentrySpanApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentrySpanInterface.h" 6 | 7 | @protocol SentrySpan; 8 | 9 | class SentrySpanApple : public ISentrySpan 10 | { 11 | public: 12 | SentrySpanApple(id span); 13 | virtual ~SentrySpanApple() override; 14 | 15 | id GetNativeObject(); 16 | 17 | virtual void Finish() override; 18 | virtual bool IsFinished() const override; 19 | virtual void SetTag(const FString& key, const FString& value) override; 20 | virtual void RemoveTag(const FString& key) override; 21 | virtual void SetData(const FString& key, const TMap& values) override; 22 | virtual void RemoveData(const FString& key) override; 23 | virtual void GetTrace(FString& name, FString& value) override; 24 | 25 | private: 26 | id SpanApple; 27 | }; 28 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryTransactionApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryTransactionInterface.h" 6 | 7 | @protocol SentrySpan; 8 | 9 | class SentryTransactionApple : public ISentryTransaction 10 | { 11 | public: 12 | SentryTransactionApple(id transaction); 13 | virtual ~SentryTransactionApple() override; 14 | 15 | id GetNativeObject(); 16 | 17 | virtual USentrySpan* StartChild(const FString& operation, const FString& desctiption) override; 18 | virtual void Finish() override; 19 | virtual bool IsFinished() const override; 20 | virtual void SetName(const FString& name) override; 21 | virtual void SetTag(const FString& key, const FString& value) override; 22 | virtual void RemoveTag(const FString& key) override; 23 | virtual void SetData(const FString& key, const TMap& values) override; 24 | virtual void RemoveData(const FString& key) override; 25 | virtual void GetTrace(FString& name, FString& value) override; 26 | 27 | private: 28 | id TransactionApple; 29 | }; 30 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryTransactionContextApple.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryTransactionContextApple.h" 4 | 5 | #include "Convenience/SentryInclude.h" 6 | #include "Convenience/SentryMacro.h" 7 | 8 | SentryTransactionContextApple::SentryTransactionContextApple(const FString& name, const FString& operation) 9 | { 10 | TransactionContext = [[SENTRY_APPLE_CLASS(SentryTransactionContext) alloc] initWithName:name.GetNSString() operation:operation.GetNSString()]; 11 | } 12 | 13 | SentryTransactionContextApple::SentryTransactionContextApple(SentryTransactionContext* context) 14 | { 15 | TransactionContext = context; 16 | } 17 | 18 | SentryTransactionContextApple::~SentryTransactionContextApple() 19 | { 20 | // Put custom destructor logic here if needed 21 | } 22 | 23 | FString SentryTransactionContextApple::GetName() const 24 | { 25 | return FString(TransactionContext.name); 26 | } 27 | 28 | FString SentryTransactionContextApple::GetOperation() const 29 | { 30 | return FString(TransactionContext.operation); 31 | } 32 | 33 | SentryTransactionContext* SentryTransactionContextApple::GetNativeObject() 34 | { 35 | return TransactionContext; 36 | } 37 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryTransactionContextApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryTransactionContextInterface.h" 6 | 7 | @class SentryTransactionContext; 8 | 9 | class SentryTransactionContextApple : public ISentryTransactionContext 10 | { 11 | public: 12 | SentryTransactionContextApple(const FString& name, const FString& operation); 13 | SentryTransactionContextApple(SentryTransactionContext* context); 14 | virtual ~SentryTransactionContextApple() override; 15 | 16 | virtual FString GetName() const override; 17 | virtual FString GetOperation() const override; 18 | 19 | SentryTransactionContext* GetNativeObject(); 20 | 21 | private: 22 | SentryTransactionContext* TransactionContext; 23 | }; 24 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryUserApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryUserInterface.h" 6 | 7 | @class SentryUser; 8 | 9 | class SentryUserApple : public ISentryUser 10 | { 11 | public: 12 | SentryUserApple(); 13 | SentryUserApple(SentryUser* user); 14 | virtual ~SentryUserApple() override; 15 | 16 | SentryUser* GetNativeObject(); 17 | 18 | virtual void SetEmail(const FString& email) override; 19 | virtual FString GetEmail() const override; 20 | virtual void SetId(const FString& id) override; 21 | virtual FString GetId() const override; 22 | virtual void SetUsername(const FString& username) override; 23 | virtual FString GetUsername() const override; 24 | virtual void SetIpAddress(const FString& ipAddress) override; 25 | virtual FString GetIpAddress() const override; 26 | virtual void SetData(const TMap& data) override; 27 | virtual TMap GetData() override; 28 | 29 | private: 30 | SentryUser* UserApple; 31 | }; 32 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryUserFeedbackApple.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryUserFeedbackApple.h" 4 | 5 | #include "SentryId.h" 6 | #include "SentryIdApple.h" 7 | 8 | #include "Convenience/SentryInclude.h" 9 | #include "Convenience/SentryMacro.h" 10 | 11 | SentryUserFeedbackApple::SentryUserFeedbackApple(USentryId* eventId) 12 | { 13 | TSharedPtr idIOS = StaticCastSharedPtr(eventId->GetNativeImpl()); 14 | SentryId* id = idIOS->GetNativeObject(); 15 | UserFeedbackApple = [[SENTRY_APPLE_CLASS(SentryUserFeedback) alloc] initWithEventId:id]; 16 | } 17 | 18 | SentryUserFeedbackApple::~SentryUserFeedbackApple() 19 | { 20 | // Put custom destructor logic here if needed 21 | } 22 | 23 | SentryUserFeedback* SentryUserFeedbackApple::GetNativeObject() 24 | { 25 | return UserFeedbackApple; 26 | } 27 | 28 | void SentryUserFeedbackApple::SetName(const FString& name) 29 | { 30 | UserFeedbackApple.name = name.GetNSString(); 31 | } 32 | 33 | FString SentryUserFeedbackApple::GetName() const 34 | { 35 | return FString(UserFeedbackApple.name); 36 | } 37 | 38 | void SentryUserFeedbackApple::SetEmail(const FString& email) 39 | { 40 | UserFeedbackApple.email = email.GetNSString(); 41 | } 42 | 43 | FString SentryUserFeedbackApple::GetEmail() const 44 | { 45 | return FString(UserFeedbackApple.email); 46 | } 47 | 48 | void SentryUserFeedbackApple::SetComment(const FString& comment) 49 | { 50 | UserFeedbackApple.comments = comment.GetNSString(); 51 | } 52 | 53 | FString SentryUserFeedbackApple::GetComment() const 54 | { 55 | return FString(UserFeedbackApple.comments); 56 | } 57 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Apple/SentryUserFeedbackApple.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Interface/SentryUserFeedbackInterface.h" 6 | 7 | class USentryId; 8 | @class SentryUserFeedback; 9 | 10 | class SentryUserFeedbackApple : public ISentryUserFeedback 11 | { 12 | public: 13 | SentryUserFeedbackApple(USentryId* eventId); 14 | virtual ~SentryUserFeedbackApple() override; 15 | 16 | SentryUserFeedback* GetNativeObject(); 17 | 18 | virtual void SetName(const FString& name) override; 19 | virtual FString GetName() const override; 20 | virtual void SetEmail(const FString& email) override; 21 | virtual FString GetEmail() const override; 22 | virtual void SetComment(const FString& comment) override; 23 | virtual FString GetComment() const override; 24 | 25 | private: 26 | SentryUserFeedback* UserFeedbackApple; 27 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/Convenience/SentryInclude.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "HAL/Platform.h" 6 | 7 | #if PLATFORM_WINDOWS 8 | #include "Windows/AllowWindowsPlatformTypes.h" 9 | #include "sentry.h" 10 | #include "Windows/HideWindowsPlatformTypes.h" 11 | #elif PLATFORM_LINUX 12 | #include "sentry.h" 13 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/CrashReporter/SentryCrashContext.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "Runtime/Launch/Resources/Version.h" 8 | #include "GenericPlatform/GenericPlatformCrashContext.h" 9 | 10 | #if USE_SENTRY_NATIVE 11 | 12 | class SentryScopeDesktop; 13 | 14 | #if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 3 15 | struct FSentryCrashContext 16 | #else 17 | struct FSentryCrashContext : public FGenericCrashContext 18 | #endif 19 | { 20 | FSentryCrashContext(TSharedPtr Context); 21 | 22 | public: 23 | static TSharedPtr Get(); 24 | 25 | void Apply(TSharedPtr Scope); 26 | 27 | FString GetGameData(const FString& Key); 28 | 29 | private: 30 | TSharedPtr CrashContext; 31 | }; 32 | 33 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/CrashReporter/SentryCrashReporter.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #if USE_SENTRY_NATIVE 8 | 9 | class USentryUser; 10 | class FJsonObject; 11 | 12 | class SentryCrashReporter 13 | { 14 | public: 15 | SentryCrashReporter(); 16 | 17 | void SetRelease(const FString& release); 18 | void SetEnvironment(const FString& environment); 19 | void SetUser(USentryUser* user); 20 | void RemoveUser(); 21 | void SetContext(const FString& key, const TMap& values); 22 | void SetTag(const FString& key, const FString& value); 23 | void RemoveTag(const FString& key); 24 | 25 | protected: 26 | void UpdateCrashReporterConfig(); 27 | 28 | private: 29 | TSharedPtr crashReporterConfig; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryBreadcrumbDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryBreadcrumbInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class SentryBreadcrumbDesktop : public ISentryBreadcrumb 12 | { 13 | public: 14 | SentryBreadcrumbDesktop(); 15 | SentryBreadcrumbDesktop(sentry_value_t breadcrumb); 16 | virtual ~SentryBreadcrumbDesktop() override; 17 | 18 | sentry_value_t GetNativeObject(); 19 | 20 | virtual void SetMessage(const FString& message) override; 21 | virtual FString GetMessage() const override; 22 | virtual void SetType(const FString& type) override; 23 | virtual FString GetType() const override; 24 | virtual void SetCategory(const FString& category) override; 25 | virtual FString GetCategory() const override; 26 | virtual void SetData(const TMap& data) override; 27 | virtual TMap GetData() const override; 28 | virtual void SetLevel(ESentryLevel level) override; 29 | virtual ESentryLevel GetLevel() const override; 30 | 31 | private: 32 | sentry_value_t BreadcrumbDesktop; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryEventDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryEventInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class SentryEventDesktop : public ISentryEvent 12 | { 13 | public: 14 | SentryEventDesktop(); 15 | SentryEventDesktop(sentry_value_t event, bool isCrash = false); 16 | virtual ~SentryEventDesktop() override; 17 | 18 | sentry_value_t GetNativeObject(); 19 | 20 | virtual void SetMessage(const FString& message) override; 21 | virtual FString GetMessage() const override; 22 | virtual void SetLevel(ESentryLevel level) override; 23 | virtual ESentryLevel GetLevel() const override; 24 | virtual bool IsCrash() const override; 25 | virtual bool IsAnr() const override; 26 | 27 | private: 28 | sentry_value_t EventDesktop; 29 | 30 | bool IsCrashEvent; 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryIdDesktop.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryIdDesktop.h" 4 | 5 | #if USE_SENTRY_NATIVE 6 | 7 | SentryIdDesktop::SentryIdDesktop() 8 | { 9 | IdDesktop = sentry_uuid_new_v4(); 10 | } 11 | 12 | SentryIdDesktop::SentryIdDesktop(sentry_uuid_t id) 13 | { 14 | IdDesktop = id; 15 | } 16 | 17 | SentryIdDesktop::~SentryIdDesktop() 18 | { 19 | // Put custom destructor logic here if needed 20 | } 21 | 22 | sentry_uuid_t SentryIdDesktop::GetNativeObject() 23 | { 24 | return IdDesktop; 25 | } 26 | 27 | FString SentryIdDesktop::ToString() const 28 | { 29 | char IdString[37]; 30 | sentry_uuid_as_string(&IdDesktop, IdString); 31 | return FString(IdString); 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryIdDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryIdInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class SentryIdDesktop : public ISentryId 12 | { 13 | public: 14 | SentryIdDesktop(); 15 | SentryIdDesktop(sentry_uuid_t id); 16 | virtual ~SentryIdDesktop() override; 17 | 18 | sentry_uuid_t GetNativeObject(); 19 | 20 | virtual FString ToString() const override; 21 | 22 | private: 23 | sentry_uuid_t IdDesktop; 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentrySpanDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "HAL/CriticalSection.h" 8 | 9 | #include "Interface/SentrySpanInterface.h" 10 | 11 | #if USE_SENTRY_NATIVE 12 | 13 | class SentrySpanDesktop : public ISentrySpan 14 | { 15 | public: 16 | SentrySpanDesktop(sentry_span_t* span); 17 | virtual ~SentrySpanDesktop() override; 18 | 19 | sentry_span_t* GetNativeObject(); 20 | 21 | virtual void Finish() override; 22 | virtual bool IsFinished() const override; 23 | virtual void SetTag(const FString& key, const FString& value) override; 24 | virtual void RemoveTag(const FString& key) override; 25 | virtual void SetData(const FString& key, const TMap& values) override; 26 | virtual void RemoveData(const FString& key) override; 27 | virtual void GetTrace(FString& name, FString& value) override; 28 | 29 | private: 30 | sentry_span_t* SpanDesktop; 31 | 32 | FCriticalSection CriticalSection; 33 | 34 | bool isFinished; 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryTransactionContextDesktop.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryTransactionContextDesktop.h" 4 | 5 | #include "SentryDefines.h" 6 | 7 | #if USE_SENTRY_NATIVE 8 | 9 | SentryTransactionContextDesktop::SentryTransactionContextDesktop(const FString& name, const FString& operation) 10 | : TransactionContextDesktop(sentry_transaction_context_new(TCHAR_TO_ANSI(*name), TCHAR_TO_ANSI(*operation))) 11 | { 12 | } 13 | 14 | SentryTransactionContextDesktop::SentryTransactionContextDesktop(sentry_transaction_context_t* context) 15 | : TransactionContextDesktop(context) 16 | { 17 | } 18 | 19 | SentryTransactionContextDesktop::~SentryTransactionContextDesktop() 20 | { 21 | // Put custom destructor logic here if needed 22 | } 23 | 24 | FString SentryTransactionContextDesktop::GetName() const 25 | { 26 | // no corresponding implementation in sentry-native 27 | UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetName function")); 28 | return FString(); 29 | } 30 | 31 | FString SentryTransactionContextDesktop::GetOperation() const 32 | { 33 | // no corresponding implementation in sentry-native 34 | UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetOperation function")); 35 | return FString(); 36 | } 37 | 38 | sentry_transaction_context_t* SentryTransactionContextDesktop::GetNativeObject() 39 | { 40 | return TransactionContextDesktop; 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryTransactionContextDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryTransactionContextInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class SentryTransactionContextDesktop : public ISentryTransactionContext 12 | { 13 | public: 14 | SentryTransactionContextDesktop(const FString& name, const FString& operation); 15 | SentryTransactionContextDesktop(sentry_transaction_context_t* context); 16 | virtual ~SentryTransactionContextDesktop() override; 17 | 18 | virtual FString GetName() const override; 19 | virtual FString GetOperation() const override; 20 | 21 | sentry_transaction_context_t* GetNativeObject(); 22 | 23 | private: 24 | sentry_transaction_context_t* TransactionContextDesktop; 25 | }; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryTransactionDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "HAL/CriticalSection.h" 8 | 9 | #include "Interface/SentryTransactionInterface.h" 10 | 11 | #if USE_SENTRY_NATIVE 12 | 13 | class SentryTransactionDesktop : public ISentryTransaction 14 | { 15 | public: 16 | SentryTransactionDesktop(sentry_transaction_t* transaction); 17 | virtual ~SentryTransactionDesktop() override; 18 | 19 | sentry_transaction_t* GetNativeObject(); 20 | 21 | virtual USentrySpan* StartChild(const FString& operation, const FString& desctiption) override; 22 | virtual void Finish() override; 23 | virtual bool IsFinished() const override; 24 | virtual void SetName(const FString& name) override; 25 | virtual void SetTag(const FString& key, const FString& value) override; 26 | virtual void RemoveTag(const FString& key) override; 27 | virtual void SetData(const FString& key, const TMap& values) override; 28 | virtual void RemoveData(const FString& key) override; 29 | virtual void GetTrace(FString& name, FString& value) override; 30 | 31 | private: 32 | sentry_transaction_t* TransactionDesktop; 33 | 34 | FCriticalSection CriticalSection; 35 | 36 | bool isFinished; 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryUserDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryUserInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class SentryUserDesktop : public ISentryUser 12 | { 13 | public: 14 | SentryUserDesktop(); 15 | SentryUserDesktop(sentry_value_t user); 16 | virtual ~SentryUserDesktop() override; 17 | 18 | sentry_value_t GetNativeObject(); 19 | 20 | virtual void SetEmail(const FString& email) override; 21 | virtual FString GetEmail() const override; 22 | virtual void SetId(const FString& id) override; 23 | virtual FString GetId() const override; 24 | virtual void SetUsername(const FString& username) override; 25 | virtual FString GetUsername() const override; 26 | virtual void SetIpAddress(const FString& ipAddress) override; 27 | virtual FString GetIpAddress() const override; 28 | virtual void SetData(const TMap& data) override; 29 | virtual TMap GetData() override; 30 | 31 | private: 32 | sentry_value_t UserDesktop; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/SentryUserFeedbackDesktop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Convenience/SentryInclude.h" 6 | 7 | #include "Interface/SentryUserFeedbackInterface.h" 8 | 9 | #if USE_SENTRY_NATIVE 10 | 11 | class USentryId; 12 | 13 | class SentryUserFeedbackDesktop : public ISentryUserFeedback 14 | { 15 | public: 16 | SentryUserFeedbackDesktop(); 17 | SentryUserFeedbackDesktop(USentryId* eventId); 18 | virtual ~SentryUserFeedbackDesktop() override; 19 | 20 | sentry_value_t GetNativeObject(); 21 | 22 | virtual void SetName(const FString& name) override; 23 | virtual FString GetName() const override; 24 | virtual void SetEmail(const FString& email) override; 25 | virtual FString GetEmail() const override; 26 | virtual void SetComment(const FString& comment) override; 27 | virtual FString GetComment() const override; 28 | 29 | private: 30 | sentry_value_t UserFeedbackDesktop; 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/Transport/SentryDsnUrl.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #include "SentryDsnUrl.h" 4 | 5 | #if USE_SENTRY_NATIVE 6 | 7 | SentryDsnUrl::SentryDsnUrl(const FString& Dsn) 8 | { 9 | FString UrlRemainder; 10 | 11 | Dsn.Split(TEXT("://"), &Scheme, &UrlRemainder); 12 | UrlRemainder.Split(TEXT("@"), &Key, &UrlRemainder); 13 | UrlRemainder.Split(TEXT("/"), &Host, &ProjectId); 14 | } 15 | 16 | const FString& SentryDsnUrl::GetScheme() const 17 | { 18 | return Scheme; 19 | } 20 | 21 | const FString& SentryDsnUrl::GetHost() const 22 | { 23 | return Host; 24 | } 25 | 26 | const FString& SentryDsnUrl::GetProjectId() const 27 | { 28 | return ProjectId; 29 | } 30 | 31 | const FString& SentryDsnUrl::GetKey() const 32 | { 33 | return Key; 34 | } 35 | 36 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/Transport/SentryDsnUrl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #if USE_SENTRY_NATIVE 8 | 9 | class SentryDsnUrl 10 | { 11 | public: 12 | SentryDsnUrl(const FString& Dsn); 13 | 14 | const FString& GetScheme() const; 15 | const FString& GetHost() const; 16 | const FString& GetProjectId() const; 17 | const FString& GetKey() const; 18 | 19 | private: 20 | FString Scheme; 21 | FString Key; 22 | FString Host; 23 | FString ProjectId; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Desktop/Transport/SentryTransport.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Http.h" 7 | #include "HAL/CriticalSection.h" 8 | 9 | #include "Convenience/SentryInclude.h" 10 | 11 | #if USE_SENTRY_NATIVE 12 | 13 | class FSentryTransport : public TSharedFromThis 14 | { 15 | public: 16 | static sentry_transport_t* Create(); 17 | 18 | private: 19 | void Send(sentry_envelope_t* envelope); 20 | void Free(); 21 | int Startup(const sentry_options_t* options); 22 | int Flush(uint64_t timeout); 23 | int Shutdown(uint64_t timeout); 24 | 25 | void OnRequestCompleted(TSharedPtr Request, TSharedPtr Response, bool bSuccess); 26 | 27 | TSharedPtr Self; 28 | 29 | TArray> RequestsQueue; 30 | 31 | FCriticalSection CriticalSection; 32 | 33 | bool IsRunning = false; 34 | }; 35 | 36 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryAttachmentInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentryAttachment 8 | { 9 | public: 10 | virtual ~ISentryAttachment() = default; 11 | 12 | virtual TArray GetData() const = 0; 13 | virtual FString GetPath() const = 0; 14 | virtual FString GetFilename() const = 0; 15 | virtual FString GetContentType() const = 0; 16 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryBreadcrumbInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentryDataTypes.h" 8 | 9 | class ISentryBreadcrumb 10 | { 11 | 12 | public: 13 | virtual ~ISentryBreadcrumb() = default; 14 | 15 | virtual void SetMessage(const FString& message) = 0; 16 | virtual FString GetMessage() const = 0; 17 | virtual void SetType(const FString& type) = 0; 18 | virtual FString GetType() const = 0; 19 | virtual void SetCategory(const FString& category) = 0; 20 | virtual FString GetCategory() const = 0; 21 | virtual void SetData(const TMap& data) = 0; 22 | virtual TMap GetData() const = 0; 23 | virtual void SetLevel(ESentryLevel level) = 0; 24 | virtual ESentryLevel GetLevel() const = 0; 25 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryEventInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentryDataTypes.h" 8 | 9 | class ISentryEvent 10 | { 11 | public: 12 | virtual ~ISentryEvent() = default; 13 | 14 | virtual void SetMessage(const FString& message) = 0; 15 | virtual FString GetMessage() const = 0; 16 | virtual void SetLevel(ESentryLevel level) = 0; 17 | virtual ESentryLevel GetLevel() const = 0; 18 | virtual bool IsCrash() const = 0; 19 | virtual bool IsAnr() const = 0; 20 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryHintInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class USentryAttachment; 8 | 9 | class ISentryHint 10 | { 11 | public: 12 | virtual ~ISentryHint() = default; 13 | 14 | virtual void AddAttachment(USentryAttachment* attachment) = 0; 15 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryIdInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentryId 8 | { 9 | public: 10 | virtual ~ISentryId() = default; 11 | 12 | virtual FString ToString() const = 0; 13 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class USentryTransactionContext; 8 | 9 | class ISentrySamplingContext 10 | { 11 | public: 12 | virtual ~ISentrySamplingContext() = default; 13 | 14 | virtual USentryTransactionContext* GetTransactionContext() const = 0; 15 | virtual TMap GetCustomSamplingContext() const = 0; 16 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentrySpanInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentrySpan 8 | { 9 | public: 10 | virtual ~ISentrySpan() = default; 11 | 12 | virtual void Finish() = 0; 13 | virtual bool IsFinished() const = 0; 14 | virtual void SetTag(const FString& key, const FString& value) = 0; 15 | virtual void RemoveTag(const FString& key) = 0; 16 | virtual void SetData(const FString& key, const TMap& values) = 0; 17 | virtual void RemoveData(const FString& key) = 0; 18 | virtual void GetTrace(FString& name, FString& value) = 0; 19 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryTransactionContextInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentryTransactionContext 8 | { 9 | public: 10 | virtual ~ISentryTransactionContext() = default; 11 | 12 | virtual FString GetName() const = 0; 13 | virtual FString GetOperation() const = 0; 14 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryTransactionInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class USentrySpan; 8 | 9 | class ISentryTransaction 10 | { 11 | public: 12 | virtual ~ISentryTransaction() = default; 13 | 14 | virtual USentrySpan* StartChild(const FString& operation, const FString& desctiption) = 0; 15 | virtual void Finish() = 0; 16 | virtual bool IsFinished() const = 0; 17 | virtual void SetName(const FString& name) = 0; 18 | virtual void SetTag(const FString& key, const FString& value) = 0; 19 | virtual void RemoveTag(const FString& key) = 0; 20 | virtual void SetData(const FString& key, const TMap& values) = 0; 21 | virtual void RemoveData(const FString& key) = 0; 22 | virtual void GetTrace(FString& name, FString& value) = 0; 23 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryUserFeedbackInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentryUserFeedback 8 | { 9 | public: 10 | virtual ~ISentryUserFeedback() = default; 11 | 12 | virtual void SetName(const FString& name) = 0; 13 | virtual FString GetName() const = 0; 14 | virtual void SetEmail(const FString& email) = 0; 15 | virtual FString GetEmail() const = 0; 16 | virtual void SetComment(const FString& comment) = 0; 17 | virtual FString GetComment() const = 0; 18 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Interface/SentryUserInterface.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class ISentryUser 8 | { 9 | public: 10 | virtual ~ISentryUser() = default; 11 | 12 | virtual void SetEmail(const FString& email) = 0; 13 | virtual FString GetEmail() const = 0; 14 | virtual void SetId(const FString& id) = 0; 15 | virtual FString GetId() const = 0; 16 | virtual void SetUsername(const FString& username) = 0; 17 | virtual FString GetUsername() const = 0; 18 | virtual void SetIpAddress(const FString& ipAddress) = 0; 19 | virtual FString GetIpAddress() const = 0; 20 | virtual void SetData(const TMap& data) = 0; 21 | virtual TMap GetData() = 0; 22 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryBeforeSendHandler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #include "SentryBeforeSendHandler.h" 4 | 5 | #include "SentryModule.h" 6 | #include "SentrySettings.h" 7 | #include "SentryEvent.h" 8 | #include "SentryHint.h" 9 | #include "SentryAttachment.h" 10 | 11 | #include "Utils/SentryFileUtils.h" 12 | 13 | #include "Misc/Paths.h" 14 | 15 | USentryEvent* USentryBeforeSendHandler::HandleBeforeSend_Implementation(USentryEvent* Event, USentryHint* Hint) 16 | { 17 | const USentrySettings* Settings = FSentryModule::Get().GetSettings(); 18 | 19 | if(Settings->EnableAutoLogAttachment) 20 | { 21 | #if PLATFORM_ANDROID || PLATFORM_APPLE 22 | const FString LogFilePath = Event->IsCrash() ? SentryFileUtils::GetGameLogBackupPath() : SentryFileUtils::GetGameLogPath(); 23 | #else 24 | const FString LogFilePath = SentryFileUtils::GetGameLogPath(); 25 | #endif 26 | 27 | USentryAttachment* Attachment = NewObject(); 28 | Attachment->InitializeWithPath(LogFilePath, FPaths::GetCleanFilename(LogFilePath), TEXT("application/octet-stream")); 29 | 30 | if(Hint != nullptr) 31 | { 32 | Hint->AddAttachment(Attachment); 33 | } 34 | } 35 | 36 | return Event; 37 | } 38 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryDefines.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | DECLARE_LOG_CATEGORY_EXTERN(LogSentrySdk, Verbose, All); 8 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryHint.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #include "SentryHint.h" 4 | 5 | #include "Interface/SentryHintInterface.h" 6 | 7 | #if PLATFORM_ANDROID 8 | #include "Android/SentryHintAndroid.h" 9 | #endif 10 | 11 | USentryHint::USentryHint() 12 | { 13 | if (USentryHint::StaticClass()->GetDefaultObject() != this) 14 | { 15 | #if PLATFORM_ANDROID 16 | SentryHintNativeImpl = MakeShareable(new SentryHintAndroid()); 17 | #endif 18 | } 19 | } 20 | 21 | void USentryHint::AddAttachment(USentryAttachment* Attachment) 22 | { 23 | if(!SentryHintNativeImpl) 24 | return; 25 | 26 | SentryHintNativeImpl->AddAttachment(Attachment); 27 | } 28 | 29 | void USentryHint::InitWithNativeImpl(TSharedPtr hintImpl) 30 | { 31 | SentryHintNativeImpl = hintImpl; 32 | } 33 | 34 | TSharedPtr USentryHint::GetNativeImpl() 35 | { 36 | return SentryHintNativeImpl; 37 | } 38 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryId.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryId.h" 4 | 5 | #include "Interface/SentryIdInterface.h" 6 | 7 | #if PLATFORM_ANDROID 8 | #include "Android/SentryIdAndroid.h" 9 | #elif PLATFORM_IOS || PLATFORM_MAC 10 | #include "Apple/SentryIdApple.h" 11 | #elif PLATFORM_WINDOWS || PLATFORM_LINUX 12 | #include "Desktop/SentryIdDesktop.h" 13 | #endif 14 | 15 | USentryId::USentryId() 16 | { 17 | if (USentryId::StaticClass()->GetDefaultObject() != this) 18 | { 19 | #if PLATFORM_ANDROID 20 | SentryIdNativeImpl = MakeShareable(new SentryIdAndroid()); 21 | #elif PLATFORM_IOS || PLATFORM_MAC 22 | SentryIdNativeImpl = MakeShareable(new SentryIdApple()); 23 | #elif (PLATFORM_WINDOWS || PLATFORM_LINUX) && USE_SENTRY_NATIVE 24 | SentryIdNativeImpl = MakeShareable(new SentryIdDesktop()); 25 | #endif 26 | } 27 | } 28 | 29 | FString USentryId::ToString() const 30 | { 31 | if(!SentryIdNativeImpl) 32 | return FString(); 33 | 34 | return SentryIdNativeImpl->ToString(); 35 | } 36 | 37 | void USentryId::InitWithNativeImpl(TSharedPtr idImpl) 38 | { 39 | SentryIdNativeImpl = idImpl; 40 | } 41 | 42 | TSharedPtr USentryId::GetNativeImpl() 43 | { 44 | return SentryIdNativeImpl; 45 | } 46 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryOutputDeviceError.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryOutputDeviceError.h" 4 | 5 | #include "Misc/AssertionMacros.h" 6 | 7 | FSentryOutputDeviceError::FSentryOutputDeviceError(FOutputDeviceError* Parent) 8 | : ParentDevice(Parent) 9 | { 10 | } 11 | 12 | void FSentryOutputDeviceError::Serialize(const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category) 13 | { 14 | if(FDebug::HasAsserted()) 15 | { 16 | OnAssert.Broadcast(V); 17 | } 18 | 19 | if (!ParentDevice) 20 | return; 21 | 22 | ParentDevice->Serialize(V, Verbosity, Category); 23 | } 24 | 25 | void FSentryOutputDeviceError::HandleError() 26 | { 27 | if (!ParentDevice) 28 | return; 29 | 30 | ParentDevice->HandleError(); 31 | } 32 | 33 | FOutputDeviceError* FSentryOutputDeviceError::GetParentDevice() 34 | { 35 | return ParentDevice; 36 | } 37 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentrySamplingContext.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentrySamplingContext.h" 4 | 5 | #include "Interface/SentrySamplingContextInterface.h" 6 | 7 | #if PLATFORM_ANDROID 8 | #include "Android/SentrySamplingContextAndroid.h" 9 | #elif PLATFORM_IOS || PLATFORM_MAC 10 | #include "Apple/SentrySamplingContextApple.h" 11 | #endif 12 | 13 | USentrySamplingContext::USentrySamplingContext() 14 | { 15 | } 16 | 17 | USentryTransactionContext* USentrySamplingContext::GetTransactionContext() const 18 | { 19 | if (!SentrySamplingContextNativeImpl) 20 | return nullptr; 21 | 22 | return SentrySamplingContextNativeImpl->GetTransactionContext(); 23 | } 24 | 25 | TMap USentrySamplingContext::GetCustomSamplingContext() const 26 | { 27 | if (!SentrySamplingContextNativeImpl) 28 | return TMap(); 29 | 30 | return SentrySamplingContextNativeImpl->GetCustomSamplingContext(); 31 | } 32 | 33 | void USentrySamplingContext::InitWithNativeImpl(TSharedPtr samplingContextImpl) 34 | { 35 | SentrySamplingContextNativeImpl = samplingContextImpl; 36 | } 37 | 38 | TSharedPtr USentrySamplingContext::GetNativeImpl() 39 | { 40 | return SentrySamplingContextNativeImpl; 41 | } 42 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/SentryTraceSampler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #include "SentryTraceSampler.h" 4 | #include "SentrySamplingContext.h" 5 | 6 | bool USentryTraceSampler::Sample_Implementation(USentrySamplingContext* samplingContext, float& samplingValue) 7 | { 8 | samplingValue = 1.0f; 9 | return true; 10 | } 11 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Tests/SentryEvent.spec.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryEvent.h" 4 | 5 | #include "Misc/AutomationTest.h" 6 | 7 | #if WITH_AUTOMATION_TESTS 8 | 9 | BEGIN_DEFINE_SPEC(SentryEventSpec, "Sentry.SentryEvent", EAutomationTestFlags::ProductFilter | EAutomationTestFlags::ApplicationContextMask) 10 | USentryEvent* SentryEvent; 11 | END_DEFINE_SPEC(SentryEventSpec) 12 | 13 | void SentryEventSpec::Define() 14 | { 15 | BeforeEach([this]() 16 | { 17 | SentryEvent = NewObject(); 18 | }); 19 | 20 | Describe("Event params", [this]() 21 | { 22 | It("should persist their values", [this]() 23 | { 24 | const FString TestMessage = FString(TEXT("Test event message")); 25 | 26 | SentryEvent->SetLevel(ESentryLevel::Fatal); 27 | SentryEvent->SetMessage(TestMessage); 28 | 29 | TestEqual("Event level", SentryEvent->GetLevel(), ESentryLevel::Fatal); 30 | TestEqual("Event message", SentryEvent->GetMessage(), TestMessage); 31 | }); 32 | }); 33 | } 34 | 35 | #endif -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Utils/SentryFileUtils.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #include "SentryFileUtils.h" 4 | #include "SentryDefines.h" 5 | 6 | #include "HAL/FileManager.h" 7 | #include "GenericPlatform/GenericPlatformOutputDevices.h" 8 | #include "Misc/Paths.h" 9 | 10 | struct FSentrySortFileByDatePredicate 11 | { 12 | bool operator()(const FString& A, const FString& B) const 13 | { 14 | const FDateTime TimestampA = IFileManager::Get().GetTimeStamp(*A); 15 | const FDateTime TimestampB = IFileManager::Get().GetTimeStamp(*B); 16 | return TimestampB < TimestampA; 17 | } 18 | }; 19 | 20 | FString SentryFileUtils::GetGameLogPath() 21 | { 22 | return IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*FGenericPlatformOutputDevices::GetAbsoluteLogFilename()); 23 | } 24 | 25 | FString SentryFileUtils::GetGameLogBackupPath() 26 | { 27 | TArray GameLogBackupFiles; 28 | IFileManager::Get().FindFiles(GameLogBackupFiles, *FString::Printf(TEXT("%s*-backup-*.*"), *FPaths::ProjectLogDir()), true, false); 29 | 30 | if(GameLogBackupFiles.Num() == 0) 31 | { 32 | UE_LOG(LogSentrySdk, Log, TEXT("There are no game log backups available.")); 33 | return FString(""); 34 | } 35 | 36 | for (int i = 0; i < GameLogBackupFiles.Num(); ++i) 37 | { 38 | FString GameLogFullPath = IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*(FPaths::ProjectLogDir() / GameLogBackupFiles[i])); 39 | GameLogBackupFiles[i] = GameLogFullPath; 40 | } 41 | 42 | GameLogBackupFiles.Sort(FSentrySortFileByDatePredicate()); 43 | 44 | return GameLogBackupFiles[0]; 45 | } -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Utils/SentryFileUtils.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class SentryFileUtils 8 | { 9 | public: 10 | static FString GetGameLogPath(); 11 | static FString GetGameLogBackupPath(); 12 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Private/Utils/SentryScreenshotUtils.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class SentryScreenshotUtils 8 | { 9 | public: 10 | static bool CaptureScreenshot(const FString& ScreenshotSavePath); 11 | }; 12 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryBeforeSendHandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentryBeforeSendHandler.generated.h" 8 | 9 | class USentryEvent; 10 | class USentryHint; 11 | 12 | UCLASS(Blueprintable) 13 | class SENTRY_API USentryBeforeSendHandler : public UObject 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | UFUNCTION(BlueprintNativeEvent) 19 | USentryEvent* HandleBeforeSend(USentryEvent* Event, USentryHint* Hint); 20 | virtual USentryEvent* HandleBeforeSend_Implementation(USentryEvent* Event, USentryHint* Hint); 21 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryDataTypes.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentryDataTypes.generated.h" 8 | 9 | UENUM(BlueprintType) 10 | enum class ESentryLevel : uint8 11 | { 12 | Debug, 13 | Info, 14 | Warning, 15 | Error, 16 | Fatal 17 | }; 18 | 19 | UENUM(BlueprintType) 20 | enum class ESentryCrashedLastRun : uint8 21 | { 22 | NotEvaluated, 23 | NotCrashed, 24 | Crashed 25 | }; -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryHint.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "SentryHint.generated.h" 6 | 7 | class ISentryHint; 8 | class USentryAttachment; 9 | 10 | /** 11 | * Hint associated with the event. 12 | */ 13 | UCLASS(BlueprintType) 14 | class SENTRY_API USentryHint : public UObject 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | USentryHint(); 20 | 21 | /** Adds attachment to event hint. */ 22 | UFUNCTION(BlueprintCallable, Category = "Sentry") 23 | void AddAttachment(USentryAttachment* Attachment); 24 | 25 | void InitWithNativeImpl(TSharedPtr hintImpl); 26 | TSharedPtr GetNativeImpl(); 27 | 28 | private: 29 | TSharedPtr SentryHintNativeImpl; 30 | }; 31 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryId.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "SentryId.generated.h" 6 | 7 | class ISentryId; 8 | 9 | /** 10 | * Unique identifier of the event. 11 | */ 12 | UCLASS(BlueprintType) 13 | class SENTRY_API USentryId : public UObject 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | USentryId(); 19 | 20 | /** Gets string representation of the event ID. */ 21 | UFUNCTION(BlueprintPure, Category = "Sentry") 22 | FString ToString() const; 23 | 24 | void InitWithNativeImpl(TSharedPtr idImpl); 25 | TSharedPtr GetNativeImpl(); 26 | 27 | private: 28 | TSharedPtr SentryIdNativeImpl; 29 | }; 30 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryOutputDevice.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Misc/OutputDevice.h" 6 | #include "Runtime/Launch/Resources/Version.h" 7 | 8 | class FSentryOutputDevice : public FOutputDevice 9 | { 10 | public: 11 | virtual void Serialize( const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category) override; 12 | 13 | virtual bool CanBeUsedOnAnyThread() const override; 14 | virtual bool CanBeUsedOnMultipleThreads() const override; 15 | 16 | #if ENGINE_MAJOR_VERSION >= 5 17 | virtual bool CanBeUsedOnPanicThread() const override; 18 | #endif 19 | }; 20 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryOutputDeviceError.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "Runtime/Launch/Resources/Version.h" 6 | #include "Misc/OutputDeviceError.h" 7 | #include "Delegates/Delegate.h" 8 | 9 | class FSentryOutputDeviceError : public FOutputDeviceError 10 | { 11 | public: 12 | FSentryOutputDeviceError(FOutputDeviceError* Parent); 13 | 14 | virtual void Serialize( const TCHAR* V, ELogVerbosity::Type Verbosity, const FName& Category) override; 15 | virtual void HandleError() override; 16 | 17 | FOutputDeviceError* GetParentDevice(); 18 | 19 | #if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 3 20 | TMulticastDelegate OnAssert; 21 | #else 22 | TMulticastDelegate OnAssert; 23 | #endif 24 | 25 | private: 26 | FOutputDeviceError* ParentDevice; 27 | }; 28 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentrySamplingContext.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | #include "SentrySamplingContext.generated.h" 8 | 9 | class ISentrySamplingContext; 10 | class USentryTransactionContext; 11 | 12 | UCLASS(BlueprintType) 13 | class SENTRY_API USentrySamplingContext : public UObject 14 | { 15 | GENERATED_BODY() 16 | 17 | public: 18 | USentrySamplingContext(); 19 | 20 | /** Gets transaction context used for sampling. */ 21 | UFUNCTION(BlueprintPure, Category = "Sentry") 22 | USentryTransactionContext* GetTransactionContext() const; 23 | 24 | /** Gets custom data used for sampling. */ 25 | UFUNCTION(BlueprintPure, Category = "Sentry") 26 | TMap GetCustomSamplingContext() const; 27 | 28 | void InitWithNativeImpl(TSharedPtr samplingContextImpl); 29 | TSharedPtr GetNativeImpl(); 30 | 31 | private: 32 | TSharedPtr SentrySamplingContextNativeImpl; 33 | }; 34 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryTraceSampler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "UObject/Object.h" 7 | #include "SentryTraceSampler.generated.h" 8 | 9 | class USentrySamplingContext; 10 | 11 | UCLASS(Blueprintable) 12 | class SENTRY_API USentryTraceSampler : public UObject 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | UFUNCTION(BlueprintNativeEvent) 18 | bool Sample(USentrySamplingContext* samplingContext, float& samplingValue); 19 | virtual bool Sample_Implementation(USentrySamplingContext* samplingContext, float& samplingValue); 20 | }; 21 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Public/SentryTransactionContext.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "UObject/Object.h" 7 | #include "SentryTransactionContext.generated.h" 8 | 9 | class ISentryTransactionContext; 10 | 11 | UCLASS(BlueprintType) 12 | class SENTRY_API USentryTransactionContext : public UObject 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | USentryTransactionContext(); 18 | 19 | /** 20 | * Initializes transaction context with specified name and operation. 21 | * 22 | * @param Name Transaction name. 23 | * @param Operation Operation name. 24 | */ 25 | UFUNCTION(BlueprintCallable, Category = "Sentry") 26 | void Initialize(const FString& Name, const FString& Operation); 27 | 28 | /** Gets transaction name. */ 29 | UFUNCTION(BlueprintPure, Category = "Sentry") 30 | FString GetName() const; 31 | 32 | /** Gets operation name. */ 33 | UFUNCTION(BlueprintPure, Category = "Sentry") 34 | FString GetOperation() const; 35 | 36 | void InitWithNativeImpl(TSharedPtr transactionContextImpl); 37 | TSharedPtr GetNativeImpl(); 38 | 39 | private: 40 | TSharedPtr SentryTransactionContextNativeImpl; 41 | }; 42 | -------------------------------------------------------------------------------- /Sentry/Source/Sentry/Sentry_IOS_UPL.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Sentry/Source/SentryEditor/Private/SentryEditorModule.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #include "SentryEditorModule.h" 4 | #include "SentrySettings.h" 5 | #include "SentrySettingsCustomization.h" 6 | 7 | #include "Modules/ModuleManager.h" 8 | #include "PropertyEditorModule.h" 9 | 10 | #define LOCTEXT_NAMESPACE "FSentryEditorModule" 11 | 12 | const FName FSentryEditorModule::ModuleName = "SentryEditor"; 13 | 14 | void FSentryEditorModule::StartupModule() 15 | { 16 | // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module 17 | 18 | FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked("PropertyEditor"); 19 | PropertyModule.RegisterCustomClassLayout("SentrySettings", FOnGetDetailCustomizationInstance::CreateStatic(&FSentrySettingsCustomization::MakeInstance)); 20 | PropertyModule.NotifyCustomizationModuleChanged(); 21 | } 22 | 23 | void FSentryEditorModule::ShutdownModule() 24 | { 25 | // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, 26 | // we call this function before unloading the module. 27 | } 28 | 29 | FSentryEditorModule& FSentryEditorModule::Get() 30 | { 31 | return FModuleManager::LoadModuleChecked(ModuleName); 32 | } 33 | 34 | #undef LOCTEXT_NAMESPACE 35 | 36 | IMPLEMENT_MODULE(FSentryEditorModule, SentryEditor) 37 | -------------------------------------------------------------------------------- /Sentry/Source/SentryEditor/Public/SentryEditorModule.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Modules/ModuleInterface.h" 7 | 8 | class FSentryEditorModule : public IModuleInterface 9 | { 10 | public: 11 | /** IModuleInterface implementation */ 12 | virtual void StartupModule() override; 13 | virtual void ShutdownModule() override; 14 | 15 | /** 16 | * Singleton-like access to this module's interface. This is just for convenience! 17 | * Beware of calling this during the shutdown phase, though. Your module might be already unloaded. 18 | * 19 | * @return Returns singleton instance, loading the module on demand if needed. 20 | */ 21 | static FSentryEditorModule& Get(); 22 | 23 | static const FName ModuleName; 24 | }; 25 | -------------------------------------------------------------------------------- /Sentry/Source/SentryEditor/Public/SentrySymToolsDownloader.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 Sentry. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | class IHttpRequest; 8 | 9 | enum class ESentrySymToolsStatus : uint8 10 | { 11 | Missing = 0, 12 | Downloading, 13 | Configured 14 | }; 15 | 16 | class FSentrySymToolsDownloader 17 | { 18 | public: 19 | void Download(const TFunction& OnCompleted); 20 | 21 | ESentrySymToolsStatus GetStatus(); 22 | 23 | private: 24 | void Download(TSharedPtr& Request, const FString& Url, const FString& SavePath, const TFunction& OnCompleted); 25 | 26 | FString GetSentryCliPath() const; 27 | FString GetSentryCliVersion() const; 28 | FString GetSymUploadScriptPath() const; 29 | 30 | TSharedPtr SentryCliDownloadRequest; 31 | TSharedPtr SentryScriptDownloadRequest; 32 | 33 | const static FString SentryCliExecName; 34 | const static FString SentrySymUploadScriptName; 35 | }; 36 | -------------------------------------------------------------------------------- /Sentry/Source/SentryEditor/SentryEditor.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Sentry. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class SentryEditor : ModuleRules 6 | { 7 | public SentryEditor(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicDependencyModuleNames.AddRange( 12 | new string[] 13 | { 14 | "Core", 15 | } 16 | ); 17 | 18 | PrivateDependencyModuleNames.AddRange( 19 | new string[] 20 | { 21 | "CoreUObject", 22 | "Engine", 23 | "Slate", 24 | "SlateCore", 25 | "EditorStyle", 26 | "Sentry", 27 | "PropertyEditor", 28 | "Projects", 29 | "HTTP", 30 | "UATHelper" 31 | } 32 | ); 33 | } 34 | } -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Android/sentry.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Android/sentry.jar -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64 -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryCrashExceptionApplication.h: -------------------------------------------------------------------------------- 1 | // Don't move Foundation.h. We need it here in order to have 2 | // TargetConditionals.h automatically imported. This is needed 3 | // so that `#if TARGET_OS_OSX` is working fine. If we move 4 | // this the SDK breaks for MacOS. 5 | #import 6 | 7 | // Required for capturing uncaught exceptions in macOS. For more info see 8 | // https://docs.sentry.io/platforms/apple/guides/macos/usage/#capturing-uncaught-exceptions-in-macos 9 | #if TARGET_OS_OSX 10 | # import 11 | @interface SentryCrashExceptionApplication : NSApplication 12 | #else 13 | @interface SentryCrashExceptionApplication : NSObject 14 | #endif 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDsn.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @interface SentryDsn : NSObject 6 | 7 | @property (nonatomic, strong, readonly) NSURL *url; 8 | 9 | - (_Nullable instancetype)initWithString:(NSString *)dsnString 10 | didFailWithError:(NSError *_Nullable *_Nullable)error; 11 | 12 | - (NSString *)getHash; 13 | 14 | - (NSURL *)getStoreEndpoint; 15 | - (NSURL *)getEnvelopeEndpoint; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryEnvelopeItemHeader.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryEnvelopeItemHeader : NSObject 10 | SENTRY_NO_INIT 11 | 12 | - (instancetype)initWithType:(NSString *)type length:(NSUInteger)length NS_DESIGNATED_INITIALIZER; 13 | 14 | - (instancetype)initWithType:(NSString *)type 15 | length:(NSUInteger)length 16 | contentType:(NSString *)contentType; 17 | 18 | - (instancetype)initWithType:(NSString *)type 19 | length:(NSUInteger)length 20 | filenname:(NSString *)filename 21 | contentType:(NSString *)contentType; 22 | 23 | /** 24 | * The type of the envelope item. 25 | */ 26 | @property (nonatomic, readonly, copy) NSString *type; 27 | @property (nonatomic, readonly) NSUInteger length; 28 | @property (nonatomic, readonly, copy, nullable) NSString *filename; 29 | @property (nonatomic, readonly, copy, nullable) NSString *contentType; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryError.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | typedef NS_ENUM(NSInteger, SentryError) { 10 | kSentryErrorUnknownError = -1, 11 | kSentryErrorInvalidDsnError = 100, 12 | kSentryErrorSentryCrashNotInstalledError = 101, 13 | kSentryErrorInvalidCrashReportError = 102, 14 | kSentryErrorCompressionError = 103, 15 | kSentryErrorJsonConversionError = 104, 16 | kSentryErrorCouldNotFindDirectory = 105, 17 | kSentryErrorRequestError = 106, 18 | kSentryErrorEventNotSent = 107, 19 | kSentryErrorFileIO = 108, 20 | kSentryErrorKernel = 109, 21 | }; 22 | 23 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryError(SentryError error, NSString *description); 24 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithUnderlyingError( 25 | SentryError error, NSString *description, NSError *underlyingError); 26 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithException( 27 | SentryError error, NSString *description, NSException *exception); 28 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithKernelError( 29 | SentryError error, NSString *description, kern_return_t kernelErrorCode); 30 | 31 | SENTRY_EXTERN NSString *const SentryErrorDomain; 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryException.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | # import 6 | #else 7 | # import 8 | # import 9 | #endif 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class SentryStacktrace, SentryMechanism; 14 | 15 | NS_SWIFT_NAME(Exception) 16 | @interface SentryException : NSObject 17 | SENTRY_NO_INIT 18 | 19 | /** 20 | * The name of the exception 21 | */ 22 | @property (nonatomic, copy) NSString *value; 23 | 24 | /** 25 | * Type of the exception 26 | */ 27 | @property (nonatomic, copy) NSString *type; 28 | 29 | /** 30 | * Additional information about the exception 31 | */ 32 | @property (nonatomic, strong) SentryMechanism *_Nullable mechanism; 33 | 34 | /** 35 | * Can be set to define the module 36 | */ 37 | @property (nonatomic, copy) NSString *_Nullable module; 38 | 39 | /** 40 | * An optional value which refers to a thread in @c SentryEvent.threads 41 | */ 42 | @property (nonatomic, copy) NSNumber *_Nullable threadId; 43 | 44 | /** 45 | * Stacktrace containing frames of this exception. 46 | */ 47 | @property (nonatomic, strong) SentryStacktrace *_Nullable stacktrace; 48 | 49 | /** 50 | * Initialize an SentryException with value and type 51 | * @param value String 52 | * @param type String 53 | * @return SentryException 54 | */ 55 | - (instancetype)initWithValue:(NSString *)value type:(NSString *)type; 56 | 57 | @end 58 | 59 | NS_ASSUME_NONNULL_END 60 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryGeo.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /// Approximate geographical location of the end user or device. 13 | /// 14 | /// Example of serialized data: 15 | /// { 16 | /// "geo": { 17 | /// "country_code": "US", 18 | /// "city": "Ashburn", 19 | /// "region": "San Francisco" 20 | /// } 21 | /// } 22 | NS_SWIFT_NAME(Geo) 23 | @interface SentryGeo : NSObject 24 | 25 | /** 26 | * Optional: Human readable city name. 27 | */ 28 | @property (nullable, atomic, copy) NSString *city; 29 | 30 | /** 31 | * Optional: Two-letter country code (ISO 3166-1 alpha-2). 32 | */ 33 | @property (nullable, atomic, copy) NSString *countryCode; 34 | 35 | /** 36 | * Optional: Human readable region name or code. 37 | */ 38 | @property (nullable, atomic, copy) NSString *region; 39 | 40 | - (BOOL)isEqual:(id _Nullable)other; 41 | 42 | - (BOOL)isEqualToGeo:(SentryGeo *)geo; 43 | 44 | - (NSUInteger)hash; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryHttpStatusCodeRange.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /** 10 | * An HTTP status code range. 11 | */ 12 | NS_SWIFT_NAME(HttpStatusCodeRange) 13 | @interface SentryHttpStatusCodeRange : NSObject 14 | SENTRY_NO_INIT 15 | 16 | @property (nonatomic, readonly) NSInteger min; 17 | 18 | @property (nonatomic, readonly) NSInteger max; 19 | 20 | /** 21 | * The HTTP status code min and max. 22 | * @discussion The range is inclusive so the min and max is considered part of the range. 23 | * @example For a range: 400 to 499; 500 to 599; 400 to 599. 24 | */ 25 | - (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max; 26 | 27 | /** 28 | * The HTTP status code. 29 | * @example For a single status code: 400; 500. 30 | */ 31 | - (instancetype)initWithStatusCode:(NSInteger)statusCode; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanismMeta.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | @class SentryNSError; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * The mechanism metadata usually carries error codes reported by the runtime or operating system, 16 | * along with a platform-dependent interpretation of these codes. 17 | * @see https://develop.sentry.dev/sdk/event-payloads/exception/#meta-information. 18 | */ 19 | NS_SWIFT_NAME(MechanismMeta) 20 | @interface SentryMechanismMeta : NSObject 21 | 22 | - (instancetype)init; 23 | 24 | /** 25 | * Information on the POSIX signal. On Apple systems, signals also carry a code in addition to the 26 | * signal number describing the signal in more detail. On Linux, this code does not exist. 27 | */ 28 | @property (nullable, nonatomic, strong) NSDictionary *signal; 29 | 30 | /** 31 | * A Mach Exception on Apple systems comprising a code triple and optional descriptions. 32 | */ 33 | @property (nullable, nonatomic, strong) NSDictionary *machException; 34 | 35 | /** 36 | * Sentry uses the @c NSErrors domain and code for grouping. Only domain and code are serialized. 37 | */ 38 | @property (nullable, nonatomic, strong) SentryNSError *error; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryNSError.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /** 13 | * Sentry representation of an @c NSError to send to Sentry. 14 | */ 15 | @interface SentryNSError : NSObject 16 | SENTRY_NO_INIT 17 | 18 | /** 19 | * The domain of an @c NSError . 20 | */ 21 | @property (nonatomic, copy) NSString *domain; 22 | 23 | /** 24 | * The error code of an @c NSError . 25 | */ 26 | @property (nonatomic, assign) NSInteger code; 27 | 28 | /** 29 | * Initializes @c SentryNSError and sets the domain and code. 30 | * @param domain The domain of an @c NSError. 31 | * @param code The error code of an @c NSError. 32 | */ 33 | - (instancetype)initWithDomain:(NSString *)domain code:(NSInteger)code; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryProfilingConditionals.h: -------------------------------------------------------------------------------- 1 | #ifndef SentryProfilingConditionals_h 2 | #define SentryProfilingConditionals_h 3 | 4 | #include 5 | 6 | // tvOS and watchOS do not support the kernel APIs required by our profiler 7 | // e.g. mach_msg, thread_suspend, thread_resume 8 | #if TARGET_OS_WATCH || TARGET_OS_TV 9 | # define SENTRY_TARGET_PROFILING_SUPPORTED 0 10 | #else 11 | # define SENTRY_TARGET_PROFILING_SUPPORTED 1 12 | #endif 13 | 14 | #endif /* SentryProfilingConditionals_h */ 15 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryReplayApi.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | #else 6 | # import 7 | #endif 8 | 9 | #if SENTRY_TARGET_REPLAY_SUPPORTED 10 | 11 | @class UIView; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface SentryReplayApi : NSObject 16 | 17 | /** 18 | * Marks this view to be masked during replays. 19 | * 20 | * @warning This is an experimental feature and may still have bugs. 21 | */ 22 | - (void)maskView:(UIView *)view NS_SWIFT_NAME(maskView(_:)); 23 | 24 | /** 25 | * Marks this view to not be masked during redact step of session replay. 26 | * 27 | * @warning This is an experimental feature and may still have bugs. 28 | */ 29 | - (void)unmaskView:(UIView *)view NS_SWIFT_NAME(unmaskView(_:)); 30 | 31 | /** 32 | * Pauses the replay. 33 | * 34 | * @warning This is an experimental feature and may still have bugs. 35 | */ 36 | - (void)pause; 37 | 38 | /** 39 | * Resumes the ongoing replay. 40 | * 41 | * @warning This is an experimental feature and may still have bugs. 42 | */ 43 | - (void)resume; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryRequest.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @interface SentryRequest : NSObject 12 | 13 | /** 14 | * Optional: HTTP response body size. 15 | */ 16 | @property (nonatomic, copy, nullable) NSNumber *bodySize; 17 | 18 | /** 19 | * Optional: The cookie values. 20 | */ 21 | @property (nonatomic, copy, nullable) NSString *cookies; 22 | 23 | /** 24 | * Optional: A dictionary of submitted headers. 25 | */ 26 | @property (nonatomic, strong, nullable) NSDictionary *headers; 27 | 28 | /** 29 | * Optional: The fragment of the request URL. 30 | */ 31 | @property (nonatomic, copy, nullable) NSString *fragment; 32 | 33 | /** 34 | * Optional: HTTP request method. 35 | */ 36 | @property (nonatomic, copy, nullable) NSString *method; 37 | 38 | /** 39 | * Optional: The query string component of the URL. 40 | */ 41 | @property (nonatomic, copy, nullable) NSString *queryString; 42 | 43 | /** 44 | * Optional: The URL of the request if available. 45 | */ 46 | @property (nonatomic, copy, nullable) NSString *url; 47 | 48 | - (instancetype)init; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySampleDecision.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * Trace sample decision flag. 5 | */ 6 | typedef NS_ENUM(NSUInteger, SentrySampleDecision) { 7 | /** 8 | * Used when the decision to sample a trace should be postponed. 9 | */ 10 | kSentrySampleDecisionUndecided, 11 | 12 | /** 13 | * The trace should be sampled. 14 | */ 15 | kSentrySampleDecisionYes, 16 | 17 | /** 18 | * The trace should not be sampled. 19 | */ 20 | kSentrySampleDecisionNo 21 | }; 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySamplingContext.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class SentryTransactionContext; 6 | 7 | NS_SWIFT_NAME(SamplingContext) 8 | @interface SentrySamplingContext : NSObject 9 | 10 | /** 11 | * Transaction context. 12 | */ 13 | @property (nonatomic, readonly) SentryTransactionContext *transactionContext; 14 | 15 | /** 16 | * Custom data used for sampling. 17 | */ 18 | @property (nullable, nonatomic, readonly) NSDictionary *customSamplingContext; 19 | 20 | /** 21 | * Init a SentryTransactionSamplingContext. 22 | * @param transactionContext The context of the transaction being sampled. 23 | */ 24 | - (instancetype)initWithTransactionContext:(SentryTransactionContext *)transactionContext; 25 | 26 | /** 27 | * Init a SentryTransactionSamplingContext. 28 | * @param transactionContext The context of the transaction being sampled. 29 | * @param customSamplingContext Custom data used for sampling. 30 | */ 31 | - (instancetype)initWithTransactionContext:(SentryTransactionContext *)transactionContext 32 | customSamplingContext:(NSDictionary *)customSamplingContext; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySerializable.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | #else 5 | # import 6 | #endif 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @protocol SentrySerializable 11 | SENTRY_NO_INIT 12 | 13 | /** 14 | * Serialize the contents of the object into an NSDictionary. Make to copy all properties of the 15 | * original object so modifications to it don't have an impact on the serialized NSDictionary. 16 | */ 17 | - (NSDictionary *)serialize; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySpanId.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | /** 6 | * A 16 character Id. 7 | */ 8 | 9 | NS_SWIFT_NAME(SpanId) 10 | @interface SentrySpanId : NSObject 11 | 12 | /** 13 | * Creates a SentrySpanId with a random 16 character Id. 14 | */ 15 | - (instancetype)init; 16 | 17 | /** 18 | * Creates a SentrySpanId with the first 16 characters of the given UUID. 19 | */ 20 | - (instancetype)initWithUUID:(NSUUID *)uuid; 21 | 22 | /** 23 | * Creates a SentrySpanId from a 16 character string. 24 | * Returns a empty SentrySpanId with the input is invalid. 25 | */ 26 | - (instancetype)initWithValue:(NSString *)value; 27 | 28 | /** 29 | * Returns the Span Id Value 30 | */ 31 | @property (readonly, copy) NSString *sentrySpanIdString; 32 | 33 | /** 34 | * A SentrySpanId with an empty Id "0000000000000000". 35 | */ 36 | @property (class, nonatomic, readonly, strong) SentrySpanId *empty; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryStacktrace.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | # import 6 | #else 7 | # import 8 | # import 9 | #endif 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class SentryFrame; 14 | 15 | @interface SentryStacktrace : NSObject 16 | SENTRY_NO_INIT 17 | 18 | /** 19 | * Array of all SentryFrame in the stacktrace 20 | */ 21 | @property (nonatomic, strong) NSArray *frames; 22 | 23 | /** 24 | * Registers of the thread for additional information used on the server 25 | */ 26 | @property (nonatomic, strong) NSDictionary *registers; 27 | 28 | /** 29 | * Indicates that this stack trace is a snapshot triggered by an external signal. 30 | */ 31 | @property (nonatomic, copy, nullable) NSNumber *snapshot; 32 | 33 | /** 34 | * Initialize a SentryStacktrace with frames and registers 35 | * @param frames NSArray 36 | * @param registers NSArray 37 | * @return SentryStacktrace 38 | */ 39 | - (instancetype)initWithFrames:(NSArray *)frames 40 | registers:(NSDictionary *)registers; 41 | 42 | /** 43 | * This will be called internally, is used to remove duplicated frames for 44 | * certain crashes. 45 | */ 46 | - (void)fixDuplicateFrames; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryThread.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @class SentryStacktrace; 12 | 13 | @interface SentryThread : NSObject 14 | SENTRY_NO_INIT 15 | 16 | /** 17 | * Number of the thread 18 | */ 19 | @property (nonatomic, copy) NSNumber *threadId; 20 | 21 | /** 22 | * Name (if available) of the thread 23 | */ 24 | @property (nullable, nonatomic, copy) NSString *name; 25 | 26 | /** 27 | * SentryStacktrace of the SentryThread 28 | */ 29 | @property (nullable, nonatomic, strong) SentryStacktrace *stacktrace; 30 | 31 | /** 32 | * Did this thread crash? 33 | */ 34 | @property (nullable, nonatomic, copy) NSNumber *crashed; 35 | 36 | /** 37 | * Was it the current thread. 38 | */ 39 | @property (nullable, nonatomic, copy) NSNumber *current; 40 | 41 | /** 42 | * Was it the main thread? 43 | */ 44 | @property (nullable, nonatomic, copy) NSNumber *isMain; 45 | 46 | /** 47 | * Initializes a SentryThread with its id 48 | * @param threadId NSNumber 49 | * @return SentryThread 50 | */ 51 | - (instancetype)initWithThreadId:(NSNumber *)threadId; 52 | 53 | @end 54 | 55 | NS_ASSUME_NONNULL_END 56 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryTraceHeader.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | @class SentryId, SentrySpanId; 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | static NSString *const SENTRY_TRACE_HEADER = @"sentry-trace"; 14 | 15 | NS_SWIFT_NAME(TraceHeader) 16 | @interface SentryTraceHeader : NSObject 17 | SENTRY_NO_INIT 18 | /** 19 | * Trace ID. 20 | */ 21 | @property (nonatomic, readonly) SentryId *traceId; 22 | 23 | /** 24 | * Span ID. 25 | */ 26 | @property (nonatomic, readonly) SentrySpanId *spanId; 27 | 28 | /** 29 | * The trace sample decision. 30 | */ 31 | @property (nonatomic, readonly) SentrySampleDecision sampled; 32 | 33 | /** 34 | * @param traceId The trace id. 35 | * @param spanId The span id. 36 | * @param sampled The decision made to sample the trace related to this header. 37 | */ 38 | - (instancetype)initWithTraceId:(SentryId *)traceId 39 | spanId:(SentrySpanId *)spanId 40 | sampled:(SentrySampleDecision)sampled; 41 | 42 | /** 43 | * Return the value to use in a request header. 44 | */ 45 | - (NSString *)value; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryUserFeedback.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @class SentryId; 12 | 13 | /** 14 | * Adds additional information about what happened to an event. 15 | */ 16 | NS_SWIFT_NAME(UserFeedback) 17 | @interface SentryUserFeedback : NSObject 18 | SENTRY_NO_INIT 19 | 20 | /** 21 | * Initializes SentryUserFeedback and sets the required eventId. 22 | * @param eventId The eventId of the event to which the user feedback is associated. 23 | */ 24 | - (instancetype)initWithEventId:(SentryId *)eventId; 25 | 26 | /** 27 | * The eventId of the event to which the user feedback is associated. 28 | */ 29 | @property (readonly, nonatomic, strong) SentryId *eventId; 30 | 31 | /** 32 | * The name of the user. 33 | */ 34 | @property (nonatomic, copy) NSString *name; 35 | 36 | /** 37 | * The email of the user. 38 | */ 39 | @property (nonatomic, copy) NSString *email; 40 | 41 | /** 42 | * Comments of the user about what happened. 43 | */ 44 | @property (nonatomic, copy) NSString *comments; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftmodule -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Sentry { 2 | umbrella header "Sentry.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Sentry.Swift { 9 | header "Sentry-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/PrivatesHeader.h: -------------------------------------------------------------------------------- 1 | // We need this because if Sentry library is added as a Framework 2 | // the reference should be in the form of . 3 | // Otherwise, the reference is direct. 4 | #if __has_include() 5 | # import 6 | #else 7 | # import "SentryDefines.h" 8 | #endif 9 | 10 | #if __has_include() 11 | # import 12 | #else 13 | # import "SentryProfilingConditionals.h" 14 | #endif 15 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryAsynchronousOperation.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @interface SentryAsynchronousOperation : NSOperation 6 | 7 | - (void)completeOperation; 8 | 9 | @end 10 | 11 | NS_ASSUME_NONNULL_END 12 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryAutoSessionTrackingIntegration.h: -------------------------------------------------------------------------------- 1 | #import "SentryBaseIntegration.h" 2 | #import "SentrySwift.h" 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /** 8 | * Automatically tracks session start and end. 9 | */ 10 | @interface SentryAutoSessionTrackingIntegration : SentryBaseIntegration 11 | 12 | - (void)stop; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryCrashInstallationReporter.h: -------------------------------------------------------------------------------- 1 | #import "SentryCrash.h" 2 | #import "SentryCrashInstallation.h" 3 | #import "SentryDefines.h" 4 | #import 5 | 6 | @class SentryInAppLogic, SentryCrashWrapper, SentryDispatchQueueWrapper; 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface SentryCrashInstallationReporter : SentryCrashInstallation 11 | SENTRY_NO_INIT 12 | 13 | - (instancetype)initWithInAppLogic:(SentryInAppLogic *)inAppLogic 14 | crashWrapper:(SentryCrashWrapper *)crashWrapper 15 | dispatchQueue:(SentryDispatchQueueWrapper *)dispatchQueue; 16 | 17 | - (void)sendAllReportsWithCompletion:(nullable SentryCrashReportFilterCompletion)onCompletion; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryCrashReportConverter.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class SentryEvent, SentryInAppLogic; 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @interface SentryCrashReportConverter : NSObject 8 | 9 | @property (nonatomic, strong) NSDictionary *userContext; 10 | 11 | - (instancetype)initWithReport:(NSDictionary *)report inAppLogic:(SentryInAppLogic *)inAppLogic; 12 | 13 | /** 14 | * Converts the report to an @c SentryEvent. 15 | * @return The converted event or nil if an error occurred during the conversion. 16 | */ 17 | - (SentryEvent *_Nullable)convertReportToEvent; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryCrashReportSink.h: -------------------------------------------------------------------------------- 1 | #import "SentryCrash.h" 2 | #import "SentryDefines.h" 3 | #import 4 | 5 | @class SentryInAppLogic, SentryCrashWrapper, SentryDispatchQueueWrapper; 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryCrashReportSink : NSObject 10 | SENTRY_NO_INIT 11 | 12 | - (instancetype)initWithInAppLogic:(SentryInAppLogic *)inAppLogic 13 | crashWrapper:(SentryCrashWrapper *)crashWrapper 14 | dispatchQueue:(SentryDispatchQueueWrapper *)dispatchQueue; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDateUtils.h: -------------------------------------------------------------------------------- 1 | #import "SentryDefines.h" 2 | #import 3 | 4 | NS_ASSUME_NONNULL_BEGIN 5 | 6 | SENTRY_EXTERN NSDate *sentry_fromIso8601String(NSString *string); 7 | 8 | SENTRY_EXTERN NSString *sentry_toIso8601String(NSDate *date); 9 | 10 | NS_ASSUME_NONNULL_END 11 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelopeItemType.h: -------------------------------------------------------------------------------- 1 | // each item type must have a data category name mapped to it; see SentryDataCategoryMapper 2 | 3 | static NSString *const SentryEnvelopeItemTypeEvent = @"event"; 4 | static NSString *const SentryEnvelopeItemTypeSession = @"session"; 5 | static NSString *const SentryEnvelopeItemTypeUserFeedback = @"user_report"; 6 | static NSString *const SentryEnvelopeItemTypeTransaction = @"transaction"; 7 | static NSString *const SentryEnvelopeItemTypeAttachment = @"attachment"; 8 | static NSString *const SentryEnvelopeItemTypeClientReport = @"client_report"; 9 | static NSString *const SentryEnvelopeItemTypeProfile = @"profile"; 10 | static NSString *const SentryEnvelopeItemTypeReplayVideo = @"replay_video"; 11 | static NSString *const SentryEnvelopeItemTypeStatsd = @"statsd"; 12 | static NSString *const SentryEnvelopeItemTypeProfileChunk = @"profile_chunk"; 13 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryNSDataUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NSData *_Nullable sentry_gzippedWithCompressionLevel( 6 | NSData *data, NSInteger compressionLevel, NSError *_Nullable *_Nullable error); 7 | 8 | /** 9 | * Adds a null character to the end of the byte array. This helps when strings should be null 10 | * terminated. 11 | */ 12 | NSData *_Nullable sentry_nullTerminated(NSData *_Nullable data); 13 | 14 | /** 15 | * Calculates an CRC32 (Cyclic Redundancy Check 32) checksum for the string by first encoding it to 16 | * UTF8Encoded data. 17 | */ 18 | NSUInteger sentry_crc32ofString(NSString *value); 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryNSDictionarySanitize.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NSDictionary *_Nullable sentry_sanitize(NSDictionary *_Nullable dictionary); 6 | 7 | NS_ASSUME_NONNULL_END 8 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+HybridSDKs.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import "SentryOptions.h" 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryOptions () 10 | 11 | - (_Nullable instancetype)initWithDict:(NSDictionary *)options 12 | didFailWithError:(NSError *_Nullable *_Nullable)error; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+Private.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import "SentryOptions.h" 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /** 10 | * Block used to configure the user feedback widget, form, behaviors and submission data. 11 | */ 12 | typedef void (^SentryUserFeedbackConfigurationBlock)( 13 | SentryUserFeedbackConfiguration *_Nonnull configuration); 14 | 15 | FOUNDATION_EXPORT NSString *const kSentryDefaultEnvironment; 16 | 17 | @interface SentryOptions () 18 | #if SENTRY_TARGET_PROFILING_SUPPORTED 19 | @property (nonatomic, assign) BOOL enableProfiling_DEPRECATED_TEST_ONLY; 20 | - (BOOL)isContinuousProfilingEnabled; 21 | #endif // SENTRY_TARGET_PROFILING_SUPPORTED 22 | 23 | /** 24 | * A block that can be defined that receives a user feedback configuration object to modify. 25 | * @warning This is an experimental feature and may still have bugs. 26 | * @note This is unrelated to @c SentrySDK.captureUserFeedback which is a method you can call to 27 | * directly submit user feedback that you've already gathered via your own UI. See 28 | * https://docs.sentry.io/platforms/apple/user-feedback/#user-feedback-api and (TODO: add link to 29 | * new docs) for more information on each approach. 30 | */ 31 | @property (nonatomic, copy, nullable) SentryUserFeedbackConfigurationBlock configureUserFeedback; 32 | 33 | SENTRY_EXTERN BOOL sentry_isValidSampleRate(NSNumber *sampleRate); 34 | 35 | @property (nonatomic, assign) BOOL enableAppHangTrackingV2; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryRequestOperation.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "SentryAsynchronousOperation.h" 4 | #import "SentryQueueableRequestManager.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | @interface SentryRequestOperation : SentryAsynchronousOperation 9 | 10 | - (instancetype)initWithSession:(NSURLSession *)session 11 | request:(NSURLRequest *)request 12 | completionHandler:(_Nullable SentryRequestOperationFinished)completionHandler; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySdkInfo.h: -------------------------------------------------------------------------------- 1 | #import "SentryDefines.h" 2 | #import "SentryInternalSerializable.h" 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /** 8 | * Describes the Sentry SDK and its configuration used to capture and transmit an event. 9 | * @note Both name and version are required. 10 | * @see https://develop.sentry.dev/sdk/event-payloads/sdk/ 11 | */ 12 | @interface SentrySdkInfo : NSObject 13 | SENTRY_NO_INIT 14 | 15 | /** 16 | * The name of the SDK. Examples: sentry.cocoa, sentry.cocoa.vapor, ... 17 | */ 18 | @property (nonatomic, readonly, copy) NSString *name; 19 | 20 | /** 21 | * The version of the SDK. It should have the Semantic Versioning format MAJOR.MINOR.PATCH, without 22 | * any prefix (no v or anything else in front of the major version number). Examples: 23 | * 0.1.0, 1.0.0, 2.0.0-beta0 24 | */ 25 | @property (nonatomic, readonly, copy) NSString *version; 26 | 27 | - (instancetype)initWithName:(NSString *)name 28 | andVersion:(NSString *)version NS_DESIGNATED_INITIALIZER; 29 | 30 | - (instancetype)initWithDict:(NSDictionary *)dict; 31 | 32 | - (instancetype)initWithDict:(NSDictionary *)dict orDefaults:(SentrySdkInfo *)info; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySwift.h: -------------------------------------------------------------------------------- 1 | #ifndef SentrySwift_h 2 | #define SentrySwift_h 3 | 4 | #ifdef __cplusplus 5 | # if __has_include() 6 | # import 7 | # endif 8 | #endif 9 | 10 | #if __has_include() 11 | # if __has_include("SentryWithoutUIKit-Swift.h") 12 | # import "SentryWithoutUIKit-Swift.h" 13 | # else 14 | # import 15 | # endif 16 | #else // !__has_include() 17 | 18 | // needed for the check for SENTRY_HAS_UIKIT below 19 | # if __has_include() 20 | # import 21 | # else 22 | # import "SentryDefines.h" 23 | # endif // __has_include() 24 | 25 | # if SENTRY_HAS_UIKIT 26 | // this is needed to fix a build issue when building iOS-ObjectiveC where the definitions of some 27 | // UIKIt enums used from SentryUserFeedbackWidgetConfiguration.swift aren't visible from the 28 | // generated ObjC interface for that class in Sentry-Swift.h 29 | # import 30 | # endif // SENTRY_HAS_UIKIT 31 | 32 | # if __has_include("Sentry-Swift.h") 33 | # import "Sentry-Swift.h" 34 | # else 35 | # import 36 | # endif 37 | #endif // __has_include() 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/bin/crashpad_handler: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/bin/crashpad_handler -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_client.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_client.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_compat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_compat.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_handler_lib.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_handler_lib.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_minidump.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_minidump.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_snapshot.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_snapshot.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_tools.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_tools.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libcrashpad_util.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libcrashpad_util.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libmini_chromium.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libmini_chromium.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Linux/lib/libsentry.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Linux/lib/libsentry.a -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/bin/sentry.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Mac/bin/sentry.dylib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/PrivatesHeader.h: -------------------------------------------------------------------------------- 1 | // We need this because if Sentry library is added as a Framework 2 | // the reference should be in the form of . 3 | // Otherwise, the reference is direct. 4 | #if __has_include() 5 | # import 6 | #else 7 | # import "SentryDefines.h" 8 | #endif 9 | 10 | #if __has_include() 11 | # import 12 | #else 13 | # import "SentryProfilingConditionals.h" 14 | #endif 15 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryAsynchronousOperation.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @interface SentryAsynchronousOperation : NSOperation 6 | 7 | - (void)completeOperation; 8 | 9 | @end 10 | 11 | NS_ASSUME_NONNULL_END 12 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryAutoSessionTrackingIntegration.h: -------------------------------------------------------------------------------- 1 | #import "SentryBaseIntegration.h" 2 | #import "SentrySwift.h" 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /** 8 | * Automatically tracks session start and end. 9 | */ 10 | @interface SentryAutoSessionTrackingIntegration : SentryBaseIntegration 11 | 12 | - (void)stop; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryCrashExceptionApplication.h: -------------------------------------------------------------------------------- 1 | // Don't move Foundation.h. We need it here in order to have 2 | // TargetConditionals.h automatically imported. This is needed 3 | // so that `#if TARGET_OS_OSX` is working fine. If we move 4 | // this the SDK breaks for MacOS. 5 | #import 6 | 7 | // Required for capturing uncaught exceptions in macOS. For more info see 8 | // https://docs.sentry.io/platforms/apple/guides/macos/usage/#capturing-uncaught-exceptions-in-macos 9 | #if TARGET_OS_OSX 10 | # import 11 | @interface SentryCrashExceptionApplication : NSApplication 12 | #else 13 | @interface SentryCrashExceptionApplication : NSObject 14 | #endif 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryCrashInstallationReporter.h: -------------------------------------------------------------------------------- 1 | #import "SentryCrash.h" 2 | #import "SentryCrashInstallation.h" 3 | #import "SentryDefines.h" 4 | #import 5 | 6 | @class SentryInAppLogic, SentryCrashWrapper, SentryDispatchQueueWrapper; 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface SentryCrashInstallationReporter : SentryCrashInstallation 11 | SENTRY_NO_INIT 12 | 13 | - (instancetype)initWithInAppLogic:(SentryInAppLogic *)inAppLogic 14 | crashWrapper:(SentryCrashWrapper *)crashWrapper 15 | dispatchQueue:(SentryDispatchQueueWrapper *)dispatchQueue; 16 | 17 | - (void)sendAllReportsWithCompletion:(nullable SentryCrashReportFilterCompletion)onCompletion; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryCrashReportConverter.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class SentryEvent, SentryInAppLogic; 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @interface SentryCrashReportConverter : NSObject 8 | 9 | @property (nonatomic, strong) NSDictionary *userContext; 10 | 11 | - (instancetype)initWithReport:(NSDictionary *)report inAppLogic:(SentryInAppLogic *)inAppLogic; 12 | 13 | /** 14 | * Converts the report to an @c SentryEvent. 15 | * @return The converted event or nil if an error occurred during the conversion. 16 | */ 17 | - (SentryEvent *_Nullable)convertReportToEvent; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryCrashReportSink.h: -------------------------------------------------------------------------------- 1 | #import "SentryCrash.h" 2 | #import "SentryDefines.h" 3 | #import 4 | 5 | @class SentryInAppLogic, SentryCrashWrapper, SentryDispatchQueueWrapper; 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryCrashReportSink : NSObject 10 | SENTRY_NO_INIT 11 | 12 | - (instancetype)initWithInAppLogic:(SentryInAppLogic *)inAppLogic 13 | crashWrapper:(SentryCrashWrapper *)crashWrapper 14 | dispatchQueue:(SentryDispatchQueueWrapper *)dispatchQueue; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDateUtils.h: -------------------------------------------------------------------------------- 1 | #import "SentryDefines.h" 2 | #import 3 | 4 | NS_ASSUME_NONNULL_BEGIN 5 | 6 | SENTRY_EXTERN NSDate *sentry_fromIso8601String(NSString *string); 7 | 8 | SENTRY_EXTERN NSString *sentry_toIso8601String(NSDate *date); 9 | 10 | NS_ASSUME_NONNULL_END 11 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDsn.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @interface SentryDsn : NSObject 6 | 7 | @property (nonatomic, strong, readonly) NSURL *url; 8 | 9 | - (_Nullable instancetype)initWithString:(NSString *)dsnString 10 | didFailWithError:(NSError *_Nullable *_Nullable)error; 11 | 12 | - (NSString *)getHash; 13 | 14 | - (NSURL *)getStoreEndpoint; 15 | - (NSURL *)getEnvelopeEndpoint; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemHeader.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryEnvelopeItemHeader : NSObject 10 | SENTRY_NO_INIT 11 | 12 | - (instancetype)initWithType:(NSString *)type length:(NSUInteger)length NS_DESIGNATED_INITIALIZER; 13 | 14 | - (instancetype)initWithType:(NSString *)type 15 | length:(NSUInteger)length 16 | contentType:(NSString *)contentType; 17 | 18 | - (instancetype)initWithType:(NSString *)type 19 | length:(NSUInteger)length 20 | filenname:(NSString *)filename 21 | contentType:(NSString *)contentType; 22 | 23 | /** 24 | * The type of the envelope item. 25 | */ 26 | @property (nonatomic, readonly, copy) NSString *type; 27 | @property (nonatomic, readonly) NSUInteger length; 28 | @property (nonatomic, readonly, copy, nullable) NSString *filename; 29 | @property (nonatomic, readonly, copy, nullable) NSString *contentType; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemType.h: -------------------------------------------------------------------------------- 1 | // each item type must have a data category name mapped to it; see SentryDataCategoryMapper 2 | 3 | static NSString *const SentryEnvelopeItemTypeEvent = @"event"; 4 | static NSString *const SentryEnvelopeItemTypeSession = @"session"; 5 | static NSString *const SentryEnvelopeItemTypeUserFeedback = @"user_report"; 6 | static NSString *const SentryEnvelopeItemTypeTransaction = @"transaction"; 7 | static NSString *const SentryEnvelopeItemTypeAttachment = @"attachment"; 8 | static NSString *const SentryEnvelopeItemTypeClientReport = @"client_report"; 9 | static NSString *const SentryEnvelopeItemTypeProfile = @"profile"; 10 | static NSString *const SentryEnvelopeItemTypeReplayVideo = @"replay_video"; 11 | static NSString *const SentryEnvelopeItemTypeStatsd = @"statsd"; 12 | static NSString *const SentryEnvelopeItemTypeProfileChunk = @"profile_chunk"; 13 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryError.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | typedef NS_ENUM(NSInteger, SentryError) { 10 | kSentryErrorUnknownError = -1, 11 | kSentryErrorInvalidDsnError = 100, 12 | kSentryErrorSentryCrashNotInstalledError = 101, 13 | kSentryErrorInvalidCrashReportError = 102, 14 | kSentryErrorCompressionError = 103, 15 | kSentryErrorJsonConversionError = 104, 16 | kSentryErrorCouldNotFindDirectory = 105, 17 | kSentryErrorRequestError = 106, 18 | kSentryErrorEventNotSent = 107, 19 | kSentryErrorFileIO = 108, 20 | kSentryErrorKernel = 109, 21 | }; 22 | 23 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryError(SentryError error, NSString *description); 24 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithUnderlyingError( 25 | SentryError error, NSString *description, NSError *underlyingError); 26 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithException( 27 | SentryError error, NSString *description, NSException *exception); 28 | SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryErrorWithKernelError( 29 | SentryError error, NSString *description, kern_return_t kernelErrorCode); 30 | 31 | SENTRY_EXTERN NSString *const SentryErrorDomain; 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryException.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | # import 6 | #else 7 | # import 8 | # import 9 | #endif 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class SentryStacktrace, SentryMechanism; 14 | 15 | NS_SWIFT_NAME(Exception) 16 | @interface SentryException : NSObject 17 | SENTRY_NO_INIT 18 | 19 | /** 20 | * The name of the exception 21 | */ 22 | @property (nonatomic, copy) NSString *value; 23 | 24 | /** 25 | * Type of the exception 26 | */ 27 | @property (nonatomic, copy) NSString *type; 28 | 29 | /** 30 | * Additional information about the exception 31 | */ 32 | @property (nonatomic, strong) SentryMechanism *_Nullable mechanism; 33 | 34 | /** 35 | * Can be set to define the module 36 | */ 37 | @property (nonatomic, copy) NSString *_Nullable module; 38 | 39 | /** 40 | * An optional value which refers to a thread in @c SentryEvent.threads 41 | */ 42 | @property (nonatomic, copy) NSNumber *_Nullable threadId; 43 | 44 | /** 45 | * Stacktrace containing frames of this exception. 46 | */ 47 | @property (nonatomic, strong) SentryStacktrace *_Nullable stacktrace; 48 | 49 | /** 50 | * Initialize an SentryException with value and type 51 | * @param value String 52 | * @param type String 53 | * @return SentryException 54 | */ 55 | - (instancetype)initWithValue:(NSString *)value type:(NSString *)type; 56 | 57 | @end 58 | 59 | NS_ASSUME_NONNULL_END 60 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryGeo.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /// Approximate geographical location of the end user or device. 13 | /// 14 | /// Example of serialized data: 15 | /// { 16 | /// "geo": { 17 | /// "country_code": "US", 18 | /// "city": "Ashburn", 19 | /// "region": "San Francisco" 20 | /// } 21 | /// } 22 | NS_SWIFT_NAME(Geo) 23 | @interface SentryGeo : NSObject 24 | 25 | /** 26 | * Optional: Human readable city name. 27 | */ 28 | @property (nullable, atomic, copy) NSString *city; 29 | 30 | /** 31 | * Optional: Two-letter country code (ISO 3166-1 alpha-2). 32 | */ 33 | @property (nullable, atomic, copy) NSString *countryCode; 34 | 35 | /** 36 | * Optional: Human readable region name or code. 37 | */ 38 | @property (nullable, atomic, copy) NSString *region; 39 | 40 | - (BOOL)isEqual:(id _Nullable)other; 41 | 42 | - (BOOL)isEqualToGeo:(SentryGeo *)geo; 43 | 44 | - (NSUInteger)hash; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryHttpStatusCodeRange.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /** 10 | * An HTTP status code range. 11 | */ 12 | NS_SWIFT_NAME(HttpStatusCodeRange) 13 | @interface SentryHttpStatusCodeRange : NSObject 14 | SENTRY_NO_INIT 15 | 16 | @property (nonatomic, readonly) NSInteger min; 17 | 18 | @property (nonatomic, readonly) NSInteger max; 19 | 20 | /** 21 | * The HTTP status code min and max. 22 | * @discussion The range is inclusive so the min and max is considered part of the range. 23 | * @example For a range: 400 to 499; 500 to 599; 400 to 599. 24 | */ 25 | - (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max; 26 | 27 | /** 28 | * The HTTP status code. 29 | * @example For a single status code: 400; 500. 30 | */ 31 | - (instancetype)initWithStatusCode:(NSInteger)statusCode; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanismMeta.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | @class SentryNSError; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * The mechanism metadata usually carries error codes reported by the runtime or operating system, 16 | * along with a platform-dependent interpretation of these codes. 17 | * @see https://develop.sentry.dev/sdk/event-payloads/exception/#meta-information. 18 | */ 19 | NS_SWIFT_NAME(MechanismMeta) 20 | @interface SentryMechanismMeta : NSObject 21 | 22 | - (instancetype)init; 23 | 24 | /** 25 | * Information on the POSIX signal. On Apple systems, signals also carry a code in addition to the 26 | * signal number describing the signal in more detail. On Linux, this code does not exist. 27 | */ 28 | @property (nullable, nonatomic, strong) NSDictionary *signal; 29 | 30 | /** 31 | * A Mach Exception on Apple systems comprising a code triple and optional descriptions. 32 | */ 33 | @property (nullable, nonatomic, strong) NSDictionary *machException; 34 | 35 | /** 36 | * Sentry uses the @c NSErrors domain and code for grouping. Only domain and code are serialized. 37 | */ 38 | @property (nullable, nonatomic, strong) SentryNSError *error; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSDataUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NSData *_Nullable sentry_gzippedWithCompressionLevel( 6 | NSData *data, NSInteger compressionLevel, NSError *_Nullable *_Nullable error); 7 | 8 | /** 9 | * Adds a null character to the end of the byte array. This helps when strings should be null 10 | * terminated. 11 | */ 12 | NSData *_Nullable sentry_nullTerminated(NSData *_Nullable data); 13 | 14 | /** 15 | * Calculates an CRC32 (Cyclic Redundancy Check 32) checksum for the string by first encoding it to 16 | * UTF8Encoded data. 17 | */ 18 | NSUInteger sentry_crc32ofString(NSString *value); 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSDictionarySanitize.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NSDictionary *_Nullable sentry_sanitize(NSDictionary *_Nullable dictionary); 6 | 7 | NS_ASSUME_NONNULL_END 8 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSError.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | # import 5 | #else 6 | # import 7 | # import 8 | #endif 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /** 13 | * Sentry representation of an @c NSError to send to Sentry. 14 | */ 15 | @interface SentryNSError : NSObject 16 | SENTRY_NO_INIT 17 | 18 | /** 19 | * The domain of an @c NSError . 20 | */ 21 | @property (nonatomic, copy) NSString *domain; 22 | 23 | /** 24 | * The error code of an @c NSError . 25 | */ 26 | @property (nonatomic, assign) NSInteger code; 27 | 28 | /** 29 | * Initializes @c SentryNSError and sets the domain and code. 30 | * @param domain The domain of an @c NSError. 31 | * @param code The error code of an @c NSError. 32 | */ 33 | - (instancetype)initWithDomain:(NSString *)domain code:(NSInteger)code; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+HybridSDKs.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import "SentryOptions.h" 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | @interface SentryOptions () 10 | 11 | - (_Nullable instancetype)initWithDict:(NSDictionary *)options 12 | didFailWithError:(NSError *_Nullable *_Nullable)error; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+Private.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | #else 4 | # import "SentryOptions.h" 5 | #endif 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /** 10 | * Block used to configure the user feedback widget, form, behaviors and submission data. 11 | */ 12 | typedef void (^SentryUserFeedbackConfigurationBlock)( 13 | SentryUserFeedbackConfiguration *_Nonnull configuration); 14 | 15 | FOUNDATION_EXPORT NSString *const kSentryDefaultEnvironment; 16 | 17 | @interface SentryOptions () 18 | #if SENTRY_TARGET_PROFILING_SUPPORTED 19 | @property (nonatomic, assign) BOOL enableProfiling_DEPRECATED_TEST_ONLY; 20 | - (BOOL)isContinuousProfilingEnabled; 21 | #endif // SENTRY_TARGET_PROFILING_SUPPORTED 22 | 23 | /** 24 | * A block that can be defined that receives a user feedback configuration object to modify. 25 | * @warning This is an experimental feature and may still have bugs. 26 | * @note This is unrelated to @c SentrySDK.captureUserFeedback which is a method you can call to 27 | * directly submit user feedback that you've already gathered via your own UI. See 28 | * https://docs.sentry.io/platforms/apple/user-feedback/#user-feedback-api and (TODO: add link to 29 | * new docs) for more information on each approach. 30 | */ 31 | @property (nonatomic, copy, nullable) SentryUserFeedbackConfigurationBlock configureUserFeedback; 32 | 33 | SENTRY_EXTERN BOOL sentry_isValidSampleRate(NSNumber *sampleRate); 34 | 35 | @property (nonatomic, assign) BOOL enableAppHangTrackingV2; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryProfilingConditionals.h: -------------------------------------------------------------------------------- 1 | #ifndef SentryProfilingConditionals_h 2 | #define SentryProfilingConditionals_h 3 | 4 | #include 5 | 6 | // tvOS and watchOS do not support the kernel APIs required by our profiler 7 | // e.g. mach_msg, thread_suspend, thread_resume 8 | #if TARGET_OS_WATCH || TARGET_OS_TV 9 | # define SENTRY_TARGET_PROFILING_SUPPORTED 0 10 | #else 11 | # define SENTRY_TARGET_PROFILING_SUPPORTED 1 12 | #endif 13 | 14 | #endif /* SentryProfilingConditionals_h */ 15 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryReplayApi.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | #else 6 | # import 7 | #endif 8 | 9 | #if SENTRY_TARGET_REPLAY_SUPPORTED 10 | 11 | @class UIView; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface SentryReplayApi : NSObject 16 | 17 | /** 18 | * Marks this view to be masked during replays. 19 | * 20 | * @warning This is an experimental feature and may still have bugs. 21 | */ 22 | - (void)maskView:(UIView *)view NS_SWIFT_NAME(maskView(_:)); 23 | 24 | /** 25 | * Marks this view to not be masked during redact step of session replay. 26 | * 27 | * @warning This is an experimental feature and may still have bugs. 28 | */ 29 | - (void)unmaskView:(UIView *)view NS_SWIFT_NAME(unmaskView(_:)); 30 | 31 | /** 32 | * Pauses the replay. 33 | * 34 | * @warning This is an experimental feature and may still have bugs. 35 | */ 36 | - (void)pause; 37 | 38 | /** 39 | * Resumes the ongoing replay. 40 | * 41 | * @warning This is an experimental feature and may still have bugs. 42 | */ 43 | - (void)resume; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequest.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @interface SentryRequest : NSObject 12 | 13 | /** 14 | * Optional: HTTP response body size. 15 | */ 16 | @property (nonatomic, copy, nullable) NSNumber *bodySize; 17 | 18 | /** 19 | * Optional: The cookie values. 20 | */ 21 | @property (nonatomic, copy, nullable) NSString *cookies; 22 | 23 | /** 24 | * Optional: A dictionary of submitted headers. 25 | */ 26 | @property (nonatomic, strong, nullable) NSDictionary *headers; 27 | 28 | /** 29 | * Optional: The fragment of the request URL. 30 | */ 31 | @property (nonatomic, copy, nullable) NSString *fragment; 32 | 33 | /** 34 | * Optional: HTTP request method. 35 | */ 36 | @property (nonatomic, copy, nullable) NSString *method; 37 | 38 | /** 39 | * Optional: The query string component of the URL. 40 | */ 41 | @property (nonatomic, copy, nullable) NSString *queryString; 42 | 43 | /** 44 | * Optional: The URL of the request if available. 45 | */ 46 | @property (nonatomic, copy, nullable) NSString *url; 47 | 48 | - (instancetype)init; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequestOperation.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "SentryAsynchronousOperation.h" 4 | #import "SentryQueueableRequestManager.h" 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | @interface SentryRequestOperation : SentryAsynchronousOperation 9 | 10 | - (instancetype)initWithSession:(NSURLSession *)session 11 | request:(NSURLRequest *)request 12 | completionHandler:(_Nullable SentryRequestOperationFinished)completionHandler; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySampleDecision.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * Trace sample decision flag. 5 | */ 6 | typedef NS_ENUM(NSUInteger, SentrySampleDecision) { 7 | /** 8 | * Used when the decision to sample a trace should be postponed. 9 | */ 10 | kSentrySampleDecisionUndecided, 11 | 12 | /** 13 | * The trace should be sampled. 14 | */ 15 | kSentrySampleDecisionYes, 16 | 17 | /** 18 | * The trace should not be sampled. 19 | */ 20 | kSentrySampleDecisionNo 21 | }; 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySamplingContext.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | @class SentryTransactionContext; 6 | 7 | NS_SWIFT_NAME(SamplingContext) 8 | @interface SentrySamplingContext : NSObject 9 | 10 | /** 11 | * Transaction context. 12 | */ 13 | @property (nonatomic, readonly) SentryTransactionContext *transactionContext; 14 | 15 | /** 16 | * Custom data used for sampling. 17 | */ 18 | @property (nullable, nonatomic, readonly) NSDictionary *customSamplingContext; 19 | 20 | /** 21 | * Init a SentryTransactionSamplingContext. 22 | * @param transactionContext The context of the transaction being sampled. 23 | */ 24 | - (instancetype)initWithTransactionContext:(SentryTransactionContext *)transactionContext; 25 | 26 | /** 27 | * Init a SentryTransactionSamplingContext. 28 | * @param transactionContext The context of the transaction being sampled. 29 | * @param customSamplingContext Custom data used for sampling. 30 | */ 31 | - (instancetype)initWithTransactionContext:(SentryTransactionContext *)transactionContext 32 | customSamplingContext:(NSDictionary *)customSamplingContext; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySdkInfo.h: -------------------------------------------------------------------------------- 1 | #import "SentryDefines.h" 2 | #import "SentryInternalSerializable.h" 3 | #import 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | /** 8 | * Describes the Sentry SDK and its configuration used to capture and transmit an event. 9 | * @note Both name and version are required. 10 | * @see https://develop.sentry.dev/sdk/event-payloads/sdk/ 11 | */ 12 | @interface SentrySdkInfo : NSObject 13 | SENTRY_NO_INIT 14 | 15 | /** 16 | * The name of the SDK. Examples: sentry.cocoa, sentry.cocoa.vapor, ... 17 | */ 18 | @property (nonatomic, readonly, copy) NSString *name; 19 | 20 | /** 21 | * The version of the SDK. It should have the Semantic Versioning format MAJOR.MINOR.PATCH, without 22 | * any prefix (no v or anything else in front of the major version number). Examples: 23 | * 0.1.0, 1.0.0, 2.0.0-beta0 24 | */ 25 | @property (nonatomic, readonly, copy) NSString *version; 26 | 27 | - (instancetype)initWithName:(NSString *)name 28 | andVersion:(NSString *)version NS_DESIGNATED_INITIALIZER; 29 | 30 | - (instancetype)initWithDict:(NSDictionary *)dict; 31 | 32 | - (instancetype)initWithDict:(NSDictionary *)dict orDefaults:(SentrySdkInfo *)info; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySerializable.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if __has_include() 3 | # import 4 | #else 5 | # import 6 | #endif 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @protocol SentrySerializable 11 | SENTRY_NO_INIT 12 | 13 | /** 14 | * Serialize the contents of the object into an NSDictionary. Make to copy all properties of the 15 | * original object so modifications to it don't have an impact on the serialized NSDictionary. 16 | */ 17 | - (NSDictionary *)serialize; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySpanId.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | /** 6 | * A 16 character Id. 7 | */ 8 | 9 | NS_SWIFT_NAME(SpanId) 10 | @interface SentrySpanId : NSObject 11 | 12 | /** 13 | * Creates a SentrySpanId with a random 16 character Id. 14 | */ 15 | - (instancetype)init; 16 | 17 | /** 18 | * Creates a SentrySpanId with the first 16 characters of the given UUID. 19 | */ 20 | - (instancetype)initWithUUID:(NSUUID *)uuid; 21 | 22 | /** 23 | * Creates a SentrySpanId from a 16 character string. 24 | * Returns a empty SentrySpanId with the input is invalid. 25 | */ 26 | - (instancetype)initWithValue:(NSString *)value; 27 | 28 | /** 29 | * Returns the Span Id Value 30 | */ 31 | @property (readonly, copy) NSString *sentrySpanIdString; 32 | 33 | /** 34 | * A SentrySpanId with an empty Id "0000000000000000". 35 | */ 36 | @property (class, nonatomic, readonly, strong) SentrySpanId *empty; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryStacktrace.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include() 4 | # import 5 | # import 6 | #else 7 | # import 8 | # import 9 | #endif 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class SentryFrame; 14 | 15 | @interface SentryStacktrace : NSObject 16 | SENTRY_NO_INIT 17 | 18 | /** 19 | * Array of all SentryFrame in the stacktrace 20 | */ 21 | @property (nonatomic, strong) NSArray *frames; 22 | 23 | /** 24 | * Registers of the thread for additional information used on the server 25 | */ 26 | @property (nonatomic, strong) NSDictionary *registers; 27 | 28 | /** 29 | * Indicates that this stack trace is a snapshot triggered by an external signal. 30 | */ 31 | @property (nonatomic, copy, nullable) NSNumber *snapshot; 32 | 33 | /** 34 | * Initialize a SentryStacktrace with frames and registers 35 | * @param frames NSArray 36 | * @param registers NSArray 37 | * @return SentryStacktrace 38 | */ 39 | - (instancetype)initWithFrames:(NSArray *)frames 40 | registers:(NSDictionary *)registers; 41 | 42 | /** 43 | * This will be called internally, is used to remove duplicated frames for 44 | * certain crashes. 45 | */ 46 | - (void)fixDuplicateFrames; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySwift.h: -------------------------------------------------------------------------------- 1 | #ifndef SentrySwift_h 2 | #define SentrySwift_h 3 | 4 | #ifdef __cplusplus 5 | # if __has_include() 6 | # import 7 | # endif 8 | #endif 9 | 10 | #if __has_include() 11 | # if __has_include("SentryWithoutUIKit-Swift.h") 12 | # import "SentryWithoutUIKit-Swift.h" 13 | # else 14 | # import 15 | # endif 16 | #else // !__has_include() 17 | 18 | // needed for the check for SENTRY_HAS_UIKIT below 19 | # if __has_include() 20 | # import 21 | # else 22 | # import "SentryDefines.h" 23 | # endif // __has_include() 24 | 25 | # if SENTRY_HAS_UIKIT 26 | // this is needed to fix a build issue when building iOS-ObjectiveC where the definitions of some 27 | // UIKIt enums used from SentryUserFeedbackWidgetConfiguration.swift aren't visible from the 28 | // generated ObjC interface for that class in Sentry-Swift.h 29 | # import 30 | # endif // SENTRY_HAS_UIKIT 31 | 32 | # if __has_include("Sentry-Swift.h") 33 | # import "Sentry-Swift.h" 34 | # else 35 | # import 36 | # endif 37 | #endif // __has_include() 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryThread.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @class SentryStacktrace; 12 | 13 | @interface SentryThread : NSObject 14 | SENTRY_NO_INIT 15 | 16 | /** 17 | * Number of the thread 18 | */ 19 | @property (nonatomic, copy) NSNumber *threadId; 20 | 21 | /** 22 | * Name (if available) of the thread 23 | */ 24 | @property (nullable, nonatomic, copy) NSString *name; 25 | 26 | /** 27 | * SentryStacktrace of the SentryThread 28 | */ 29 | @property (nullable, nonatomic, strong) SentryStacktrace *stacktrace; 30 | 31 | /** 32 | * Did this thread crash? 33 | */ 34 | @property (nullable, nonatomic, copy) NSNumber *crashed; 35 | 36 | /** 37 | * Was it the current thread. 38 | */ 39 | @property (nullable, nonatomic, copy) NSNumber *current; 40 | 41 | /** 42 | * Was it the main thread? 43 | */ 44 | @property (nullable, nonatomic, copy) NSNumber *isMain; 45 | 46 | /** 47 | * Initializes a SentryThread with its id 48 | * @param threadId NSNumber 49 | * @return SentryThread 50 | */ 51 | - (instancetype)initWithThreadId:(NSNumber *)threadId; 52 | 53 | @end 54 | 55 | NS_ASSUME_NONNULL_END 56 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryTraceHeader.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | @class SentryId, SentrySpanId; 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | static NSString *const SENTRY_TRACE_HEADER = @"sentry-trace"; 14 | 15 | NS_SWIFT_NAME(TraceHeader) 16 | @interface SentryTraceHeader : NSObject 17 | SENTRY_NO_INIT 18 | /** 19 | * Trace ID. 20 | */ 21 | @property (nonatomic, readonly) SentryId *traceId; 22 | 23 | /** 24 | * Span ID. 25 | */ 26 | @property (nonatomic, readonly) SentrySpanId *spanId; 27 | 28 | /** 29 | * The trace sample decision. 30 | */ 31 | @property (nonatomic, readonly) SentrySampleDecision sampled; 32 | 33 | /** 34 | * @param traceId The trace id. 35 | * @param spanId The span id. 36 | * @param sampled The decision made to sample the trace related to this header. 37 | */ 38 | - (instancetype)initWithTraceId:(SentryId *)traceId 39 | spanId:(SentrySpanId *)spanId 40 | sampled:(SentrySampleDecision)sampled; 41 | 42 | /** 43 | * Return the value to use in a request header. 44 | */ 45 | - (NSString *)value; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Mac/include/Sentry/SentryUserFeedback.h: -------------------------------------------------------------------------------- 1 | #if __has_include() 2 | # import 3 | # import 4 | #else 5 | # import 6 | # import 7 | #endif 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @class SentryId; 12 | 13 | /** 14 | * Adds additional information about what happened to an event. 15 | */ 16 | NS_SWIFT_NAME(UserFeedback) 17 | @interface SentryUserFeedback : NSObject 18 | SENTRY_NO_INIT 19 | 20 | /** 21 | * Initializes SentryUserFeedback and sets the required eventId. 22 | * @param eventId The eventId of the event to which the user feedback is associated. 23 | */ 24 | - (instancetype)initWithEventId:(SentryId *)eventId; 25 | 26 | /** 27 | * The eventId of the event to which the user feedback is associated. 28 | */ 29 | @property (readonly, nonatomic, strong) SentryId *eventId; 30 | 31 | /** 32 | * The name of the user. 33 | */ 34 | @property (nonatomic, copy) NSString *name; 35 | 36 | /** 37 | * The email of the user. 38 | */ 39 | @property (nonatomic, copy) NSString *email; 40 | 41 | /** 42 | * Comments of the user about what happened. 43 | */ 44 | @property (nonatomic, copy) NSString *comments; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Breakpad/lib/breakpad_client.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Breakpad/lib/breakpad_client.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Breakpad/lib/sentry.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Breakpad/lib/sentry.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_handler.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_handler.exe -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_client.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_client.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_compat.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_compat.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_getopt.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_getopt.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_handler_lib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_handler_lib.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_minidump.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_minidump.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_snapshot.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_snapshot.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_tools.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_tools.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_util.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_util.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_zlib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_zlib.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/mini_chromium.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/mini_chromium.lib -------------------------------------------------------------------------------- /Sentry/Source/ThirdParty/Win64/Crashpad/lib/sentry.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/Sentry/Source/ThirdParty/Win64/Crashpad/lib/sentry.lib -------------------------------------------------------------------------------- /Sentry/sentry-cli.properties: -------------------------------------------------------------------------------- 1 | version=2.37.0 2 | repo=https://github.com/getsentry/sentry-cli 3 | -------------------------------------------------------------------------------- /SteamAudio/Config/BaseSteamAudio.ini: -------------------------------------------------------------------------------- 1 | [CoreRedirects] 2 | 3 | +ClassRedirects=(OldName="SteamAudioReverbSubmixPluginPreset", NewName="/Script/SteamAudio.SubmixEffectSteamAudioReverbPluginPreset") 4 | 5 | +StructRedirects=(OldName="SteamAudioReverbSubmixPluginSettings",NewName="/Script/ProjectBorealis.SubmixEffectSteamAudioReverbPluginSettings") 6 | -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Brick.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Brick.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Carpet.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Carpet.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Ceramic.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Ceramic.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Concrete.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Concrete.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Default.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Default.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Glass.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Glass.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Gravel.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Gravel.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Metal.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Metal.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Plaster.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Plaster.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Rock.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Rock.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/Materials/Wood.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/Materials/Wood.uasset -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioGeometry_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioGeometry_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioListener_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioListener_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioMaterial_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioMaterial_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioOcclusionSettings_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioOcclusionSettings_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioOcclusionSettings_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioOcclusionSettings_64.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioProbe_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioProbe_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioReverbSettings_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioReverbSettings_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioReverbSettings_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioReverbSettings_64.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioSource_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioSource_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioSpatializationSettings_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioSpatializationSettings_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/S_SteamAudioSpatializationSettings_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/S_SteamAudioSpatializationSettings_64.png -------------------------------------------------------------------------------- /SteamAudio/Content/SteamAudio_EdMode_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/SteamAudio_EdMode_16.png -------------------------------------------------------------------------------- /SteamAudio/Content/SteamAudio_EdMode_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Content/SteamAudio_EdMode_40.png -------------------------------------------------------------------------------- /SteamAudio/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Resources/Icon128.png -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Private/SOFAFile.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #include "SOFAFile.h" 18 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Private/SteamAudioBakedListenerComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #include "SteamAudioBakedListenerComponent.h" 18 | 19 | 20 | // --------------------------------------------------------------------------------------------------------------------- 21 | // USteamAudioBakedListenerComponent 22 | // --------------------------------------------------------------------------------------------------------------------- 23 | 24 | USteamAudioBakedListenerComponent::USteamAudioBakedListenerComponent() 25 | : InfluenceRadius(100.0f) 26 | {} 27 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Private/SteamAudioBakedSourceComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #include "SteamAudioBakedSourceComponent.h" 18 | 19 | 20 | // --------------------------------------------------------------------------------------------------------------------- 21 | // USteamAudioBakedSourceComponent 22 | // --------------------------------------------------------------------------------------------------------------------- 23 | 24 | USteamAudioBakedSourceComponent::USteamAudioBakedSourceComponent() 25 | : InfluenceRadius(100.0f) 26 | {} 27 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Private/SteamAudioMaterial.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #include "SteamAudioMaterial.h" 18 | 19 | // --------------------------------------------------------------------------------------------------------------------- 20 | // USteamAudioMaterial 21 | // --------------------------------------------------------------------------------------------------------------------- 22 | 23 | USteamAudioMaterial::USteamAudioMaterial() 24 | : AbsorptionLow(0.1f) 25 | , AbsorptionMid(0.1f) 26 | , AbsorptionHigh(0.1f) 27 | , Scattering(0.5f) 28 | , TransmissionLow(0.1f) 29 | , TransmissionMid(0.1f) 30 | , TransmissionHigh(0.1f) 31 | {} 32 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Private/SteamAudioProbeComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #include "SteamAudioProbeComponent.h" 18 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/Public/SteamAudioProbeComponent.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioModule.h" 20 | #include "Components/ActorComponent.h" 21 | #include "SteamAudioProbeComponent.generated.h" 22 | 23 | // --------------------------------------------------------------------------------------------------------------------- 24 | // USteamAudioProbeComponent 25 | // --------------------------------------------------------------------------------------------------------------------- 26 | 27 | /** 28 | * Component of ASteamAudioProbeVolume that stores the probe positions for in-editor visualization. 29 | */ 30 | UCLASS(ClassGroup = (Audio), HideCategories = (Activation, Collision)) 31 | class STEAMAUDIO_API USteamAudioProbeComponent : public UActorComponent 32 | { 33 | GENERATED_BODY() 34 | 35 | public: 36 | /** The probe positions. */ 37 | UPROPERTY() 38 | TArray ProbePositions; 39 | 40 | FCriticalSection ProbePositionsCriticalSection; 41 | }; 42 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudio/SteamAudio.Build.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using UnrealBuildTool; 18 | 19 | public class SteamAudio : ModuleRules 20 | { 21 | public SteamAudio(ReadOnlyTargetRules Target) : base(Target) 22 | { 23 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 24 | 25 | PrivateDependencyModuleNames.AddRange(new string[] { 26 | "Core", 27 | "CoreUObject", 28 | "Engine", 29 | "Projects", 30 | "Landscape", 31 | "AudioMixer", 32 | "AudioExtensions" 33 | }); 34 | 35 | PublicDependencyModuleNames.AddRange(new string[] { 36 | "SteamAudioSDK" 37 | }); 38 | 39 | if (Target.bBuildEditor) 40 | { 41 | PrivateDependencyModuleNames.Add("UnrealEd"); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SOFAFileFactory.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "CoreMinimal.h" 20 | #include "Factories/Factory.h" 21 | #include "SOFAFileFactory.generated.h" 22 | 23 | 24 | // --------------------------------------------------------------------------------------------------------------------- 25 | // USOFAFileFactory 26 | // --------------------------------------------------------------------------------------------------------------------- 27 | 28 | /** 29 | * Instantiates a USOFAFile asset. 30 | */ 31 | UCLASS() 32 | class USOFAFileFactory : public UFactory 33 | { 34 | GENERATED_UCLASS_BODY() 35 | 36 | // Called when importing a .sofa file. 37 | virtual UObject* FactoryCreateBinary(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, 38 | UObject* Context, const TCHAR* Type, const uint8*& Buffer, const uint8* BufferEnd, 39 | FFeedbackContext* Warn) override; 40 | }; 41 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioBakedListenerComponentVisualizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "ComponentVisualizer.h" 21 | 22 | class FPrimitiveDrawInterface; 23 | class FSceneView; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioBakedListenerComponentVisualizer 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioBakedListenerComponentVisualizer : public FComponentVisualizer 33 | { 34 | public: 35 | virtual void DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI) override; 36 | }; 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioBakedListenerDetails.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "IDetailCustomization.h" 21 | #include "Input/Reply.h" 22 | 23 | class USteamAudioBakedListenerComponent; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioBakedListenerDetails 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioBakedListenerDetails : public IDetailCustomization 33 | { 34 | public: 35 | static TSharedRef MakeInstance(); 36 | 37 | private: 38 | TWeakObjectPtr BakedListenerComponent; 39 | 40 | virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override; 41 | 42 | FReply OnBakeReflections(); 43 | }; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioBakedSourceComponentVisualizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "ComponentVisualizer.h" 21 | 22 | class FPrimitiveDrawInterface; 23 | class FSceneView; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioBakedSourceComponentVisualizer 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioBakedSourceComponentVisualizer : public FComponentVisualizer 33 | { 34 | public: 35 | virtual void DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI) override; 36 | }; 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioBakedSourceDetails.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "IDetailCustomization.h" 21 | #include "Input/Reply.h" 22 | 23 | class USteamAudioBakedSourceComponent; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioBakedSourceDetails 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioBakedSourceDetails : public IDetailCustomization 33 | { 34 | public: 35 | static TSharedRef MakeInstance(); 36 | 37 | private: 38 | TWeakObjectPtr BakedSourceComponent; 39 | 40 | virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override; 41 | 42 | FReply OnBakeReflections(); 43 | }; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioListenerDetails.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "IDetailCustomization.h" 21 | #include "Input/Reply.h" 22 | 23 | class USteamAudioListenerComponent; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioListenerDetails 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioListenerDetails : public IDetailCustomization 33 | { 34 | public: 35 | static TSharedRef MakeInstance(); 36 | 37 | private: 38 | TWeakObjectPtr ListenerComponent; 39 | 40 | virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override; 41 | 42 | FReply OnBakeReverb(); 43 | }; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/Private/SteamAudioProbeComponentVisualizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | #pragma once 18 | 19 | #include "SteamAudioEditorModule.h" 20 | #include "ComponentVisualizer.h" 21 | 22 | class FPrimitiveDrawInterface; 23 | class FSceneView; 24 | 25 | 26 | namespace SteamAudio { 27 | 28 | // --------------------------------------------------------------------------------------------------------------------- 29 | // FSteamAudioProbeComponentVisualizer 30 | // --------------------------------------------------------------------------------------------------------------------- 31 | 32 | class FSteamAudioProbeComponentVisualizer : public FComponentVisualizer 33 | { 34 | public: 35 | virtual void DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI) override; 36 | }; 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioEditor/SteamAudioEditor.Build.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using UnrealBuildTool; 18 | 19 | public class SteamAudioEditor : ModuleRules 20 | { 21 | public SteamAudioEditor(ReadOnlyTargetRules Target) : base(Target) 22 | { 23 | PrivateIncludePaths.AddRange(new string[] { 24 | "SteamAudio/Private", 25 | }); 26 | 27 | PrivateDependencyModuleNames.AddRange(new string[] { 28 | "Core", 29 | "CoreUObject", 30 | "Engine", 31 | "InputCore", 32 | "Projects", 33 | "PropertyEditor", 34 | "Slate", 35 | "SlateCore", 36 | "UnrealEd", 37 | "EditorStyle", 38 | "SteamAudioSDK", 39 | "SteamAudio", 40 | }); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/include/phonon_version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2023 Valve Corporation. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef IPL_PHONON_VERSION_H 18 | #define IPL_PHONON_VERSION_H 19 | 20 | #define STEAMAUDIO_VERSION_MAJOR 4 21 | #define STEAMAUDIO_VERSION_MINOR 5 22 | #define STEAMAUDIO_VERSION_PATCH 3 23 | #define STEAMAUDIO_VERSION (((IPLuint32)(STEAMAUDIO_VERSION_MAJOR) << 16) | \ 24 | ((IPLuint32)(STEAMAUDIO_VERSION_MINOR) << 8) | \ 25 | ((IPLuint32)(STEAMAUDIO_VERSION_PATCH))) 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/GPUUtilities.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/GPUUtilities.dll -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/GPUUtilities.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/GPUUtilities.lib -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/TrueAudioNext.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/TrueAudioNext.dll -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/TrueAudioNext.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/TrueAudioNext.lib -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.dll -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.lib -------------------------------------------------------------------------------- /SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudio/Source/SteamAudioSDK/lib/windows-x64/phonon.pdb -------------------------------------------------------------------------------- /SteamAudio/SteamAudio.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion" : 3, 3 | "Version" : 1, 4 | "VersionName" : "4.5.3", 5 | "FriendlyName" : "Steam Audio", 6 | "Description" : "Physically-based sound rendering.", 7 | "Category" : "Audio", 8 | "CreatedBy" : "Valve Corporation", 9 | "CreatedByURL" : "https://valvesoftware.github.io/steam-audio", 10 | "DocsURL" : "https://valvesoftware.github.io/steam-audio/doc/unreal/index.html", 11 | "MarketplaceURL" : "", 12 | "SupportURL" : "https://steamcommunity.com/app/596420", 13 | "EnabledByDefault" : false, 14 | "CanContainContent" : true, 15 | "IsBetaVersion" : false, 16 | "Installed" : false, 17 | "Modules" : 18 | [ 19 | { 20 | "Name": "SteamAudio", 21 | "Type": "Runtime", 22 | "LoadingPhase": "PreDefault", 23 | "WhitelistPlatforms": [ "Win64", "Linux", "Mac", "Android", "IOS" ] 24 | }, 25 | { 26 | "Name": "SteamAudioEditor", 27 | "Type": "Editor", 28 | "LoadingPhase": "PostEngineInit", 29 | "WhitelistPlatforms": [ "Win64", "Linux", "Mac" ] 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /SteamAudioFMODStudio/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectBorealis/Plugins/6e083ce7e6b38ee59d13d54abe764c92e6fc167a/SteamAudioFMODStudio/Resources/Icon128.png -------------------------------------------------------------------------------- /SteamAudioFMODStudio/Source/SteamAudioFMODStudio/SteamAudioFMODStudio.Build.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2017-2023 Valve Corporation. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using UnrealBuildTool; 18 | 19 | public class SteamAudioFMODStudio : ModuleRules 20 | { 21 | public SteamAudioFMODStudio(ReadOnlyTargetRules Target) : base(Target) 22 | { 23 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; 24 | 25 | PrivateDependencyModuleNames.AddRange(new string[] { 26 | "Core", 27 | "CoreUObject", 28 | "Engine", 29 | "Projects", 30 | "FMODStudio", 31 | "SteamAudio" 32 | }); 33 | 34 | if (Target.Platform == UnrealTargetPlatform.IOS) 35 | { 36 | PublicAdditionalLibraries.Add("$(PluginDir)/../FMODStudio/Binaries/IOS/libphonon_fmod.a"); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /SteamAudioFMODStudio/SteamAudioFMODStudio.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "4.5.3", 5 | "FriendlyName": "Steam Audio FMOD Studio Support", 6 | "Description": "Integrates the Steam Audio plugin for Unreal and the Steam Audio plugin for FMOD Studio.", 7 | "Category": "Audio", 8 | "CreatedBy": "Valve Corporation", 9 | "CreatedByURL": "https://valvesoftware.github.io/steam-audio", 10 | "DocsURL": "https://valvesoftware.github.io/steam-audio/doc/unreal/index.html", 11 | "MarketplaceURL": "", 12 | "SupportURL": "https://steamcommunity.com/app/596420", 13 | "EnabledByDefault": false, 14 | "CanContainContent": true, 15 | "IsBetaVersion": false, 16 | "Installed": false, 17 | "Modules": [ 18 | { 19 | "Name": "SteamAudioFMODStudio", 20 | "Type": "Runtime", 21 | "LoadingPhase": "PreDefault", 22 | "WhitelistPlatforms": [ "Win64", "Linux", "Mac", "Android", "IOS" ] 23 | } 24 | ], 25 | "Plugins": [ 26 | { 27 | "Name": "FMODStudio", 28 | "Enabled": true 29 | }, 30 | { 31 | "Name": "SteamAudio", 32 | "Enabled": true 33 | } 34 | ] 35 | } 36 | --------------------------------------------------------------------------------