CriWare Unreal Engine
Plug-ins for CriWare solutions.
読み取り中…
検索中…
一致する文字列を見つけられません
Atom::FQuartzClock クラス

#include <AtomMixerClock.h>

クラス

struct  FQuartzClockState
struct  PendingCommand

公開メンバ関数

CRI_API FQuartzClock (const FName &InName, const FQuartzClockSettings &InClockSettings, FQuartzClockManager *InOwningClockManagerPtr=nullptr)
CRI_API ~FQuartzClock ()
CRI_API void AddQuantizedCommand (FQuartzQuantizationBoundary InQuantizationBoundary, TSharedPtr< Atom::IQuartzQuantizedCommand > InNewEvent)
CRI_API void AddQuantizedCommand (FQuartzQuantizedCommandInitInfo &InQuantizationCommandInitInfo)
CRI_API void AddQuantizedCommand (FQuartzQuantizedRequestData &InQuantizedRequestData)
CRI_API void AddToTickDelay (int32 NumFramesOfDelayToAdd)
CRI_API bool CancelQuantizedCommand (TSharedPtr< IQuartzQuantizedCommand > InCommandPtr)
CRI_API void ChangeTickRate (Audio::FQuartzClockTickRate InNewTickRate, int32 NumFramesLeft=0)
CRI_API void ChangeTimeSignature (const FQuartzTimeSignature &InNewTimeSignature)
CRI_API bool DoesMatchSettings (const FQuartzClockSettings &InClockSettings) const
CRI_API FAtomRuntimeGetAtomRuntime ()
CRI_API float GetBeatProgressPercent (const EQuartzCommandQuantization &QuantizationType) const
CRI_API FQuartzClockManagerGetClockManager ()
CRI_API FQuartzClockCommandQueueWeakPtr GetCommandQueue () const
CRI_API FQuartzTransportTimeStamp GetCurrentTimestamp ()
CRI_API float GetDurationOfQuantizationTypeInSeconds (const EQuartzCommandQuantization &QuantizationType, float Multiplier)
CRI_API float GetEstimatedRunTime ()
CRI_API FName GetName () const
CRI_API FMixerSourceManagerGetSourceManager ()
CRI_API Audio::FQuartzClockTickRate GetTickRate ()
CRI_API bool HasPendingEvents () const
CRI_API bool IgnoresFlush () const
CRI_API bool IsRunning () const
CRI_API void LowResolutionTick (float InDeltaTimeSeconds)
CRI_API int32 NumPendingEvents () const
CRI_API void Pause ()
CRI_API void ResetTransport (const int32 NumFramesToTickBeforeReset=0)
CRI_API void Restart (bool bPause=true)
CRI_API void Resume ()
CRI_API void SetSampleRate (float InNewSampleRate)
CRI_API void SetTickDelay (int32 NumFramesOfDelay)
CRI_API void Shutdown ()
CRI_API void Stop (bool CancelPendingEvents)
CRI_API void SubscribeToAllTimeDivisions (Audio::FQuartzGameThreadSubscriber InSubscriber)
CRI_API void SubscribeToTimeDivision (Audio::FQuartzGameThreadSubscriber InSubscriber, EQuartzCommandQuantization InQuantizationBoundary)
CRI_API void Tick (int32 InNumFramesUntilNextTick)
CRI_API void UnsubscribeFromAllTimeDivisions (Audio::FQuartzGameThreadSubscriber InSubscriber)
CRI_API void UnsubscribeFromTimeDivision (Audio::FQuartzGameThreadSubscriber InSubscriber, EQuartzCommandQuantization InQuantizationBoundary)

非公開メンバ関数

 FQuartzClock ()=delete
bool CancelQuantizedCommandInternal (TSharedPtr< IQuartzQuantizedCommand > InCommandPtr, TArray< PendingCommand > &CommandsToTick)
void TickInternal (int32 InNumFramesUntilNextTick, TArray< PendingCommand > &CommandsToTick, int32 FramesOfLatency=0, int32 FramesOfDelay=0)
void UpdateCachedState ()

非公開変数類

bool bIgnoresFlush { false }
FThreadSafeBool bIsRunning { true }
struct Atom::FQuartzClock::FQuartzClockState CachedClockState
FCriticalSection CachedClockStateCritSec
TArray< PendingCommandClockAlteringPendingCommands
FQuartzMetronome Metronome
FName Name
FQuartzClockManagerOwningClockManagerPtr { nullptr }
TArray< PendingCommandPendingCommands
FQuartzClockCommandQueuePtr PreTickCommands
float ThreadLatencyInMilliseconds { 40.f }
int32 TickDelayLengthInFrames { 0 }

