CommonLibSSE (Parapets fork)
XAPO.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/AudioDefs.h"
4 #include "RE/I/IUnknown.h"
5 
6 namespace RE
7 {
8  using BOOL = std::int32_t;
9 
10  inline constexpr auto XAPO_REGISTRATION_STRING_LENGTH = 256;
11 
12 #pragma pack(push, 1)
13 
15  {
19  std::uint32_t majorVersion; // 410
20  std::uint32_t minorVersion; // 414
21  std::uint32_t flags; // 418
22  std::uint32_t minInputBufferCount; // 41C
23  std::uint32_t maxInputBufferCount; // 420
24  std::uint32_t minOutputBufferCount; // 424
25  std::uint32_t maxOutputBufferCount; // 428
26  };
27  static_assert(sizeof(XAPO_REGISTRATION_PROPERTIES) == 0x42C);
28 
30  {
31  const WAVEFORMATEX* format; // 00
32  std::uint32_t maxFrameCount; // 08
33  };
34  static_assert(sizeof(XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS) == 0xC);
35 
36  enum class XAPO_BUFFER_FLAGS
37  {
40  };
41 
43  {
44  void* buffer; // 00
46  std::uint32_t validFrameCount; // 0C
47  };
48  static_assert(sizeof(XAPO_PROCESS_BUFFER_PARAMETERS) == 0x10);
49 
50  struct __declspec(novtable) IXAPO : public IUnknown
51  {
52  public:
53  inline static constexpr auto RTTI = RTTI_IXAPO;
54 
55  // add
56  virtual std::int32_t GetRegistrationProperties(XAPO_REGISTRATION_PROPERTIES** a_registrationProperties) = 0; // 03
57  virtual std::int32_t IsInputFormatSupported(const WAVEFORMATEX* a_outputFormat, const WAVEFORMATEX* a_requestedInputFormat, WAVEFORMATEX** a_supportedInputFormat) = 0; // 04
58  virtual std::int32_t IsOutputFormatSupported(const WAVEFORMATEX* a_inputFormat, const WAVEFORMATEX* a_requestedOutputFormat, WAVEFORMATEX** a_supportedOutputFormat) = 0; // 05
59  virtual std::int32_t Initialize(const void* a_data, std::uint32_t a_dataByteSize) = 0; // 06
60  virtual void Reset() = 0; // 07
61  virtual std::int32_t LockForProcess(std::uint32_t a_inputLockedParameterCount, const XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* a_inputLockedParameters, std::uint32_t a_outputLockedParameterCount, const XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* a_outputLockedParameters) = 0; // 08
62  virtual void UnlockForProcess() = 0; // 09
63  virtual void Process(std::uint32_t a_inputProcessParameterCount, const XAPO_PROCESS_BUFFER_PARAMETERS* a_InputProcessParameters, std::uint32_t a_outputProcessParameterCount, XAPO_PROCESS_BUFFER_PARAMETERS* a_outputProcessParameters, BOOL a_isEnabled) = 0; // 0A
64  virtual std::uint32_t CalcInputFrames(std::uint32_t a_outputFrameCount) = 0; // 0B
65  virtual std::uint32_t CalcOutputFrames(std::uint32_t a_inputFrameCount) = 0; // 0C
66  };
67  static_assert(sizeof(IXAPO) == 0x8);
68 
69 #pragma pack(pop)
70 }
constexpr REL::ID Reset(26586)
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_IXAPO
Definition: Offsets_RTTI.h:5036
XAPO_BUFFER_FLAGS
Definition: XAPO.h:37
constexpr auto XAPO_REGISTRATION_STRING_LENGTH
Definition: XAPO.h:10
std::int32_t BOOL
Definition: XAPO.h:8
std::uint32_t maxFrameCount
Definition: XAPO.h:32
const WAVEFORMATEX * format
Definition: XAPO.h:31
XAPO_BUFFER_FLAGS bufferFlags
Definition: XAPO.h:45
void * buffer
Definition: XAPO.h:44
std::uint32_t validFrameCount
Definition: XAPO.h:46
wchar_t copyrightInfo[XAPO_REGISTRATION_STRING_LENGTH]
Definition: XAPO.h:18
std::uint32_t minorVersion
Definition: XAPO.h:20
std::uint32_t minInputBufferCount
Definition: XAPO.h:22
std::uint32_t minOutputBufferCount
Definition: XAPO.h:24
wchar_t friendlyName[XAPO_REGISTRATION_STRING_LENGTH]
Definition: XAPO.h:17
std::uint32_t majorVersion
Definition: XAPO.h:19
std::uint32_t maxOutputBufferCount
Definition: XAPO.h:25
std::uint32_t maxInputBufferCount
Definition: XAPO.h:23
WinAPI::CLSID clsid
Definition: XAPO.h:16
std::uint32_t flags
Definition: XAPO.h:21
Definition: AudioDefs.h:8
Definition: WinAPI.h:90