SoundEffectorData Class Reference

#include <customgui_soundeffector.h>

Inheritance diagram for SoundEffectorData:

Detailed Description

Sound effector data type (CUSTOMDATATYPE_SOUNDEFFECTOR) for SoundEffectorCustomGui.

Note
Has to be created with Alloc() and destroyed with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.
Since
R19

Alloc/Free

using IsAllocType = std::true_type
 
static SoundEffectorData * Alloc ()
 
static SoundEffectorData * Alloc (const maxon::SourceLocation &)
 
static void Free (SoundEffectorData *&pData)
 

Private Constructor/Destructor

 SoundEffectorData ()
 
 ~SoundEffectorData ()
 

Init/Free Sampling

Bool InitSampling (BaseDocument *doc)
 
Bool FreeSampling ()
 

Copy

Bool CopyTo (SoundEffectorData *pDest) const
 

Sample

Bool Sample (Int index, Int count, Float &value, Vector &color)
 
Bool SampleArray (Int offset, Int count, Int totalCount, Float *values, Vector *colors)
 
Bool SampleArray (Int offset, Int count, Int totalCount, Float *values, Vector *colors) const
 

Probes

Int CreateProbe (Float left=1.0, Float right=22050.0, Float top=1.0, Float bottom=0.0, Bool selected=false)
 
Bool CreateDefaultProbe ()
 
Int GetProbeCount () const
 
Probe * GetProbe (Int index) const
 
Bool DeleteProbe (Int index)
 
void UpdateProbeOrder ()
 

Range

void GetRange (Float *xmin, Float *xmax, Float *ymin, Float *ymax) const
 
void SetRange (Float xmin, Float xmax, Float ymin, Float ymax)
 

Miscellaneous

Float GetLinLog () const
 
void SetLinLog (Float value)
 
Bool GetFreeze () const
 
void SetFreeze (Bool freeze)
 
const Gradient * GetGradient () const
 
Int32 GetGradientDirection () const
 
void SetGradientDirection (Int32 direction)
 
Bool IsFFTSamplingCacheDirty (const BaseDocument &doc) const
 

SoundTrack

Bool SetActiveSoundTrack (CTrack *track, BaseDocument *doc)
 
CTrack * GetActiveSoundTrack (BaseDocument *doc)
 

Additional Inherited Members

- Static Public Attributes inherited from CustomDataTypeT< 440000257 >
static constexpr Int32 DATATYPEID
 

Member Typedef Documentation

◆ IsAllocType

using IsAllocType = std::true_type

Constructor & Destructor Documentation

◆ SoundEffectorData()

SoundEffectorData ( )
private

◆ ~SoundEffectorData()

~SoundEffectorData ( )
private

Member Function Documentation

◆ Alloc() [1/2]

static SoundEffectorData* Alloc ( )
static

Allocates a SoundEffectorData. Destroy the allocated SoundEffectorData with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

Returns
The allocated sound effector data, or nullptr if the allocation failed.

◆ Alloc() [2/2]

static SoundEffectorData* Alloc ( const maxon::SourceLocation &  )
static

Allocates a SoundEffectorData. Destroy the allocated SoundEffectorData with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

Returns
The allocated sound effector data, or nullptr if the allocation failed.

◆ Free()

static void Free ( SoundEffectorData *&  pData)
static

Destructs SoundEffectorDatas allocated with Alloc(). Use AutoAlloc to automate the allocation and destruction based on scope.

Parameters
[in,out]pDataThe sound effector data to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

◆ InitSampling()

Bool InitSampling ( BaseDocument *  doc)

Initializes the sampling functionality of the sound effector data.

Warning
Must be called before either Sample() of SampleArray() functions. FreeSampling() must be invoked afterwards.
Parameters
[in]docThe document.
Returns
true if successful, otherwise false.

◆ FreeSampling()

Bool FreeSampling ( )

Frees the memory used for sampling.

Warning
Must be invoked after InitSampling() has been called.
Returns
true if successful, otherwise false.

◆ CopyTo()

Bool CopyTo ( SoundEffectorData *  pDest) const

Copies the sound effector data values into the destination sound effector data.

Parameters
[in]pDestThe destination sound effector data data. The caller owns the pointed SoundEffectorData..
Returns
true if successful, otherwise false.

◆ Sample()

Bool Sample ( Int  index,
Int  count,
Float &  value,
Vector &  color 
)

Samples the sound file using the probes.

Parameters
[in]indexThe index of the element to sample.
[in]countThe number of elements in the array being sampled.
[out]valueThe output value.
[out]colorThe output color.
Returns
true if successful, otherwise false.

◆ SampleArray() [1/2]

Bool SampleArray ( Int  offset,
Int  count,
Int  totalCount,
Float *  values,
Vector *  colors 
)

Samples a subset portion or whole array of elements simultaneously.

Parameters
[in]offsetThe offset from the start of the array that sampling start at.
[in]countThe number of elements in this subset.
[in]totalCountThe total number of elements being sampled.
[out]valuesThe values, should be the same size as count.
[out]colorsThe colors, should be the same size as count.
Returns
true if successful, otherwise false.

