1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-12 21:38:38 +00:00

Fixed volume bar colors and implemented color settings

This commit is contained in:
Robert Beekman 2016-01-09 20:34:57 +01:00
parent 85c725f1ea
commit a331bbae91
9 changed files with 137 additions and 23 deletions

View File

@ -4,6 +4,7 @@
<configSections>
<sectionGroup name="userSettings"
type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Artemis.Settings.VolumeDisplay" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="Artemis.Settings.AudioVisualization"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
allowExeDefinition="MachineToLocalUser" requirePermission="false" />
@ -25,6 +26,17 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<userSettings>
<Artemis.Settings.VolumeDisplay>
<setting name="MainColor" serializeAs="String">
<value>#FFFF2900</value>
</setting>
<setting name="SecondaryColor" serializeAs="String">
<value>#FF26F600</value>
</setting>
<setting name="Enabled" serializeAs="String">
<value>True</value>
</setting>
</Artemis.Settings.VolumeDisplay>
<Artemis.Settings.AudioVisualization>
<setting name="Sensitivity" serializeAs="String">
<value>4</value>

View File

@ -207,6 +207,11 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>TypeWave.settings</DependentUpon>
</Compile>
<Compile Include="Settings\VolumeDisplay.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>VolumeDisplay.settings</DependentUpon>
</Compile>
<Compile Include="Utilities\Audio\FftEventArgs.cs" />
<Compile Include="Utilities\Audio\SampleAggregator.cs" />
<Compile Include="Utilities\ColorHelpers.cs" />
@ -286,6 +291,10 @@
</EmbeddedResource>
<None Include="packages.config" />
<AppDesigner Include="Properties\" />
<None Include="Settings\VolumeDisplay.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>VolumeDisplay.Designer.cs</LastGenOutput>
</None>
<Resource Include="Resources\Entypo.ttf" />
<None Include="Settings\AudioVisualization.settings">
<Generator>SettingsSingleFileGenerator</Generator>

View File

@ -2,18 +2,22 @@
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using Artemis.Utilities;
using Artemis.Utilities.Keyboard;
namespace Artemis.Modules.Overlays.VolumeDisplay
{
public class VolumeDisplay
{
public VolumeDisplay()
public VolumeDisplay(VolumeDisplaySettings settings)
{
Settings = settings;
Transparancy = 255;
Scale = 4;
}
public VolumeDisplaySettings Settings { get; set; }
public int Scale { get; set; }
public int Ttl { get; set; }
@ -23,10 +27,12 @@ namespace Artemis.Modules.Overlays.VolumeDisplay
public void Draw(Graphics g)
{
var mainColor = Color.FromArgb(Transparancy, 0, 191, 255);
var secondaryColor = Color.FromArgb(Transparancy, 255, 0, 0);
var volumeRect = new KeyboardRectangle(Scale, 0, 0, (int) Math.Ceiling(((Scale*21)/100.00)*Volume),
8*Scale, new List<Color> {mainColor, secondaryColor}, LinearGradientMode.Horizontal);
var volumeRect = new KeyboardRectangle(Scale, 0, 0, (int) Math.Ceiling(((Scale*21)/100.00)*Volume), 8*Scale,
new List<Color>
{
ColorHelpers.MediaColorToDrawingColor(Settings.MainColor),
ColorHelpers.MediaColorToDrawingColor(Settings.SecondaryColor)
}, LinearGradientMode.Horizontal);
volumeRect.Draw(g);
}
}

View File

@ -22,7 +22,7 @@ namespace Artemis.Modules.Overlays.VolumeDisplay
Enabled = Settings.Enabled;
VolumeDisplay = new VolumeDisplay();
VolumeDisplay = new VolumeDisplay(settings);
}
public VolumeDisplay VolumeDisplay { get; set; }

View File

