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"); }
public void Dispose() { if (Bassout != null) { Bassout.Dispose(); Bassout = null; } }