示例#1
0
        public BASSOutput(OutputDevice.StreamProc proc, uint freq, uint chans, string preferredDeviceName, int buflen)
        {
            var outdev = GetInitializedBassRealOutputDevice();

            if (outdev == 0)
            {
                int deviceid = -1;
                var devices  = BASS.GetDevices();
                for (int i = 0; i < devices.Length; i++)
                {
                    var device = devices[i];
                    if (device.Name == preferredDeviceName)
                    {
                        deviceid = i;
                        Logger.Debug("Found preferred output device:" + device.ToString());
                        break;
                    }
                }
                BASS.BASS_Init(deviceid, freq, 1500);
                outdev = GetInitializedBassRealOutputDevice();
            }
            BASS.BASS_SetDevice(outdev);
            StreamProc = proc;
            Bassout    = new BASS.UserSampleStream(freq, chans, (x, y) => StreamProc(x, y), (BASS.Stream.StreamFlag.BASS_STREAM_FLOAT) | BASS.Stream.StreamFlag.BASS_STREAM_AUTOFREE);
            Logger.Debug("Use Float Output");
        }
示例#2
0
 public void Dispose()
 {
     if (Bassout != null)
     {
         Bassout.Dispose();
         Bassout = null;
     }
 }