internal clsAsio(frmConfigBass frm) : base(frm) { //DevInfos = BassAsio.BASS_ASIO_GetDeviceInfos(); List <AsioDeviceInfo> listdevinfos = new List <AsioDeviceInfo>(); AsioDeviceInfo devinfo; for (int i = 0; BassAsio.GetDeviceInfo(i, out devinfo); i++) { listdevinfos.Add(devinfo); } DevInfos = listdevinfos.ToArray(); Frm.trkAsiodB.Value = Cfg.AsiodB; Frm.panNonAsio.Visible = false; Frm.lblAsiodB.Visible = true; Frm.trkAsiodB.Visible = true; if (DevInfos.Length > 0) { Frm.cmdAsioPanel.Visible = true; } else { Frm.cmdAsioPanel.Visible = false; Frm.cmdApply.Enabled = false; Frm.cmdConnectAll.Enabled = false; } }
internal override string GetDeviceDesc() { AsioDeviceInfo info; _DevsExist = BassAsio.GetDeviceInfo(AsioDevNum, out info); //return BassAsio.GetDeviceInfo(AsioDevNum).Name; return((_DevsExist.Value) ? info.Name : ""); }
private static IEnumerable <SelectionConfigurationOption> GetASIODevices() { for (int a = 0, b = BassAsio.DeviceCount; a < b; a++) { var deviceInfo = default(AsioDeviceInfo); BassAsioUtils.OK(BassAsio.GetDeviceInfo(a, out deviceInfo)); LogManager.Logger.Write(typeof(BassAsioStreamOutputConfiguration), LogLevel.Debug, "ASIO Device: {0} => {1} => {2}", a, deviceInfo.Name, deviceInfo.Driver); yield return(new SelectionConfigurationOption(deviceInfo.Name, deviceInfo.Name, deviceInfo.Driver)); } }
public static int GetAsioDevice(SelectionConfigurationOption option) { for (int a = 0, b = BassAsio.DeviceCount; a < b; a++) { var deviceInfo = default(AsioDeviceInfo); BassAsioUtils.OK(BassAsio.GetDeviceInfo(a, out deviceInfo)); if (string.Equals(deviceInfo.Name, option.Id, StringComparison.OrdinalIgnoreCase)) { return(a); } } return(ASIO_NO_DEVICE); }
internal clsBASSOutDevAsio() { //* create mixer stream //* get asio infos AsioDeviceInfo asiodevinfo = new AsioDeviceInfo(); BassAsio.GetDeviceInfo(AsioDevNum, out asiodevinfo); Debug.WriteLine("AsioDevInfo " + AsioDevNum + ": " + asiodevinfo.ToString()); AsioInfo asioinfo; bool ok = BassAsio.GetInfo(out asioinfo); if (!ok || asioinfo.Name == "") { Debug.WriteLine("No Asio Info"); } else { Debug.WriteLine("AsioInfo " + ": " + asioinfo.ToString()); } //AsioChannelInfo chaninfo = BassAsio.ChannelGetInfo(false, AsioDevNum); //if (chaninfo.Name == null || chaninfo.Name == "") Debug.WriteLine("No Asio Channel Info"); //else Debug.WriteLine("AsioChannelInfo " + ": " + chaninfo.ToString()); //* init //* no update - not played via BASS //* init nosound device Bass.Configure(Configuration.UpdatePeriod, 0); CheckOKHard(Bass.Init(0, 48000, 0, P.frmSC.Handle)); //44100 ignored (dev0=nosound/decode) //CheckOKHard(Bass.SetConfig(BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0)); //Bass.UpdatePeriod = 0; //* int mixer stream (no sound 2 channels=stereo) //MixerStream = TestBass.BASS_Mixer_StreamCreate(44100, 2, // BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_DECODE); MixerStream = CheckHandleHard(BassMix.CreateMixerStream(44100, 2, BassFlags.Decode)); //* init asio stream on asiodevnum (optional) //TestBass.BASS_ASIO_Init(AsioDevNum, BASSASIOInit.BASS_ASIO_DEFAULT); //(asiodev, flags) CheckOKHard(BassAsio.Init(AsioDevNum, AsioInitFlags.None)); //(asiodev, flags) Start(); //should be OK to start and add channels later }