Пример #1
0
            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;
                }
            }
Пример #2
0
        internal override string GetDeviceDesc()
        {
            AsioDeviceInfo info;

            _DevsExist = BassAsio.GetDeviceInfo(AsioDevNum, out info);
            //return BassAsio.GetDeviceInfo(AsioDevNum).Name;
            return((_DevsExist.Value) ? info.Name : "");
        }
Пример #3
0
 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));
     }
 }
Пример #4
0
 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);
 }
Пример #5
0
        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
        }