private void GetDeviceList()
        {
            var deviceRepo = new MMDeviceRepository();

            foreach (var mmDevice in deviceRepo.ToList())
            {
                WriteObject(new AudioDevice(mmDevice));
            }
        }
        private static MMDevice GetMMDevice(int index)
        {
            var deviceRepo = new MMDeviceRepository();

            var mmDevice = deviceRepo.Find(x => x.Index == index);

            if (mmDevice == null)
            {
                throw new ArgumentException("No enabled AudioDevice found with that Index");
            }

            return(mmDevice);
        }
        private static MMDevice GetMMDevice(AudioDevice inputObject)
        {
            var deviceRepo = new MMDeviceRepository();

            var mmDevice = deviceRepo.Find(x => x.Id == inputObject.Id);

            if (mmDevice == null)
            {
                throw new ArgumentException("No such enabled AudioDevice found");
            }

            return(mmDevice);
        }
        private void GetDeviceByIndex(int index)
        {
            var deviceRepo = new MMDeviceRepository();

            var mmDevice = deviceRepo.Find(x => x.Index == index);

            if (mmDevice == null)
            {
                throw new ArgumentException("No AudioDevice with that Index");
            }

            WriteObject(new AudioDevice(mmDevice));
        }
        private void GetDeviceById(string id)
        {
            var deviceRepo = new MMDeviceRepository();

            var mmDevice = deviceRepo.Find(x => x.Id == id);

            if (mmDevice == null)
            {
                throw new ArgumentException("No AudioDevice with that ID");
            }

            WriteObject(new AudioDevice(mmDevice));
        }