mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Further audio improvements, needs some trimming on CPU-usage
This commit is contained in:
parent
e5f1a940de
commit
6f3d00c8d4
@ -31,9 +31,6 @@ namespace Artemis.Managers
|
||||
_debugViewModel = debugViewModel;
|
||||
|
||||
// Setup timers
|
||||
//_loopTimer = new Timer(40);
|
||||
//_loopTimer.Elapsed += LoopTimerOnElapsed;
|
||||
//_loopTimer.Start();
|
||||
_loopTask = Task.Factory.StartNew(ProcessLoop);
|
||||
_logger.Info("Intialized LoopManager");
|
||||
}
|
||||
@ -48,8 +45,6 @@ namespace Artemis.Managers
|
||||
public void Dispose()
|
||||
{
|
||||
_loopTask.Dispose();
|
||||
//_loopTimer.Stop();
|
||||
//_loopTimer.Dispose();
|
||||
}
|
||||
|
||||
private void ProcessLoop()
|
||||
@ -72,20 +67,9 @@ namespace Artemis.Managers
|
||||
_logger.Warn(e, "Exception in render loop");
|
||||
}
|
||||
}
|
||||
// ReSharper disable once FunctionNeverReturns
|
||||
}
|
||||
|
||||
//private void LoopTimerOnElapsed(object sender, ElapsedEventArgs elapsedEventArgs)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// Render();
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// _logger.Warn(e, "Exception in render loop");
|
||||
// }
|
||||
//}
|
||||
|
||||
public Task StartAsync()
|
||||
{
|
||||
return Task.Run(() => Start());
|
||||
|
||||
@ -110,6 +110,11 @@ namespace Artemis.Managers
|
||||
Logger.Debug("Enabling program");
|
||||
ProgramEnabled = true;
|
||||
LoopManager.StartAsync();
|
||||
foreach (var overlayModule in ModuleManager.OverlayModules)
|
||||
{
|
||||
if (overlayModule.Settings.IsEnabled)
|
||||
overlayModule.Enable();
|
||||
}
|
||||
RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled));
|
||||
}
|
||||
|
||||
@ -119,6 +124,11 @@ namespace Artemis.Managers
|
||||
public void DisableProgram()
|
||||
{
|
||||
Logger.Debug("Disabling program");
|
||||
foreach (var overlayModule in ModuleManager.OverlayModules)
|
||||
{
|
||||
if (overlayModule.Settings.IsEnabled)
|
||||
overlayModule.Dispose();
|
||||
}
|
||||
LoopManager.Stop();
|
||||
ProgramEnabled = false;
|
||||
RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled));
|
||||
|
||||
@ -98,7 +98,8 @@ namespace Artemis.Modules.Abstract
|
||||
return;
|
||||
|
||||
ProfileModel = profileModel;
|
||||
ProfileModel?.Activate(_luaManager);
|
||||
if (!IsOverlay)
|
||||
ProfileModel?.Activate(_luaManager);
|
||||
if (ProfileModel != null)
|
||||
{
|
||||
Settings.LastProfile = ProfileModel.Name;
|
||||
|
||||
@ -31,8 +31,7 @@ namespace Artemis.Modules.General.GeneralProfile
|
||||
[MoonSharpUserData]
|
||||
public class Audio
|
||||
{
|
||||
public double Volume { get; set; }
|
||||
public double Peak { get; set; }
|
||||
public float Volume { get; set; }
|
||||
public AudioDevice Recording { get; set; } = new AudioDevice();
|
||||
public AudioDevice Playback { get; set; } = new AudioDevice();
|
||||
}
|
||||
|
||||
@ -93,9 +93,10 @@ namespace Artemis.Modules.General.GeneralProfile
|
||||
|
||||
private void UpdateAudio(GeneralProfileDataModel dataModel)
|
||||
{
|
||||
|
||||
var recording = AudioMeterInformation.FromDevice(_defaultRecording);
|
||||
var playback = AudioMeterInformation.FromDevice(_defaultPlayback);
|
||||
|
||||
dataModel.Audio.Volume = AudioEndpointVolume.FromDevice(_defaultPlayback).GetMasterVolumeLevelScalar();
|
||||
dataModel.Audio.Recording.OverallPeak = recording.PeakValue;
|
||||
for (var i = 0; i < recording.GetChannelsPeakValues(recording.MeteringChannelCount).Length; i++)
|
||||
{
|
||||
|
||||
@ -8,12 +8,12 @@ namespace Artemis.Modules.Overlays.OverlayProfile
|
||||
{
|
||||
public class OverlayProfileModel : ModuleModel
|
||||
{
|
||||
private readonly GeneralProfileModel _generalProfileModel;
|
||||
private readonly GeneralProfileModel _generalProfileModule;
|
||||
|
||||
public OverlayProfileModel(DeviceManager deviceManager, LuaManager luaManager,
|
||||
[Named(nameof(GeneralProfileModel))] ModuleModel generalProfileModel) : base(deviceManager, luaManager)
|
||||
[Named(nameof(GeneralProfileModel))] ModuleModel generalProfileModule) : base(deviceManager, luaManager)
|
||||
{
|
||||
_generalProfileModel = (GeneralProfileModel) generalProfileModel;
|
||||
_generalProfileModule = (GeneralProfileModel) generalProfileModule;
|
||||
Settings = SettingsProvider.Load<OverlayProfileSettings>();
|
||||
DataModel = new OverlayProfileDataModel();
|
||||
}
|
||||
@ -24,9 +24,11 @@ namespace Artemis.Modules.Overlays.OverlayProfile
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
// TODO: Find a clean way to update the parent profile model
|
||||
((OverlayProfileDataModel) DataModel).GeneralDataModel =
|
||||
(GeneralProfileDataModel) _generalProfileModel.DataModel;
|
||||
var dataModel = (OverlayProfileDataModel) DataModel;
|
||||
|
||||
if (!_generalProfileModule.IsInitialized)
|
||||
_generalProfileModule.Update();
|
||||
dataModel.GeneralDataModel = (GeneralProfileDataModel) _generalProfileModule.DataModel;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -32,10 +32,9 @@ namespace Artemis.Profiles.Layers.Types.Audio.AudioCapturing
|
||||
_volumeIndex = 0;
|
||||
_volumeTimer = new Timer(200);
|
||||
_volumeTimer.Elapsed += VolumeTimerOnElapsed;
|
||||
|
||||
Start();
|
||||
}
|
||||
|
||||
|
||||
public ILogger Logger { get; }
|
||||
public MMDevice Device { get; }
|
||||
public double DesiredAverage { get; set; }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user