public void MapLights(DDJSB2.PioneerDDJSB2 ddjsb2) { var channels = new Voicemeeter.Levels.Channel[] { new Voicemeeter.Levels.Channel { // Check if Spotify is outputting audio LevelType = Voicemeeter.LevelType.PreFaderInput, ChannelNumber = 4 // Strip #3 - Left Audio }, new Voicemeeter.Levels.Channel { // Spotify Audio Level LevelType = Voicemeeter.LevelType.PostFaderInput, ChannelNumber = 4 // Strip #3 - Left Audio }, new Voicemeeter.Levels.Channel { // VoiceAttack Audio Level LevelType = Voicemeeter.LevelType.PostFaderInput, ChannelNumber = 2 // Strip #2 - Left Audio } }; // Subscribe to the levels from Voicemeeter var levels = new Voicemeeter.Levels(channels, 20); // Update every 20 miliseconds Disposables.Add(levels.Subscribe(x => LevelsUpdate(ddjsb2, x))); // Watch for changes var parameters = new Voicemeeter.Parameters(); Disposables.Add(parameters.Subscribe(x => ParametersUpdate(ddjsb2, x))); Disposables.Add(GameService.GameStatusObservable.Subscribe(x => Process(ddjsb2, x))); // Init //ddjsb2.LedControl(Leds.Deck.Deck1, Leds.PlayLed, false, GameService.GameStatusObservable.EliteAPI.Status.IsRunning); }
public async Task TestLevelSubscribe() { using (var _ = await VoiceMeeter.Remote.Initialize(Voicemeeter.RunVoicemeeterParam.VoicemeeterPotato).ConfigureAwait(false)) { var channels = new Voicemeeter.Levels.Channel[] { new Voicemeeter.Levels.Channel { LevelType = Voicemeeter.LevelType.Output, ChannelNumber = 0 } }; var results = new List <float>(); var levels = new Voicemeeter.Levels(channels, 20); var subscription = levels.Subscribe(x => results.Add(x[0])); await Task.Delay(1000); Assert.AreNotEqual(results.Count, 0); } }