summaryrefslogtreecommitdiff
path: root/src/audio_core/effect_context.h
diff options
context:
space:
mode:
authorGravatar Levi2021-01-10 22:09:56 -0700
committerGravatar Levi2021-01-10 22:09:56 -0700
commit7a3c884e39fccfbb498b855080bffabc9ce2e7f1 (patch)
tree5056f9406dec188439cb0deb87603498243a9412 /src/audio_core/effect_context.h
parentMore forgetting... duh (diff)
parentMerge pull request #5229 from Morph1984/fullscreen-opt (diff)
downloadyuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.gz
yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.xz
yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.zip
Merge remote-tracking branch 'upstream/master' into int-flags
Diffstat (limited to 'src/audio_core/effect_context.h')
-rw-r--r--src/audio_core/effect_context.h53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/audio_core/effect_context.h b/src/audio_core/effect_context.h
index 2f2da72dd..c5e0b398c 100644
--- a/src/audio_core/effect_context.h
+++ b/src/audio_core/effect_context.h
@@ -166,13 +166,13 @@ public:
166 std::array<u8, 0xa0> raw; 166 std::array<u8, 0xa0> raw;
167 }; 167 };
168 }; 168 };
169 static_assert(sizeof(EffectInfo::InParams) == 0xc0, "InParams is an invalid size"); 169 static_assert(sizeof(InParams) == 0xc0, "InParams is an invalid size");
170 170
171 struct OutParams { 171 struct OutParams {
172 UsageStatus status{}; 172 UsageStatus status{};
173 INSERT_PADDING_BYTES(15); 173 INSERT_PADDING_BYTES(15);
174 }; 174 };
175 static_assert(sizeof(EffectInfo::OutParams) == 0x10, "OutParams is an invalid size"); 175 static_assert(sizeof(OutParams) == 0x10, "OutParams is an invalid size");
176}; 176};
177 177
178struct AuxAddress { 178struct AuxAddress {
@@ -184,16 +184,16 @@ struct AuxAddress {
184 184
185class EffectBase { 185class EffectBase {
186public: 186public:
187 EffectBase(EffectType effect_type); 187 explicit EffectBase(EffectType effect_type_);
188 ~EffectBase(); 188 virtual ~EffectBase();
189 189
190 virtual void Update(EffectInfo::InParams& in_params) = 0; 190 virtual void Update(EffectInfo::InParams& in_params) = 0;
191 virtual void UpdateForCommandGeneration() = 0; 191 virtual void UpdateForCommandGeneration() = 0;
192 UsageState GetUsage() const; 192 [[nodiscard]] UsageState GetUsage() const;
193 EffectType GetType() const; 193 [[nodiscard]] EffectType GetType() const;
194 bool IsEnabled() const; 194 [[nodiscard]] bool IsEnabled() const;
195 s32 GetMixID() const; 195 [[nodiscard]] s32 GetMixID() const;
196 s32 GetProcessingOrder() const; 196 [[nodiscard]] s32 GetProcessingOrder() const;
197 197
198protected: 198protected:
199 UsageState usage{UsageState::Invalid}; 199 UsageState usage{UsageState::Invalid};
@@ -206,8 +206,7 @@ protected:
206template <typename T> 206template <typename T>
207class EffectGeneric : public EffectBase { 207class EffectGeneric : public EffectBase {
208public: 208public:
209 EffectGeneric(EffectType effect_type) : EffectBase::EffectBase(effect_type) {} 209 explicit EffectGeneric(EffectType effect_type_) : EffectBase(effect_type_) {}
210 ~EffectGeneric() = default;
211 210
212 T& GetParams() { 211 T& GetParams() {
213 return internal_params; 212 return internal_params;
@@ -224,7 +223,7 @@ private:
224class EffectStubbed : public EffectBase { 223class EffectStubbed : public EffectBase {
225public: 224public:
226 explicit EffectStubbed(); 225 explicit EffectStubbed();
227 ~EffectStubbed(); 226 ~EffectStubbed() override;
228 227
229 void Update(EffectInfo::InParams& in_params) override; 228 void Update(EffectInfo::InParams& in_params) override;
230 void UpdateForCommandGeneration() override; 229 void UpdateForCommandGeneration() override;
@@ -233,7 +232,7 @@ public:
233class EffectI3dl2Reverb : public EffectGeneric<I3dl2ReverbParams> { 232class EffectI3dl2Reverb : public EffectGeneric<I3dl2ReverbParams> {
234public: 233public:
235 explicit EffectI3dl2Reverb(); 234 explicit EffectI3dl2Reverb();
236 ~EffectI3dl2Reverb(); 235 ~EffectI3dl2Reverb() override;
237 236
238 void Update(EffectInfo::InParams& in_params) override; 237 void Update(EffectInfo::InParams& in_params) override;
239 void UpdateForCommandGeneration() override; 238 void UpdateForCommandGeneration() override;
@@ -245,7 +244,7 @@ private:
245class EffectBiquadFilter : public EffectGeneric<BiquadFilterParams> { 244class EffectBiquadFilter : public EffectGeneric<BiquadFilterParams> {
246public: 245public:
247 explicit EffectBiquadFilter(); 246 explicit EffectBiquadFilter();
248 ~EffectBiquadFilter(); 247 ~EffectBiquadFilter() override;
249 248
250 void Update(EffectInfo::InParams& in_params) override; 249 void Update(EffectInfo::InParams& in_params) override;
251 void UpdateForCommandGeneration() override; 250 void UpdateForCommandGeneration() override;
@@ -254,14 +253,14 @@ public:
254class EffectAuxInfo : public EffectGeneric<AuxInfo> { 253class EffectAuxInfo : public EffectGeneric<AuxInfo> {
255public: 254public:
256 explicit EffectAuxInfo(); 255 explicit EffectAuxInfo();
257 ~EffectAuxInfo(); 256 ~EffectAuxInfo() override;
258 257
259 void Update(EffectInfo::InParams& in_params) override; 258 void Update(EffectInfo::InParams& in_params) override;
260 void UpdateForCommandGeneration() override; 259 void UpdateForCommandGeneration() override;
261 const VAddr GetSendInfo() const; 260 [[nodiscard]] VAddr GetSendInfo() const;
262 const VAddr GetSendBuffer() const; 261 [[nodiscard]] VAddr GetSendBuffer() const;
263 const VAddr GetRecvInfo() const; 262 [[nodiscard]] VAddr GetRecvInfo() const;
264 const VAddr GetRecvBuffer() const; 263 [[nodiscard]] VAddr GetRecvBuffer() const;
265 264
266private: 265private:
267 VAddr send_info{}; 266 VAddr send_info{};
@@ -275,7 +274,7 @@ private:
275class EffectDelay : public EffectGeneric<DelayParams> { 274class EffectDelay : public EffectGeneric<DelayParams> {
276public: 275public:
277 explicit EffectDelay(); 276 explicit EffectDelay();
278 ~EffectDelay(); 277 ~EffectDelay() override;
279 278
280 void Update(EffectInfo::InParams& in_params) override; 279 void Update(EffectInfo::InParams& in_params) override;
281 void UpdateForCommandGeneration() override; 280 void UpdateForCommandGeneration() override;
@@ -287,7 +286,7 @@ private:
287class EffectBufferMixer : public EffectGeneric<BufferMixerParams> { 286class EffectBufferMixer : public EffectGeneric<BufferMixerParams> {
288public: 287public:
289 explicit EffectBufferMixer(); 288 explicit EffectBufferMixer();
290 ~EffectBufferMixer(); 289 ~EffectBufferMixer() override;
291 290
292 void Update(EffectInfo::InParams& in_params) override; 291 void Update(EffectInfo::InParams& in_params) override;
293 void UpdateForCommandGeneration() override; 292 void UpdateForCommandGeneration() override;
@@ -296,7 +295,7 @@ public:
296class EffectReverb : public EffectGeneric<ReverbParams> { 295class EffectReverb : public EffectGeneric<ReverbParams> {
297public: 296public:
298 explicit EffectReverb(); 297 explicit EffectReverb();
299 ~EffectReverb(); 298 ~EffectReverb() override;
300 299
301 void Update(EffectInfo::InParams& in_params) override; 300 void Update(EffectInfo::InParams& in_params) override;
302 void UpdateForCommandGeneration() override; 301 void UpdateForCommandGeneration() override;
@@ -307,13 +306,13 @@ private:
307 306
308class EffectContext { 307class EffectContext {
309public: 308public:
310 explicit EffectContext(std::size_t effect_count); 309 explicit EffectContext(std::size_t effect_count_);
311 ~EffectContext(); 310 ~EffectContext();
312 311
313 std::size_t GetCount() const; 312 [[nodiscard]] std::size_t GetCount() const;
314 EffectBase* GetInfo(std::size_t i); 313 [[nodiscard]] EffectBase* GetInfo(std::size_t i);
315 EffectBase* RetargetEffect(std::size_t i, EffectType effect); 314 [[nodiscard]] EffectBase* RetargetEffect(std::size_t i, EffectType effect);
316 const EffectBase* GetInfo(std::size_t i) const; 315 [[nodiscard]] const EffectBase* GetInfo(std::size_t i) const;
317 316
318private: 317private:
319 std::size_t effect_count{}; 318 std::size_t effect_count{};