コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }