Files
UnrealEngineUWP/Engine/Source/Developer/CrashTracker/Public/Interfaces/ICrashTrackerModule.h
2014-03-14 14:13:41 -04:00

92 lines
2.0 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
ICrashTrackerModule.h: Declares the ICrashTrackerModule interface.
=============================================================================*/
#pragma once
namespace EWriteUserCaptureVideoError
{
/**
* Enumerates video capture write error codes.
*/
enum Type
{
None,
/**
* The video capture instance was invalid.
*/
VideoCaptureInvalid,
/**
* Video capture is not running.
*/
CaptureNotRunning,
/**
* Failed to create destination directory for the video.
*/
FailedToCreateDirectory,
};
}
/**
* Interface for crash tracker modules.
*/
class ICrashTrackerModule
: public IModuleInterface
{
public:
/**
* Forces the crash tracker to complete capturing as if the program had crashed.
*/
virtual void ForceCompleteCapture() = 0;
/**
* Invalidates the current crash tracker frame being generated.
*/
virtual void InvalidateCrashTrackerFrame() = 0;
/**
* Checks if the crash tracker is currently enabled.
*/
virtual bool IsCurrentlyCapturing() const = 0;
/**
* Checks if the crash tracker is available.
*/
virtual bool IsVideoCaptureAvailable() const = 0;
/**
* Enables or disables crash tracking while in flight.
*/
virtual void SetCrashTrackingEnabled(bool bEnabled) = 0;
/**
* Updates the crash tracker, which may trigger the capture of a frame
* Will also begin capturing if it hasn't begun already
*/
virtual void Update(float DeltaSeconds) = 0;
/**
* Write the current crash tracker as a user video
*
* @param OutFinalSaveName The path and name of the file the video was saved as
* @return If the video was successfully written will return EWriteUserCaptureVideoError::None, otherwise returns an error code
*/
virtual EWriteUserCaptureVideoError::Type WriteUserVideoNow( FString& OutFinalSaveName ) = 0;
public:
/**
* Virtual destructor.
*/
virtual ~ICrashTrackerModule( ) { }
};