◆ SampleArray() [2/2]

Bool SampleArray ( Int  offset,
Int  count,
Int  totalCount,
Float *  values,
Vector *  colors 
) const

Samples a subset portion or whole array of elements simultaneously (const version).

Parameters
[in]offsetThe offset from the start of the array that sampling start at.
[in]countThe number of elements in this subset.
[in]totalCountThe total number of elements being sampled.
[out]valuesThe values, should be the same size as count.
[out]colorsThe colors, should be the same size as count.
Returns
true if successful, otherwise false.

◆ CreateProbe()

Int CreateProbe ( Float  left = 1.0,
Float  right = 22050.0,
Float  top = 1.0,
Float  bottom = 0.0,
Bool  selected = false 
)

Creates a probe.

Parameters
[in]leftThe left side of the probe in Hertz [1...22050].
[in]rightThe right side of the probe in Hertz [1...22050].
[in]topThe top edge of the probe in the range [0...1].
[in]bottomThe bottom edge of the probe in the range [0...1].
[in]selectedPass true to select the created probe (other probes are not deselected in the operation).
Returns
The created probe's index.

◆ CreateDefaultProbe()

Bool CreateDefaultProbe ( )

Create default probe.

Returns
true if successful, otherwise false.

◆ GetProbeCount()

Int GetProbeCount ( ) const

Retrieves the number of probes owned by the sound effector data.

Returns
The probe count.

◆ GetProbe()

Probe* GetProbe ( Int  index) const

Retrieves the probe at the specified index.

Parameters
[in]indexThe probe index.
Returns
The probe, or nullptr if the function fails. The SoundEffectorData owns the pointed probe.

◆ DeleteProbe()

Bool DeleteProbe ( Int  index)

Deletes the probe at the specified index.

Parameters
[in]indexThe index of the probe to delete.
Returns
true if successful, otherwise false.

◆ UpdateProbeOrder()

void UpdateProbeOrder ( )

Updates the probes.

Note
Must be called after adjusting any probes left or right values to update the order that the probes are calculated in.

◆ GetRange()

void GetRange ( Float *  xmin,
Float *  xmax,
Float *  ymin,
Float *  ymax 
) const

Retrieves the range of the sound effector data.

Warning
Only valid if the sound effector data is shown in the sound data GUI.
Parameters
[out]xminAssigned the minimum X value.
[out]xmaxAssigned the maximum X value.
[out]yminAssigned the minimum Y value.
[out]ymaxAssigned the maximum Y value.

◆ SetRange()

void SetRange ( Float  xmin,
Float  xmax,
Float  ymin,
Float  ymax 
)

Sets the range of the sound effector data.

Warning
Only valid if the sound effector data is shown in the sound data GUI.
Parameters
[in]xminThe minimum X value.
[in]xmaxThe maximum X value.
[in]yminThe minimum Y value.
[in]ymaxThe maximum Y value.

◆ GetLinLog()

Float GetLinLog ( ) const

Retrieves the blend value for the linear/logarithmic slider.

Returns
The blend percentage: 0% = linear, 100% = log10.

◆ SetLinLog()

void SetLinLog ( Float  value)

Sets the the blend value for the linear/logarithmic slider.

Parameters
[in]valueThe blend percentage to set: 0% = linear, 100% = log10.

◆ GetFreeze()

Bool GetFreeze ( ) const

Retrieves the freeze state.

Returns
true if freeze is enabled, otherwise false.

◆ SetFreeze()

void SetFreeze ( Bool  freeze)

Sets the freeze state.

Parameters
[in]freezetrue to enable freeze, otherwise false.

◆ GetGradient()

const Gradient* GetGradient ( ) const

Retrieves the global gradient.

Returns
The global gradient, or nullptr if the function fails. The SoundEffectorData owns the pointed gradient.

◆ GetGradientDirection()

Int32 GetGradientDirection ( ) const

Retrieves the global gradient direction.

Returns
The global gradient direction: 0 for vertical (volume), 1 for horizontal (frequency).

◆ SetGradientDirection()

void SetGradientDirection ( Int32  direction)

Sets the global gradient direction.

Parameters
[in]directionThe global gradient direction to set: 0 for vertical (volume), 1 for horizontal (frequency).

◆ IsFFTSamplingCacheDirty()

Bool IsFFTSamplingCacheDirty ( const BaseDocument &  doc) const

Check if an FFT Cache is currently up to date.

Parameters
[in]docThe document.
Returns
true if successful, otherwise false.

◆ SetActiveSoundTrack()

Bool SetActiveSoundTrack ( CTrack *  track,
BaseDocument *  doc 
)

Sets the active sound track.

Parameters
[in]trackSound track.
[in]docThe document.
Returns
true if successful, otherwise false.

◆ GetActiveSoundTrack()

CTrack* GetActiveSoundTrack ( BaseDocument *  doc)

Retrieves the active sound track.

Parameters
[in]docThe document.
Returns
The active sound track, or nullptr if the function fails. The SoundEffectorData owns the pointed CTrack.