示例#1
0
        public static string GetDeviceName(int device)
        {
            var caps = new WaveApi.WAVEOUTCAPS();

            WaveApi.waveOutGetDevCaps((IntPtr)device, out caps, Marshal.SizeOf(caps));
            return(caps.szPname);
        }
 public static IEnumerable<string> GetDevices()
 {
     var count = WaveApi.waveOutGetNumDevs();
     for (var index = 0; index < count; index++)
     {
         var caps = new WaveApi.WAVEOUTCAPS();
         WaveApi.waveOutGetDevCaps((IntPtr)index, out caps, Marshal.SizeOf(caps));
         yield return caps.szPname;
     }
 }
        public static int GetDeviceIndex(string device)
        {
            var count = WaveApi.waveOutGetNumDevs();

            var index = 0;
            var found = false;
            while (index < count && !found)
            {
                var caps = new WaveApi.WAVEOUTCAPS();
                WaveApi.waveOutGetDevCaps((IntPtr)index, out caps, Marshal.SizeOf(caps));

                if (caps.szPname == device)
                {
                    found = true;
                }
                else
                {
                    index++;
                }
            }

            return found ? index : -1;
        }