// // 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.Sink { /// /// Sink context. /// public class SinkContext { /// /// Storage for . /// private BaseSink[] _sinks; /// /// The total sink count. /// private uint _sinkCount; /// /// Initialize the . /// /// The total sink count. public void Initialize(uint sinksCount) { _sinkCount = sinksCount; _sinks = new BaseSink[_sinkCount]; for (int i = 0; i < _sinkCount; i++) { _sinks[i] = new BaseSink(); } } /// /// Get the total sink count. /// /// The total sink count. public uint GetCount() { return _sinkCount; } /// /// Get a reference to a at the given . /// /// The index to use. /// A reference to a at the given . public ref BaseSink GetSink(int id) { Debug.Assert(id >= 0 && id < _sinkCount); return ref _sinks[id]; } } }