// initialization private void Init() { settings = new SettingGroup("Audio Spectrum Settings", ""); selectedDevice = new Setting("Selected Device", "", SettingControl.Dropdown, SettingType.Text, ""); selectedDevice.configuration["options"] = new List <string>(); settings.settings.Add(selectedDevice); channelCount = new Setting("Channels", "", SettingControl.Numeric, SettingType.Integer, 8); channelCount.configuration["interval"] = 1; settings.settings.Add(channelCount); bool result = false; Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_UPDATETHREADS, false); result = Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero); if (!result) { throw new Exception("Init Error"); } for (int i = 0; i < BassWasapi.BASS_WASAPI_GetDeviceCount(); i++) { var device = BassWasapi.BASS_WASAPI_GetDeviceInfo(i); if (device.IsEnabled && device.IsLoopback) { //AudioSpectrumDevice audioDevice = new AudioSpectrumDevice(device,i); //this.Devices.Add(audioDevice); selectedDevice.configuration["options"].Add(string.Format("{0} - {1}", i, device.name)); } //Console.WriteLine(string.Format("{0} - {1}", i, device.name)); } settings.loadSettings(); if (!string.IsNullOrWhiteSpace(selectedDevice.settingValue)) { var str = (selectedDevice.settingValue as string); var array = str.Split(' '); int devindex = Convert.ToInt32(array[0]); var myDevice = BassWasapi.BASS_WASAPI_GetDeviceInfo(devindex); AudioSpectrumDevice audioDevice = new AudioSpectrumDevice(myDevice, devindex, (int)Math.Floor((double)channelCount.settingValue)); this.Devices.Add(audioDevice); } selectedDevice.PropertyChanged += SelectedDevice_PropertyChanged; }
public SC360_Plugin() { settings = new SettingGroup("General Settings", ""); Setting lowLatencyMode = new Setting("Low latency mode", "Extremely low latency and low system overhead, but does not support rumble.", SettingControl.Checkbox, SettingType.Bool, false); lowLatencyMode.descriptionVisibility = DescriptionVisibility.SubText; settings.settings.Add(lowLatencyMode); settings.loadSettings(); ApplicationMenuItem mymenu = new ApplicationMenuItem("XInput Test"); mymenu.Clicked += (s, e) => { Process.Start(Global.PluginsDirectory + "\\sc360\\XInputTest.exe"); }; Global.MainMenu.FirstOrDefault(m => m.Text == "Tools").Items.Add(mymenu); SC360Globals.scBus = new X360Device(); SC360Globals.PluginRef = this; SC360Globals.scBus.Start(); }
public iDualShock4_Plugin() { //Devices = new AsyncObservableCollection<InputDevice>(); settings = new SettingGroup("General Settings", ""); Setting lowLatencyMode = new Setting("Low latency mode", "Extremely low latency and low system overhead, but does not support rumble, trackpad or lightbar.", SettingControl.Checkbox, SettingType.Bool, false); lowLatencyMode.descriptionVisibility = DescriptionVisibility.SubText; settings.settings.Add(lowLatencyMode); Setting connectExclusively = new Setting("Connect Exclusively", "", SettingControl.Checkbox, SettingType.Bool, true); connectExclusively.descriptionVisibility = DescriptionVisibility.SubText; settings.settings.Add(connectExclusively); settings.loadSettings(); Global.HardwareChangeDetected += Global_HardwareChangeDetected; BackupDeviceListener = new Timer(CheckForDevices, null, 10, 3000); CheckForDevices(); }