@ -1,4 +1,5 @@
using Artemis.Models;
using System.Windows.Media;
using Artemis.Models;
namespace Artemis.Modules.Overlays.VolumeDisplay
{
@ -10,27 +11,30 @@ namespace Artemis.Modules.Overlays.VolumeDisplay
}
public bool Enabled { get; set; }
public bool DisplayVolume { get; set; }
public bool DisplayPlayPause { get; set; }
public bool DisplayPreviousNext { get; set; }
public bool DisplayStop { get; set; }
public Color MainColor { get; set; }
public Color SecondaryColor { get; set; }
public override sealed void Load()
{
ToDefault();
Enabled = Settings.VolumeDisplay.Default.Enabled;
MainColor = Settings.VolumeDisplay.Default.MainColor;
SecondaryColor = Settings.VolumeDisplay.Default.SecondaryColor;
}
public override sealed void Save()
{
Settings.VolumeDisplay.Default.Enabled = Enabled;
Settings.VolumeDisplay.Default.MainColor = MainColor;
Settings.VolumeDisplay.Default.SecondaryColor = SecondaryColor;
Settings.VolumeDisplay.Default.Save();
}
public override sealed void ToDefault()
{
Enabled = true;
DisplayVolume = true;
DisplayPlayPause = true;
DisplayPreviousNext = true;
DisplayStop = true;
MainColor = Color.FromArgb(255, 38, 246, 0);
SecondaryColor = Color.FromArgb(255, 255, 41, 0);
}
}
}

View File

@ -40,16 +40,18 @@
<StackPanel Grid.Row="1"
Grid.Column="0"
HorizontalAlignment="Left">
<Label FontSize="16" Content="Volume bar color" Style="{DynamicResource DescriptionHeaderStyle}"
<Label FontSize="16" Content="Main color" Style="{DynamicResource DescriptionHeaderStyle}"
FontFamily="Segoe UI Semibold" Foreground="#535353" Width="134" HorizontalAlignment="Left" />
<xctk:ColorPicker x:Name="VolumeBarColor" Width="178" />
<xctk:ColorPicker x:Name="MainColor"
SelectedColor="{Binding Path=VolumeDisplaySettings.MainColor, Mode=TwoWay}" />
</StackPanel>
<StackPanel Grid.Row="1"
Grid.Column="1"
HorizontalAlignment="Left">
<Label FontSize="16" Content="Volume bar border color" Style="{DynamicResource DescriptionHeaderStyle}"
<Label FontSize="16" Content="Secondary color" Style="{DynamicResource DescriptionHeaderStyle}"
FontFamily="Segoe UI Semibold" Foreground="#535353" />
<xctk:ColorPicker x:Name="VolumeBarBorderColor" Width="178" HorizontalAlignment="Left" />
<xctk:ColorPicker x:Name="SecondaryColor"
SelectedColor="{Binding Path=VolumeDisplaySettings.SecondaryColor, Mode=TwoWay}" />
</StackPanel>
<StackPanel Grid.Column="0" Grid.Row="4" Orientation="Horizontal" VerticalAlignment="Bottom">

View File

@ -0,0 +1,62 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Artemis.Settings {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class VolumeDisplay : global::System.Configuration.ApplicationSettingsBase {
private static VolumeDisplay defaultInstance = ((VolumeDisplay)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new VolumeDisplay())));
public static VolumeDisplay Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("#FFFF2900")]
public global::System.Windows.Media.Color MainColor {
get {
return ((global::System.Windows.Media.Color)(this["MainColor"]));
}
set {
this["MainColor"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("#FF26F600")]
public global::System.Windows.Media.Color SecondaryColor {
get {
return ((global::System.Windows.Media.Color)(this["SecondaryColor"]));
}
set {
this["SecondaryColor"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool Enabled {
get {
return ((bool)(this["Enabled"]));
}
set {
this["Enabled"] = value;
}
}
}
}

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Artemis.Settings" GeneratedClassName="VolumeDisplay">
<Profiles />
<Settings>
<Setting Name="MainColor" Type="System.Windows.Media.Color" Scope="User">
<Value Profile="(Default)">#FFFF2900</Value>
</Setting>
<Setting Name="SecondaryColor" Type="System.Windows.Media.Color" Scope="User">
<Value Profile="(Default)">#FF26F600</Value>
</Setting>
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -130,10 +130,14 @@ namespace Artemis.Utilities.Keyboard
var baseRect = new Rectangle(X, Y, Width, Height);
var brushRect = new Rectangle((int) _rotationProgress, Y, baseRect.Width*2, baseRect.Height*2);
var baseBrush = new LinearGradientBrush(brushRect, Colors.First(), Colors.Last(), GradientMode)
{InterpolationColors = colorBlend};
g.FillRectangle(baseBrush, baseRect);
LinearGradientBrush baseBrush;
if (Colors.Count > 5)
baseBrush = new LinearGradientBrush(brushRect, Colors.First(), Colors.Skip(1).FirstOrDefault(),
GradientMode) {InterpolationColors = colorBlend};
else
baseBrush = new LinearGradientBrush(baseRect, Colors[0], Colors[1], GradientMode);
g.FillRectangle(baseBrush, baseRect);
if (!Rotate)
return;