2023-03-15 15:20:35 +00:00
# pragma once
# include <cstdint>
# include "!GlobalTypes.hpp"
2023-03-23 14:05:13 +00:00
// /////////////////////////////////////////////////////////////
2023-03-15 15:20:35 +00:00
// Binary: soundsystem.dll
2023-03-23 14:05:13 +00:00
// Classes count: 36
// Enums count: 13
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
2023-03-15 15:20:35 +00:00
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x1e
2023-03-15 15:20:35 +00:00
enum class soundlevel_t : uint32_t
{
SNDLVL_NONE = 0x0 ,
SNDLVL_20dB = 0x14 ,
SNDLVL_25dB = 0x19 ,
SNDLVL_30dB = 0x1e ,
SNDLVL_35dB = 0x23 ,
SNDLVL_40dB = 0x28 ,
SNDLVL_45dB = 0x2d ,
SNDLVL_50dB = 0x32 ,
SNDLVL_55dB = 0x37 ,
SNDLVL_IDLE = 0x3c ,
SNDLVL_60dB = 0x3c ,
SNDLVL_65dB = 0x41 ,
SNDLVL_STATIC = 0x42 ,
SNDLVL_70dB = 0x46 ,
SNDLVL_NORM = 0x4b ,
SNDLVL_75dB = 0x4b ,
SNDLVL_80dB = 0x50 ,
SNDLVL_TALKING = 0x50 ,
SNDLVL_85dB = 0x55 ,
SNDLVL_90dB = 0x5a ,
SNDLVL_95dB = 0x5f ,
SNDLVL_100dB = 0x64 ,
SNDLVL_105dB = 0x69 ,
SNDLVL_110dB = 0x6e ,
SNDLVL_120dB = 0x78 ,
SNDLVL_130dB = 0x82 ,
SNDLVL_GUNFIRE = 0x8c ,
SNDLVL_140dB = 0x8c ,
SNDLVL_150dB = 0x96 ,
SNDLVL_180dB = 0xb4 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x3
2023-03-15 15:20:35 +00:00
enum class ActionType_t : uint32_t
{
SOS_ACTION_NONE = 0x0 ,
SOS_ACTION_LIMITER = 0x1 ,
SOS_ACTION_TIME_LIMIT = 0x2 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x3
2023-03-15 15:20:35 +00:00
enum class SosActionStopType_t : uint32_t
{
SOS_STOPTYPE_NONE = 0x0 ,
SOS_STOPTYPE_TIME = 0x1 ,
SOS_STOPTYPE_OPVAR = 0x2 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x2
2023-03-15 15:20:35 +00:00
enum class SosActionSortType_t : uint32_t
{
SOS_SORTTYPE_HIGHEST = 0x0 ,
SOS_SORTTYPE_LOWEST = 0x1 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x2
2023-03-15 15:20:35 +00:00
enum class SosGroupType_t : uint32_t
{
SOS_GROUPTYPE_DYNAMIC = 0x0 ,
SOS_GROUPTYPE_STATIC = 0x1 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x6
2023-03-15 15:20:35 +00:00
enum class SosEditItemType_t : uint32_t
{
SOS_EDIT_ITEM_TYPE_SOUNDEVENTS = 0x0 ,
SOS_EDIT_ITEM_TYPE_SOUNDEVENT = 0x1 ,
SOS_EDIT_ITEM_TYPE_LIBRARYSTACKS = 0x2 ,
SOS_EDIT_ITEM_TYPE_STACK = 0x3 ,
SOS_EDIT_ITEM_TYPE_OPERATOR = 0x4 ,
SOS_EDIT_ITEM_TYPE_FIELD = 0x5 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 2
// Size: 0xa
2023-03-15 15:20:35 +00:00
enum class VMixFilterType_t : uint16_t
{
2023-03-23 14:05:13 +00:00
FILTER_UNKNOWN = 0xffffffffffffffff ,
FILTER_LOWPASS = 0x0 ,
FILTER_HIGHPASS = 0x1 ,
FILTER_BANDPASS = 0x2 ,
FILTER_NOTCH = 0x3 ,
FILTER_PEAKING_EQ = 0x4 ,
FILTER_LOW_SHELF = 0x5 ,
FILTER_HIGH_SHELF = 0x6 ,
FILTER_ALLPASS = 0x7 ,
FILTER_PASSTHROUGH = 0x8 ,
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x9
2023-03-15 15:20:35 +00:00
enum class VMixFilterSlope_t : uint8_t
{
2023-03-23 14:05:13 +00:00
FILTER_SLOPE_1POLE_6dB = 0x0 ,
FILTER_SLOPE_1POLE_12dB = 0x1 ,
FILTER_SLOPE_1POLE_18dB = 0x2 ,
FILTER_SLOPE_1POLE_24dB = 0x3 ,
FILTER_SLOPE_12dB = 0x4 ,
FILTER_SLOPE_24dB = 0x5 ,
FILTER_SLOPE_36dB = 0x6 ,
FILTER_SLOPE_48dB = 0x7 ,
FILTER_SLOPE_MAX = 0x7 ,
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 2
// Size: 0x1e
2023-03-15 15:20:35 +00:00
enum class VMixProcessorType_t : uint16_t
{
2023-03-23 14:05:13 +00:00
VPROCESSOR_UNKNOWN = 0x0 ,
VPROCESSOR_STEAMAUDIO_REVERB = 0x1 ,
VPROCESSOR_RT_PITCH = 0x2 ,
VPROCESSOR_STEAMAUDIO_HRTF = 0x3 ,
VPROCESSOR_DYNAMICS = 0x4 ,
VPROCESSOR_PRESETDSP = 0x5 ,
VPROCESSOR_DELAY = 0x6 ,
VPROCESSOR_MOD_DELAY = 0x7 ,
VPROCESSOR_DIFFUSOR = 0x8 ,
VPROCESSOR_BOXVERB = 0x9 ,
VPROCESSOR_FREEVERB = 0xa ,
VPROCESSOR_PLATEVERB = 0xb ,
VPROCESSOR_FULLWAVE_INTEGRATOR = 0xc ,
VPROCESSOR_FILTER = 0xd ,
VPROCESSOR_STEAMAUDIO_PATHING = 0xe ,
VPROCESSOR_EQ8 = 0xf ,
VPROCESSOR_ENVELOPE = 0x10 ,
VPROCESSOR_VOCODER = 0x11 ,
VPROCESSOR_CONVOLUTION = 0x12 ,
VPROCESSOR_DYNAMICS_3BAND = 0x13 ,
VPROCESSOR_DYNAMICS_COMPRESSOR = 0x14 ,
VPROCESSOR_SHAPER = 0x15 ,
VPROCESSOR_PANNER = 0x16 ,
VPROCESSOR_UTILITY = 0x17 ,
VPROCESSOR_AUTOFILTER = 0x18 ,
VPROCESSOR_OSC = 0x19 ,
VPROCESSOR_STEREODELAY = 0x1a ,
VPROCESSOR_EFFECT_CHAIN = 0x1b ,
VPROCESSOR_SUBGRAPH_SWITCH = 0x1c ,
VPROCESSOR_STEAMAUDIO_DIRECT = 0x1d ,
} ;
// Alignment: 4
// Size: 0x5
2023-03-15 15:20:35 +00:00
enum class VMixLFOShape_t : uint32_t
{
LFO_SHAPE_SINE = 0x0 ,
LFO_SHAPE_SQUARE = 0x1 ,
LFO_SHAPE_TRI = 0x2 ,
LFO_SHAPE_SAW = 0x3 ,
LFO_SHAPE_NOISE = 0x4 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x2
2023-03-15 15:20:35 +00:00
enum class VMixPannerType_t : uint32_t
{
PANNER_TYPE_LINEAR = 0x0 ,
PANNER_TYPE_EQUAL_POWER = 0x1 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x3
2023-03-15 15:20:35 +00:00
enum class VMixSubgraphSwitchInterpolationType_t : uint32_t
{
SUBGRAPH_INTERPOLATION_TEMPORAL_CROSSFADE = 0x0 ,
SUBGRAPH_INTERPOLATION_TEMPORAL_FADE_OUT = 0x1 ,
SUBGRAPH_INTERPOLATION_KEEP_LAST_SUBGRAPH_RUNNING = 0x2 ,
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x6
2023-03-15 15:20:35 +00:00
enum class VMixChannelOperation_t : uint32_t
{
VMIX_CHAN_STEREO = 0x0 ,
VMIX_CHAN_LEFT = 0x1 ,
VMIX_CHAN_RIGHT = 0x2 ,
VMIX_CHAN_SWAP = 0x3 ,
VMIX_CHAN_MONO = 0x4 ,
VMIX_CHAN_MID_SIDE = 0x5 ,
} ;
2023-03-23 14:05:13 +00:00
struct CSosGroupMatchPattern ;
struct CSosGroupBranchPattern ;
struct VMixFilterDesc_t ;
// Alignment: 3
// Size: 0x18
2023-03-15 15:20:35 +00:00
class CSosGroupActionSchema
{
public :
// MPropertyFriendlyName "Name"
2023-03-23 14:05:13 +00:00
CUtlString m_name ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Action Type"
2023-03-23 14:05:13 +00:00
ActionType_t m_actionType ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertySuppressField
2023-03-23 14:05:13 +00:00
ActionType_t m_actionInstanceType ; // 0x14
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 3
// Size: 0x28
2023-03-15 15:20:35 +00:00
class CSosGroupActionLimitSchema : public CSosGroupActionSchema
{
public :
// MPropertyFriendlyName "Max Count"
2023-03-23 14:05:13 +00:00
int32_t m_nMaxCount ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Stop Type"
2023-03-23 14:05:13 +00:00
SosActionStopType_t m_nStopType ; // 0x1c
2023-03-15 15:20:35 +00:00
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Sort Type"
2023-03-23 14:05:13 +00:00
SosActionSortType_t m_nSortType ; // 0x20
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x20
2023-03-15 15:20:35 +00:00
class CSosGroupActionTimeLimitSchema : public CSosGroupActionSchema
{
public :
// MPropertyFriendlyName "Max Time"
2023-03-23 14:05:13 +00:00
float m_flMaxDuration ; // 0x18
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x10
2023-03-15 15:20:35 +00:00
class CSosGroupBranchPattern
{
public :
// MPropertyFriendlyName "Event Name"
2023-03-23 14:05:13 +00:00
bool m_bMatchEventName ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Sub-String"
2023-03-23 14:05:13 +00:00
bool m_bMatchEventSubString ; // 0x9
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Source Entity Index"
2023-03-23 14:05:13 +00:00
bool m_bMatchEntIndex ; // 0xa
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Operator Variable"
2023-03-23 14:05:13 +00:00
bool m_bMatchOpvar ; // 0xb
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x28
2023-03-15 15:20:35 +00:00
class CSosGroupMatchPattern : public CSosGroupBranchPattern
{
public :
// MPropertyFriendlyName "Event Name"
2023-03-23 14:05:13 +00:00
CUtlString m_matchSoundEventName ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Sub-String"
2023-03-23 14:05:13 +00:00
CUtlString m_matchSoundEventSubString ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Entity Index"
2023-03-23 14:05:13 +00:00
float m_flEntIndex ; // 0x20
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Operator Variable Value"
2023-03-23 14:05:13 +00:00
float m_flOpvar ; // 0x24
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 8
// Size: 0xd0
2023-03-15 15:20:35 +00:00
class CSosSoundEventGroupSchema
{
public :
// MPropertyFriendlyName "Group Name"
2023-03-23 14:05:13 +00:00
CUtlString m_name ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Group Type"
2023-03-23 14:05:13 +00:00
SosGroupType_t m_nType ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Blocks Events"
2023-03-23 14:05:13 +00:00
bool m_bIsBlocking ; // 0xc
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad000d [ 0x3 ] ; // 0xd
2023-03-23 14:05:13 +00:00
public :
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Block Max Count"
2023-03-23 14:05:13 +00:00
int32_t m_nBlockMaxCount ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Invert Match"
2023-03-23 14:05:13 +00:00
bool m_bInvertMatch ; // 0x14
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0015 [ 0x3 ] ; // 0x15
2023-03-23 14:05:13 +00:00
public :
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Match Rules"
2023-03-23 14:05:13 +00:00
CSosGroupMatchPattern m_matchPattern ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Branch Rules"
2023-03-23 14:05:13 +00:00
CSosGroupBranchPattern m_branchPattern ; // 0x40
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0050 [ 0x60 ] ; // 0x50
2023-03-23 14:05:13 +00:00
public :
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Actions"
2023-03-23 14:05:13 +00:00
CSosGroupActionSchema * m_vActions [ 4 ] ; // 0xb0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x18
2023-03-15 15:20:35 +00:00
class CSosSoundEventGroupListSchema
{
public :
// MPropertyAutoExpandSelf
// MPropertyFriendlyName "Groups"
2023-03-23 14:05:13 +00:00
CUtlVector < CSosSoundEventGroupSchema > m_groupList ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 5
// Size: 0x30
2023-03-15 15:20:35 +00:00
struct SosEditItemInfo_t
{
public :
2023-03-23 14:05:13 +00:00
SosEditItemType_t itemType ; // 0x0
CUtlString itemName ; // 0x8
CUtlString itemTypeName ; // 0x10
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0018 [ 0x8 ] ; // 0x18
2023-03-23 14:05:13 +00:00
public :
CUtlString itemKVString ; // 0x20
Vector2D itemPos ; // 0x28
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x18
2023-03-15 15:20:35 +00:00
struct SelectedEditItemInfo_t
{
public :
2023-03-23 14:05:13 +00:00
CUtlVector < SosEditItemInfo_t > m_EditItems ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x8
2023-03-15 15:20:35 +00:00
class CSoundEventMetaData
{
public :
2023-03-23 14:05:13 +00:00
CStrongHandle < InfoForResourceTypeCVMixListResource > m_soundEventVMix ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 6
// Size: 0x20
2023-03-15 15:20:35 +00:00
class CDSPMixgroupModifier
{
public :
// MPropertyDescription "Name of the mixgroup. TODO: needs to be autopopulated with mixgroups."
// MPropertyFriendlyName "Mixgroup Name"
2023-03-23 14:05:13 +00:00
CUtlString m_mixgroup ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyDescription "The amount to multiply the volume of the non-spatialized reverb/dsp by when at the max reverb blend distance. 1.0 leaves the volume unchanged."
// MPropertyFriendlyName "Max reverb gain amount for listener DSP."
2023-03-23 14:05:13 +00:00
float m_flModifier ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyDescription "The amount to multiply the volume of the non-spatialized reverb/dsp by when at the min reverb blend distance. 1.0 leaves the volume unchanged."
// MPropertyFriendlyName "Min reverb gain amount amount for listener DSP."
2023-03-23 14:05:13 +00:00
float m_flModifierMin ; // 0xc
2023-03-15 15:20:35 +00:00
// MPropertyDescription "If set to >= 0, we will use this mix modifier for source-specific DSP effects. Otherwise we will use the listener DSP value."
// MPropertyFriendlyName "Max reverb gain amount for source-specific DSP."
2023-03-23 14:05:13 +00:00
float m_flSourceModifier ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyDescription "If set to >= 0, we will use this mix modifier for source-specific DSP effects. Otherwise we will use the listener DSP value."
// MPropertyFriendlyName "Min reverb gain amount for source-specific DSP."
2023-03-23 14:05:13 +00:00
float m_flSourceModifierMin ; // 0x14
2023-03-15 15:20:35 +00:00
// MPropertyDescription "When a source has source-specific DSP, this can be used as an additional mix stage for the listener reverb amount."
// MPropertyFriendlyName "Modification amount for listener DSP when source DSP is used."
2023-03-23 14:05:13 +00:00
float m_flListenerReverbModifierWhenSourceReverbIsActive ; // 0x18
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 2
// Size: 0x20
2023-03-15 15:20:35 +00:00
class CDspPresetModifierList
{
public :
// MPropertyDescription "Name of the DSP effect / subgraph used."
// MPropertyFriendlyName "DSP Effect Name"
2023-03-23 14:05:13 +00:00
CUtlString m_dspName ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyDescription "Set of modifiers for individual mix groups"
// MPropertyFriendlyName "Mixgroup Modifiers"
2023-03-23 14:05:13 +00:00
CUtlVector < CDSPMixgroupModifier > m_modifiers ; // 0x8
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x18
2023-03-15 15:20:35 +00:00
class CDSPPresetMixgroupModifierTable
{
public :
// MPropertyDescription "Table of mixgroup modifiers for effect names."
// MPropertyFriendlyName "Modifier Table"
2023-03-23 14:05:13 +00:00
CUtlVector < CDspPresetModifierList > m_table ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 6
// Size: 0x10
2023-03-15 15:20:35 +00:00
struct VMixFilterDesc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixFilterType_t m_nFilterType ; // 0x0
VMixFilterSlope_t m_nFilterSlope ; // 0x2
bool m_bEnabled ; // 0x3
float m_fldbGain ; // 0x4
float m_flCutoffFreq ; // 0x8
float m_flQ ; // 0xc
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x80
2023-03-15 15:20:35 +00:00
struct VMixEQ8Desc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixFilterDesc_t m_stages [ 8 ] ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 7
// Size: 0x28
2023-03-15 15:20:35 +00:00
struct VMixDelayDesc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixFilterDesc_t m_feedbackFilter ; // 0x0
bool m_bEnableFilter ; // 0x10
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0011 [ 0x3 ] ; // 0x11
2023-03-23 14:05:13 +00:00
public :
float m_flDelay ; // 0x14
float m_flDirectGain ; // 0x18
float m_flDelayGain ; // 0x1c
float m_flFeedbackGain ; // 0x20
float m_flWidth ; // 0x24
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 2
// Size: 0x8
2023-03-15 15:20:35 +00:00
struct VMixPannerDesc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixPannerType_t m_type ; // 0x0
float m_flStrength ; // 0x4
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 9
// Size: 0x30
2023-03-15 15:20:35 +00:00
struct VMixModDelayDesc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixFilterDesc_t m_feedbackFilter ; // 0x0
bool m_bPhaseInvert ; // 0x10
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0011 [ 0x3 ] ; // 0x11
2023-03-23 14:05:13 +00:00
public :
float m_flGlideTime ; // 0x14
float m_flDelay ; // 0x18
float m_flOutputGain ; // 0x1c
float m_flFeedbackGain ; // 0x20
float m_flModRate ; // 0x24
float m_flModDepth ; // 0x28
bool m_bApplyAntialiasing ; // 0x2c
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x10
2023-03-15 15:20:35 +00:00
struct VMixDiffusorDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flSize ; // 0x0
float m_flComplexity ; // 0x4
float m_flFeedback ; // 0x8
float m_flOutputGain ; // 0xc
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 17
// Size: 0x50
2023-03-15 15:20:35 +00:00
struct VMixBoxverbDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flSizeMax ; // 0x0
float m_flSizeMin ; // 0x4
float m_flComplexity ; // 0x8
float m_flDiffusion ; // 0xc
float m_flModDepth ; // 0x10
float m_flModRate ; // 0x14
bool m_bParallel ; // 0x18
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0019 [ 0x3 ] ; // 0x19
2023-03-23 14:05:13 +00:00
public :
VMixFilterDesc_t m_filterType ; // 0x1c
float m_flWidth ; // 0x2c
float m_flHeight ; // 0x30
float m_flDepth ; // 0x34
float m_flFeedbackScale ; // 0x38
float m_flFeedbackWidth ; // 0x3c
float m_flFeedbackHeight ; // 0x40
float m_flFeedbackDepth ; // 0x44
float m_flOutputGain ; // 0x48
float m_flTaps ; // 0x4c
} ;
// Alignment: 4
// Size: 0x10
2023-03-15 15:20:35 +00:00
struct VMixFreeverbDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flRoomSize ; // 0x0
float m_flDamp ; // 0x4
float m_flWidth ; // 0x8
float m_flLateReflections ; // 0xc
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 7
// Size: 0x1c
2023-03-15 15:20:35 +00:00
struct VMixPlateverbDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flPrefilter ; // 0x0
float m_flInputDiffusion1 ; // 0x4
float m_flInputDiffusion2 ; // 0x8
float m_flDecay ; // 0xc
float m_flDamp ; // 0x10
float m_flFeedbackDiffusion1 ; // 0x14
float m_flFeedbackDiffusion2 ; // 0x18
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 12
// Size: 0x30
2023-03-15 15:20:35 +00:00
struct VMixDynamicsDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_fldbGain ; // 0x0
float m_fldbNoiseGateThreshold ; // 0x4
float m_fldbCompressionThreshold ; // 0x8
float m_fldbLimiterThreshold ; // 0xc
float m_fldbKneeWidth ; // 0x10
float m_flRatio ; // 0x14
float m_flLimiterRatio ; // 0x18
float m_flAttackTimeMS ; // 0x1c
float m_flReleaseTimeMS ; // 0x20
float m_flRMSTimeMS ; // 0x24
float m_flWetMix ; // 0x28
bool m_bPeakMode ; // 0x2c
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 9
// Size: 0x24
2023-03-15 15:20:35 +00:00
struct VMixDynamicsCompressorDesc_t
{
public :
// MPropertyFriendlyName "Output Gain (dB)"
2023-03-23 14:05:13 +00:00
float m_fldbOutputGain ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Threshold (dB)"
2023-03-23 14:05:13 +00:00
float m_fldbCompressionThreshold ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Knee Width (dB)"
2023-03-23 14:05:13 +00:00
float m_fldbKneeWidth ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Compression Ratio"
2023-03-23 14:05:13 +00:00
float m_flCompressionRatio ; // 0xc
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Attack time (ms)"
2023-03-23 14:05:13 +00:00
float m_flAttackTimeMS ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Release time (ms)"
2023-03-23 14:05:13 +00:00
float m_flReleaseTimeMS ; // 0x14
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Threshold detection time (ms)"
2023-03-23 14:05:13 +00:00
float m_flRMSTimeMS ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Dry/Wet"
2023-03-23 14:05:13 +00:00
float m_flWetMix ; // 0x1c
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Peak mode"
2023-03-23 14:05:13 +00:00
bool m_bPeakMode ; // 0x20
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 10
// Size: 0x24
2023-03-15 15:20:35 +00:00
struct VMixDynamicsBand_t
{
public :
// MPropertyFriendlyName "Input Gain (dB)"
2023-03-23 14:05:13 +00:00
float m_fldbGainInput ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Output Gain (dB)"
2023-03-23 14:05:13 +00:00
float m_fldbGainOutput ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Below Threshold(dB)"
2023-03-23 14:05:13 +00:00
float m_fldbThresholdBelow ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Above Threshold(dB)"
2023-03-23 14:05:13 +00:00
float m_fldbThresholdAbove ; // 0xc
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Upward Ratio"
2023-03-23 14:05:13 +00:00
float m_flRatioBelow ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Downward Ratio"
2023-03-23 14:05:13 +00:00
float m_flRatioAbove ; // 0x14
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Attack time (ms)"
2023-03-23 14:05:13 +00:00
float m_flAttackTimeMS ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Release time (ms)"
2023-03-23 14:05:13 +00:00
float m_flReleaseTimeMS ; // 0x1c
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Enabled"
2023-03-23 14:05:13 +00:00
bool m_bEnable ; // 0x20
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Solo"
2023-03-23 14:05:13 +00:00
bool m_bSolo ; // 0x21
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 10
// Size: 0x90
2023-03-15 15:20:35 +00:00
struct VMixDynamics3BandDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_fldbGainOutput ; // 0x0
float m_flRMSTimeMS ; // 0x4
float m_fldbKneeWidth ; // 0x8
float m_flDepth ; // 0xc
float m_flWetMix ; // 0x10
float m_flTimeScale ; // 0x14
float m_flLowCutoffFreq ; // 0x18
float m_flHighCutoffFreq ; // 0x1c
bool m_bPeakMode ; // 0x20
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0021 [ 0x3 ] ; // 0x21
2023-03-23 14:05:13 +00:00
public :
VMixDynamicsBand_t m_bandDesc [ 3 ] ; // 0x24
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 3
// Size: 0xc
2023-03-15 15:20:35 +00:00
struct VMixEnvelopeDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flAttackTimeMS ; // 0x0
float m_flHoldTimeMS ; // 0x4
float m_flReleaseTimeMS ; // 0x8
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 4
// Size: 0x10
2023-03-15 15:20:35 +00:00
struct VMixPitchShiftDesc_t
{
public :
2023-03-23 14:05:13 +00:00
int32_t m_nGrainSampleCount ; // 0x0
float m_flPitchShift ; // 0x4
int32_t m_nQuality ; // 0x8
int32_t m_nProcType ; // 0xc
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 8
// Size: 0x20
2023-03-15 15:20:35 +00:00
struct VMixConvolutionDesc_t
{
public :
// MPropertyFriendlyName "gain of wet signal (dB)"
// MPropertyAttributeRange "-36 3"
2023-03-23 14:05:13 +00:00
float m_fldbGain ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Pre-delay (ms)"
2023-03-23 14:05:13 +00:00
float m_flPreDelayMS ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Dry/Wet"
2023-03-23 14:05:13 +00:00
float m_flWetMix ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Low EQ gain (dB)"
// MPropertyAttributeRange "-24 24"
2023-03-23 14:05:13 +00:00
float m_fldbLow ; // 0xc
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Mid EQ gain (dB)"
// MPropertyAttributeRange "-24 24"
2023-03-23 14:05:13 +00:00
float m_fldbMid ; // 0x10
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "High EQ gain (dB)"
// MPropertyAttributeRange "-24 24"
2023-03-23 14:05:13 +00:00
float m_fldbHigh ; // 0x14
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Low Cutoff Freq (Hz)"
2023-03-23 14:05:13 +00:00
float m_flLowCutoffFreq ; // 0x18
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "High Cutoff Freq (Hz)"
2023-03-23 14:05:13 +00:00
float m_flHighCutoffFreq ; // 0x1c
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 10
// Size: 0x28
2023-03-15 15:20:35 +00:00
struct VMixVocoderDesc_t
{
public :
2023-03-23 14:05:13 +00:00
int32_t m_nBandCount ; // 0x0
float m_flBandwidth ; // 0x4
float m_fldBModGain ; // 0x8
float m_flFreqRangeStart ; // 0xc
float m_flFreqRangeEnd ; // 0x10
float m_fldBUnvoicedGain ; // 0x14
float m_flAttackTimeMS ; // 0x18
float m_flReleaseTimeMS ; // 0x1c
int32_t m_nDebugBand ; // 0x20
bool m_bPeakMode ; // 0x24
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 5
// Size: 0x14
2023-03-15 15:20:35 +00:00
struct VMixShaperDesc_t
{
public :
// MPropertyFriendlyName "Shape"
// MPropertyAttributeRange "0 14"
2023-03-23 14:05:13 +00:00
int32_t m_nShape ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Drive (dB)"
// MPropertyAttributeRange "0 36"
2023-03-23 14:05:13 +00:00
float m_fldbDrive ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Output Gain (dB)"
// MPropertyAttributeRange "-36 0"
2023-03-23 14:05:13 +00:00
float m_fldbOutputGain ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Dry/Wet"
2023-03-23 14:05:13 +00:00
float m_flWetMix ; // 0xc
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Oversampling"
2023-03-23 14:05:13 +00:00
int32_t m_nOversampleFactor ; // 0x10
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 6
// Size: 0x18
2023-03-15 15:20:35 +00:00
struct VMixUtilityDesc_t
{
public :
// MPropertyFriendlyName "Channels"
2023-03-23 14:05:13 +00:00
VMixChannelOperation_t m_nOp ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Input Pan"
// MPropertyAttributeRange "-1 1"
2023-03-23 14:05:13 +00:00
float m_flInputPan ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Output Balance"
// MPropertyAttributeRange "-1 1"
2023-03-23 14:05:13 +00:00
float m_flOutputBalance ; // 0x8
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Output Gain (dB)"
// MPropertyAttributeRange "-36 0"
2023-03-23 14:05:13 +00:00
float m_fldbOutputGain ; // 0xc
bool m_bBassMono ; // 0x10
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0011 [ 0x3 ] ; // 0x11
2023-03-23 14:05:13 +00:00
public :
float m_flBassFreq ; // 0x14
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 8
// Size: 0x2c
2023-03-15 15:20:35 +00:00
struct VMixAutoFilterDesc_t
{
public :
2023-03-23 14:05:13 +00:00
float m_flEnvelopeAmount ; // 0x0
float m_flAttackTimeMS ; // 0x4
float m_flReleaseTimeMS ; // 0x8
VMixFilterDesc_t m_filter ; // 0xc
float m_flLFOAmount ; // 0x1c
float m_flLFORate ; // 0x20
float m_flPhase ; // 0x24
VMixLFOShape_t m_nLFOShape ; // 0x28
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 3
// Size: 0xc
2023-03-15 15:20:35 +00:00
struct VMixOscDesc_t
{
public :
// MPropertyFriendlyName "Type"
2023-03-23 14:05:13 +00:00
VMixLFOShape_t oscType ; // 0x0
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Frequency (Hz)"
// MPropertyAttributeRange "0.1 16000"
2023-03-23 14:05:13 +00:00
float m_freq ; // 0x4
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Phase (degrees)"
// MPropertyAttributeRange "0 360"
2023-03-23 14:05:13 +00:00
float m_flPhase ; // 0x8
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 1
// Size: 0x4
2023-03-15 15:20:35 +00:00
struct VMixEffectChainDesc_t
{
public :
// MPropertyFriendlyName "Crossfade Time (s)"
// MPropertyAttributeRange "0.1 10"
2023-03-23 14:05:13 +00:00
float m_flCrossfadeTime ; // 0x0
2023-03-15 15:20:35 +00:00
} ;
2023-03-23 14:05:13 +00:00
// Alignment: 3
// Size: 0xc
2023-03-15 15:20:35 +00:00
struct VMixSubgraphSwitchDesc_t
{
public :
2023-03-23 14:05:13 +00:00
VMixSubgraphSwitchInterpolationType_t m_interpolationMode ; // 0x0
bool m_bOnlyTailsOnFadeOut ; // 0x4
private :
2023-03-24 22:01:31 +00:00
[[maybe_unused]] uint8_t __pad0005 [ 0x3 ] ; // 0x5
2023-03-23 14:05:13 +00:00
public :
float m_flInterpolationTime ; // 0x8
2023-03-15 15:20:35 +00:00
} ;