using System; using System.Collections.Generic; using System.Linq; using System.Text; using Cosmos.Hardware2.Audio.Devices.Generic.Managers; namespace Cosmos.Hardware2.Audio.Devices { public abstract class GenericSoundCard { #region Construction private PCIDevice pciCard; private Cosmos.Kernel.MemoryAddressSpace mem; protected List dacs; protected List adcs; protected List uarts; #endregion public GenericSoundCard(PCIDevice device){ if (device == null) throw new ArgumentException("PCI Device is null. Unable to get "+this.GetType()+" card"); pciCard = device; mem = device.GetAddressSpace(1) as Cosmos.Kernel.MemoryAddressSpace; dacs = new List(); adcs = new List(); uarts = new List(); } public PCIDevice PCICard { get { return pciCard; } private set { ;} } #region Power and Initilization public abstract bool Disable(); public abstract bool Enable(); #endregion public abstract void playStream(PCMStream pcmStream); #region Helpers protected Cosmos.Kernel.MemoryAddressSpace getMemReference() { return mem; } #endregion } }