source2sdk/sdk/soundsystem.hpp

280 lines
5.8 KiB
C++
Raw Normal View History

2023-03-15 15:20:35 +00:00
#pragma once
#include <cstdint>
#include "!GlobalTypes.hpp"
///////////////////////////////////////////
// Binary: soundsystem.dll
2023-03-15 19:24:28 +00:00
// Class Count: 15
2023-03-15 18:34:46 +00:00
// Enum Count: 7
2023-03-15 15:20:35 +00:00
///////////////////////////////////////////
2023-03-15 17:43:32 +00:00
// Aligment: 4
2023-03-15 18:34:46 +00:00
// Size: 3
2023-03-15 17:43:32 +00:00
enum class ActionType_t : uint32_t
{
SOS_ACTION_NONE = 0x0,
SOS_ACTION_LIMITER = 0x1,
2023-03-15 18:34:46 +00:00
SOS_ACTION_TIME_LIMIT = 0x2,
2023-03-15 17:43:32 +00:00
};
// Aligment: 4
// Size: 3
enum class SosActionStopType_t : uint32_t
{
SOS_STOPTYPE_NONE = 0x0,
SOS_STOPTYPE_TIME = 0x1,
SOS_STOPTYPE_OPVAR = 0x2,
};
// Aligment: 4
// Size: 2
enum class SosActionSortType_t : uint32_t
{
SOS_SORTTYPE_HIGHEST = 0x0,
SOS_SORTTYPE_LOWEST = 0x1,
};
// Aligment: 4
// Size: 2
enum class SosGroupType_t : uint32_t
{
SOS_GROUPTYPE_DYNAMIC = 0x0,
SOS_GROUPTYPE_STATIC = 0x1,
};
// Aligment: 4
// Size: 6
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-15 18:34:46 +00:00
// Aligment: 2
// Size: 8
enum class vmix_filter_type_t : uint16_t
{
FILTER_UNKNOWN = 18446744073709551615,
FILTER_LOWPASS = 0,
FILTER_HIGHPASS = 1,
FILTER_BANDPASS = 2,
FILTER_NOTCH = 3,
FILTER_PEAKING_EQ = 4,
FILTER_LOW_SHELF = 5,
FILTER_HIGH_SHELF = 6,
};
// Aligment: 2
2023-03-15 19:24:28 +00:00
// Size: 12
2023-03-15 18:34:46 +00:00
enum class vmix_processor_type_t : uint16_t
{
VPROCESSOR_UNKNOWN = 0,
VPROCESSOR_STEAMAUDIO_REVERB = 1,
VPROCESSOR_RT_PITCH = 2,
VPROCESSOR_STEAMAUDIO_HRTF = 3,
VPROCESSOR_DYNAMICS = 4,
VPROCESSOR_PRESETDSP = 5,
VPROCESSOR_DELAY = 6,
VPROCESSOR_FULLWAVE_INTEGRATOR = 7,
VPROCESSOR_FILTER = 8,
VPROCESSOR_STEAMAUDIO_PATHING = 9,
VPROCESSOR_EQ8 = 10,
VPROCESSOR_ENVELOPE = 11,
};
2023-03-15 15:20:35 +00:00
// Aligment: 3
// Size: 24
class CSosGroupActionSchema
{
public:
// MPropertyFriendlyName "Name"
CUtlString m_name; // 0x8
// MPropertyFriendlyName "Action Type"
ActionType_t m_actionType; // 0x10
// MPropertySuppressField
ActionType_t m_actionInstanceType; // 0x14
};
// Aligment: 3
// Size: 40
class CSosGroupActionLimitSchema : public CSosGroupActionSchema
{
public:
// MPropertyFriendlyName "Max Count"
int32_t m_nMaxCount; // 0x18
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Stop Type"
SosActionStopType_t m_nStopType; // 0x1c
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Sort Type"
SosActionSortType_t m_nSortType; // 0x20
};
2023-03-15 18:34:46 +00:00
// Aligment: 1
// Size: 32
class CSosGroupActionTimeLimitSchema : public CSosGroupActionSchema
{
public:
// MPropertyFriendlyName "Max Time"
float m_flMaxDuration; // 0x18
};
2023-03-15 15:20:35 +00:00
// Aligment: 4
// Size: 16
class CSosGroupBranchPattern
{
public:
// MPropertyFriendlyName "Event Name"
bool m_bMatchEventName; // 0x8
// MPropertyFriendlyName "Sub-String"
bool m_bMatchEventSubString; // 0x9
// MPropertyFriendlyName "Source Entity Index"
bool m_bMatchEntIndex; // 0xa
// MPropertyFriendlyName "Operator Variable"
bool m_bMatchOpvar; // 0xb
};
// Aligment: 4
// Size: 40
class CSosGroupMatchPattern : public CSosGroupBranchPattern
{
public:
// MPropertyFriendlyName "Event Name"
CUtlString m_matchSoundEventName; // 0x10
// MPropertyFriendlyName "Sub-String"
CUtlString m_matchSoundEventSubString; // 0x18
// MPropertyFriendlyName "Entity Index"
float m_flEntIndex; // 0x20
// MPropertyFriendlyName "Operator Variable Value"
float m_flOpvar; // 0x24
};
// Aligment: 8
// Size: 208
class CSosSoundEventGroupSchema
{
public:
// MPropertyFriendlyName "Group Name"
CUtlString m_name; // 0x0
// MPropertyAttributeChoiceEnumName
// MPropertyFriendlyName "Group Type"
SosGroupType_t m_nType; // 0x8
// MPropertyFriendlyName "Blocks Events"
bool m_bIsBlocking; // 0xc
// MPropertyFriendlyName "Block Max Count"
int32_t m_nBlockMaxCount; // 0x10
// MPropertyFriendlyName "Invert Match"
bool m_bInvertMatch; // 0x14
// MPropertyFriendlyName "Match Rules"
CSosGroupMatchPattern m_matchPattern; // 0x18
// MPropertyFriendlyName "Branch Rules"
CSosGroupBranchPattern m_branchPattern; // 0x40
// MPropertyFriendlyName "Actions"
CSosGroupActionSchema*[4] m_vActions; // 0xb0
};
// Aligment: 1
// Size: 24
class CSosSoundEventGroupListSchema
{
public:
2023-03-15 18:56:19 +00:00
// MPropertyAutoExpandGroup
2023-03-15 15:20:35 +00:00
// MPropertyFriendlyName "Groups"
CUtlVector< CSosSoundEventGroupSchema > m_groupList; // 0x0
};
// Aligment: 5
// Size: 48
struct SosEditItemInfo_t
{
public:
SosEditItemType_t itemType; // 0x0
CUtlString itemName; // 0x8
CUtlString itemTypeName; // 0x10
CUtlString itemKVString; // 0x20
Vector2D itemPos; // 0x28
};
// Aligment: 1
// Size: 24
struct SelectedEditItemInfo_t
{
public:
CUtlVector< SosEditItemInfo_t > m_EditItems; // 0x0
};
2023-03-15 18:34:46 +00:00
// Aligment: 5
// Size: 16
struct vmix_filter_desc_t
2023-03-15 15:20:35 +00:00
{
public:
2023-03-15 18:34:46 +00:00
vmix_filter_type_t m_nFilterType; // 0x0
bool m_bEnabled; // 0x2
float m_fldbGain; // 0x4
float m_flCutoffFreq; // 0x8
float m_flQ; // 0xc
2023-03-15 15:20:35 +00:00
};
// Aligment: 1
2023-03-15 18:34:46 +00:00
// Size: 128
struct vmix_eq8_desc_t
{
public:
vmix_filter_desc_t[8] m_stages; // 0x0
};
// Aligment: 7
// Size: 40
struct vmix_delay_desc_t
{
public:
vmix_filter_desc_t m_feedbackFilter; // 0x0
bool m_bEnableFilter; // 0x10
float m_flDelay; // 0x14
float m_flDirectGain; // 0x18
float m_flDelayGain; // 0x1c
float m_flFeedbackGain; // 0x20
float m_flWidth; // 0x24
};
2023-03-15 18:56:19 +00:00
// Aligment: 10
// Size: 40
2023-03-15 18:34:46 +00:00
struct vmix_dynamics_desc_t
{
public:
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
2023-03-15 15:20:35 +00:00
};
// Aligment: 3
// Size: 12
2023-03-15 18:34:46 +00:00
struct vmix_envelope_desc_t
2023-03-15 15:20:35 +00:00
{
public:
2023-03-15 18:34:46 +00:00
float m_flAttackTimeMS; // 0x0
float m_flHoldTimeMS; // 0x4
float m_flReleaseTimeMS; // 0x8
2023-03-15 15:20:35 +00:00
};
2023-03-15 19:24:28 +00:00
// Aligment: 2
// Size: 8
2023-03-15 18:34:46 +00:00
struct vmix_pitch_shift_desc_t
{
public:
int32_t m_nGrainSampleCount; // 0x0
float m_flPitchShift; // 0x4
2023-03-15 15:20:35 +00:00
};