詳解

FQuartzClock:

This class receives, schedules, and fires quantized commands. 
The underlying FQuartzMetronome handles all counting / timing logic.

This class gets ticked externally (i.e. by some Clock Manager)
and counts down the time-to-fire the commands in audio frames.


UpdateCachedState() updates a game-thread copy of data accessed via FQuartzClockProxy
(see FQuartzClockState)

構築子と解体子

◆ FQuartzClock() [1/2]

Atom::FQuartzClock::FQuartzClock ( const FName & InName,
const FQuartzClockSettings & InClockSettings,
FQuartzClockManager * InOwningClockManagerPtr = nullptr )

◆ ~FQuartzClock()

Atom::FQuartzClock::~FQuartzClock ( )

◆ FQuartzClock() [2/2]

Atom::FQuartzClock::FQuartzClock ( )
privatedelete

関数詳解

◆ AddQuantizedCommand() [1/3]

CRI_API void Atom::FQuartzClock::AddQuantizedCommand ( FQuartzQuantizationBoundary InQuantizationBoundary,
TSharedPtr< Atom::IQuartzQuantizedCommand > InNewEvent )

◆ AddQuantizedCommand() [2/3]

void Atom::FQuartzClock::AddQuantizedCommand ( FQuartzQuantizedCommandInitInfo & InQuantizationCommandInitInfo)

◆ AddQuantizedCommand() [3/3]

void Atom::FQuartzClock::AddQuantizedCommand ( FQuartzQuantizedRequestData & InQuantizedRequestData)

◆ AddToTickDelay()

void Atom::FQuartzClock::AddToTickDelay ( int32 NumFramesOfDelayToAdd)

◆ CancelQuantizedCommand()

bool Atom::FQuartzClock::CancelQuantizedCommand ( TSharedPtr< IQuartzQuantizedCommand > InCommandPtr)

◆ CancelQuantizedCommandInternal()

bool Atom::FQuartzClock::CancelQuantizedCommandInternal ( TSharedPtr< IQuartzQuantizedCommand > InCommandPtr,
TArray< PendingCommand > & CommandsToTick )
private

◆ ChangeTickRate()

void Atom::FQuartzClock::ChangeTickRate ( Audio::FQuartzClockTickRate InNewTickRate,
int32 NumFramesLeft = 0 )

◆ ChangeTimeSignature()

void Atom::FQuartzClock::ChangeTimeSignature ( const FQuartzTimeSignature & InNewTimeSignature)

◆ DoesMatchSettings()

bool Atom::FQuartzClock::DoesMatchSettings ( const FQuartzClockSettings & InClockSettings) const

◆ GetAtomRuntime()

FAtomRuntime * Atom::FQuartzClock::GetAtomRuntime ( )

◆ GetBeatProgressPercent()

float Atom::FQuartzClock::GetBeatProgressPercent ( const EQuartzCommandQuantization & QuantizationType) const

◆ GetClockManager()

FQuartzClockManager * Atom::FQuartzClock::GetClockManager ( )

◆ GetCommandQueue()

FQuartzClockCommandQueueWeakPtr Atom::FQuartzClock::GetCommandQueue ( ) const

◆ GetCurrentTimestamp()

FQuartzTransportTimeStamp Atom::FQuartzClock::GetCurrentTimestamp ( )

◆ GetDurationOfQuantizationTypeInSeconds()

float Atom::FQuartzClock::GetDurationOfQuantizationTypeInSeconds ( const EQuartzCommandQuantization & QuantizationType,
float Multiplier )

◆ GetEstimatedRunTime()

float Atom::FQuartzClock::GetEstimatedRunTime ( )

◆ GetName()

FName Atom::FQuartzClock::GetName ( ) const

◆ GetSourceManager()

FMixerSourceManager * Atom::FQuartzClock::GetSourceManager ( )

◆ GetTickRate()

Audio::FQuartzClockTickRate Atom::FQuartzClock::GetTickRate ( )

◆ HasPendingEvents()

bool Atom::FQuartzClock::HasPendingEvents ( ) const

◆ IgnoresFlush()

