-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathVolume.cs
50 lines (40 loc) · 2 KB
/
Volume.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using Aurora;
using Aurora.EffectsEngine;
using Aurora.Profiles;
using Aurora.Devices;
using Aurora.Utils;
using Aurora.Settings;
using System;
using System.Drawing;
using System.Collections.Generic;
using NAudio.CoreAudioApi;
public class VolumeScript : IEffectScript
{
MMDeviceEnumerator devEnum = new MMDeviceEnumerator();
MMDevice defaultDevice = null;
public string ID { get; private set; }
public KeySequence DefaultKeys = new KeySequence();
public VariableRegistry Properties { get; private set; }
public VolumeScript()
{
ID = "Volume Layer - Show every 10%";
Properties = new VariableRegistry();
//Create Properties
}
public object UpdateLights(VariableRegistry settings, IGameState state = null)
{
if (defaultDevice == null)
defaultDevice = devEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
Queue<EffectLayer> layers = new Queue<EffectLayer>();
EffectLayer layer = new EffectLayer(this.ID);
float currentVolume = defaultDevice.AudioEndpointVolume.MasterVolumeLevelScalar;
layer.PercentEffect(Color.White, Color.Transparent, new KeySequence(new[] { DeviceKeys.F1, DeviceKeys.F2, DeviceKeys.F3, DeviceKeys.F4, DeviceKeys.F5, DeviceKeys.F6, DeviceKeys.F7, DeviceKeys.F8, DeviceKeys.F9, DeviceKeys.F10, }), currentVolume % 10D, 1.0f, PercentEffectType.Progressive);
//layers.Enqueue(layer);
EffectLayer layer_2 = new EffectLayer(this.ID + " 2");
layer_2.PercentEffect(Color.FromArgb(255, 0, 0, 0), Color.Transparent, new KeySequence(new[] { DeviceKeys.F1, DeviceKeys.F2, DeviceKeys.F3, DeviceKeys.F4, DeviceKeys.F5, DeviceKeys.F6, DeviceKeys.F7, DeviceKeys.F8, DeviceKeys.F9, DeviceKeys.F10, }), currentVolume % 10D - 0.1f, 1.0f, PercentEffectType.Progressive);
//layers.Enqueue(layer_2);
EffectLayer layerMain = layer + layer_2;
layers.Enqueue(layerMain);
return layers.ToArray();
}
}