// // Copyright (c) 2019-2021 Ryujinx // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . // using System.Diagnostics; namespace Ryujinx.Audio.Renderer.Server.Effect { /// /// Effect context. /// public class EffectContext { /// /// Storage for . /// private BaseEffect[] _effects; /// /// The total effect count. /// private uint _effectCount; /// /// Create a new . /// public EffectContext() { _effects = null; _effectCount = 0; } /// /// Initialize the . /// /// The total effect count. public void Initialize(uint effectCount) { _effectCount = effectCount; _effects = new BaseEffect[effectCount]; for (int i = 0; i < _effectCount; i++) { _effects[i] = new BaseEffect(); } } /// /// Get the total effect count. /// /// The total effect count. public uint GetCount() { return _effectCount; } /// /// Get a reference to a at the given . /// /// The index to use. /// A reference to a at the given . public ref BaseEffect GetEffect(int index) { Debug.Assert(index >= 0 && index < _effectCount); return ref _effects[index]; } } }