bool Atom::FQuartzClock::IgnoresFlush ( ) const

◆ IsRunning()

bool Atom::FQuartzClock::IsRunning ( ) const

◆ LowResolutionTick()

void Atom::FQuartzClock::LowResolutionTick ( float InDeltaTimeSeconds)

◆ NumPendingEvents()

int32 Atom::FQuartzClock::NumPendingEvents ( ) const

◆ Pause()

void Atom::FQuartzClock::Pause ( )

◆ ResetTransport()

void Atom::FQuartzClock::ResetTransport ( const int32 NumFramesToTickBeforeReset = 0)

◆ Restart()

void Atom::FQuartzClock::Restart ( bool bPause = true)

◆ Resume()

void Atom::FQuartzClock::Resume ( )

◆ SetSampleRate()

void Atom::FQuartzClock::SetSampleRate ( float InNewSampleRate)

◆ SetTickDelay()

void Atom::FQuartzClock::SetTickDelay ( int32 NumFramesOfDelay)

◆ Shutdown()

void Atom::FQuartzClock::Shutdown ( )

◆ Stop()

void Atom::FQuartzClock::Stop ( bool CancelPendingEvents)

◆ SubscribeToAllTimeDivisions()

void Atom::FQuartzClock::SubscribeToAllTimeDivisions ( Audio::FQuartzGameThreadSubscriber InSubscriber)

◆ SubscribeToTimeDivision()

void Atom::FQuartzClock::SubscribeToTimeDivision ( Audio::FQuartzGameThreadSubscriber InSubscriber,
EQuartzCommandQuantization InQuantizationBoundary )

◆ Tick()

void Atom::FQuartzClock::Tick ( int32 InNumFramesUntilNextTick)

◆ TickInternal()

void Atom::FQuartzClock::TickInternal ( int32 InNumFramesUntilNextTick,
TArray< PendingCommand > & CommandsToTick,
int32 FramesOfLatency = 0,
int32 FramesOfDelay = 0 )
private

◆ UnsubscribeFromAllTimeDivisions()

void Atom::FQuartzClock::UnsubscribeFromAllTimeDivisions ( Audio::FQuartzGameThreadSubscriber InSubscriber)

◆ UnsubscribeFromTimeDivision()

void Atom::FQuartzClock::UnsubscribeFromTimeDivision ( Audio::FQuartzGameThreadSubscriber InSubscriber,
EQuartzCommandQuantization InQuantizationBoundary )

◆ UpdateCachedState()

void Atom::FQuartzClock::UpdateCachedState ( )
private

メンバ詳解

◆ bIgnoresFlush

bool Atom::FQuartzClock::bIgnoresFlush { false }
private

◆ bIsRunning

FThreadSafeBool Atom::FQuartzClock::bIsRunning { true }
private

◆ CachedClockState

struct Atom::FQuartzClock::FQuartzClockState Atom::FQuartzClock::CachedClockState
private

◆ CachedClockStateCritSec

FCriticalSection Atom::FQuartzClock::CachedClockStateCritSec
private

◆ ClockAlteringPendingCommands

TArray<PendingCommand> Atom::FQuartzClock::ClockAlteringPendingCommands
private

◆ Metronome

FQuartzMetronome Atom::FQuartzClock::Metronome
private

◆ Name

FName Atom::FQuartzClock::Name
private

◆ OwningClockManagerPtr

FQuartzClockManager* Atom::FQuartzClock::OwningClockManagerPtr { nullptr }
private

◆ PendingCommands

TArray<PendingCommand> Atom::FQuartzClock::PendingCommands
private

◆ PreTickCommands

FQuartzClockCommandQueuePtr Atom::FQuartzClock::PreTickCommands
mutableprivate

◆ ThreadLatencyInMilliseconds

float Atom::FQuartzClock::ThreadLatencyInMilliseconds { 40.f }
private

◆ TickDelayLengthInFrames

int32 Atom::FQuartzClock::TickDelayLengthInFrames { 0 }
private

このクラス詳解は次のファイルから抽出されました:
  • C:/git/Engine/Plugins/Runtime/CriWare/CriWare/Source/CriWareCore/Public/Atom/Mixer/Quartz/AtomMixerClock.h
  • C:/git/Engine/Plugins/Runtime/CriWare/CriWare/Source/CriWareCore/Private/Atom/Mixer/Quartz/AtomMixerClock.cpp