添加项目文件。
4
.editorconfig
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[*.cs]
|
||||||
|
|
||||||
|
# IDE0059: 不需要赋值
|
||||||
|
csharp_style_unused_value_assignment_preference = unused_local_variable
|
||||||
BIN
.vs/AudioVisualizer/DesignTimeBuild/.dtbcache.v2
Normal file
BIN
.vs/AudioVisualizer/v17/.futdcache.v2
Normal file
BIN
.vs/AudioVisualizer/v17/.suo
Normal file
BIN
.vs/AudioVisualizer/v17/.wsuo
Normal file
3
.vs/ProjectSettings.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"CurrentProjectSetting": null
|
||||||
|
}
|
||||||
12
.vs/VSWorkspaceState.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"ExpandedNodes": [
|
||||||
|
"",
|
||||||
|
"\\AudioVisualizer",
|
||||||
|
"\\AudioVisualizer\\Resources",
|
||||||
|
"\\LibAudioVisualizer",
|
||||||
|
"\\LibDynamics",
|
||||||
|
"\\WpfAudioVisualizer"
|
||||||
|
],
|
||||||
|
"SelectedNode": "\\AudioVisualizer\\ConfigurationObject.cs",
|
||||||
|
"PreviewInSolutionExplorer": false
|
||||||
|
}
|
||||||
BIN
.vs/slnx.sqlite
Normal file
107
AudioVisualizer.sln
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.3.32929.385
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfAudioVisualizer", "WpfAudioVisualizer\WpfAudioVisualizer.csproj", "{459FE289-A8E1-4BEC-9113-FC42B9CE9436}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibAudioVisualizer", "LibAudioVisualizer\LibAudioVisualizer.csproj", "{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioVisualizerDx", "AudioVisualizerDx\AudioVisualizerDx.csproj", "{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F54E0AE6-96AB-42EA-AFD1-37F1BCBAD304}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.editorconfig = .editorconfig
|
||||||
|
readme.md = readme.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioVisualizerGL", "AudioVisualizerGL\AudioVisualizerGL.csproj", "{EC24D98A-2776-400D-8494-7B8C954EAF84}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioVisualizerDxDesktop", "AudioVisualizerDxDesktop\AudioVisualizerDxDesktop.csproj", "{4398D445-4BE7-4671-83C1-BA7320BEF1EE}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibDynamics", "LibDynamics\LibDynamics.csproj", "{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioWallpaperManager", "AudioWallpaperManager\AudioWallpaperManager.csproj", "{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioWallpaper", "AudioVisualizer\AudioWallpaper.csproj", "{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{459FE289-A8E1-4BEC-9113-FC42B9CE9436}.Release|x64.Build.0 = Release|x64
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{15A2D4B9-BD52-411F-96E9-2BFACFEC4579}.Release|x64.Build.0 = Release|x64
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{20B17F7E-11C3-4E46-9E79-DE9A3B25B640}.Release|x64.Build.0 = Release|x64
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{EC24D98A-2776-400D-8494-7B8C954EAF84}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4398D445-4BE7-4671-83C1-BA7320BEF1EE}.Release|x64.Build.0 = Release|x64
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{F31F51C2-25D8-4AF1-891C-01087BB7E5EC}.Release|x64.Build.0 = Release|x64
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{E77BF32B-9AEF-4BE3-A1BD-4A13533E02B5}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4DFEE2A6-2CE7-4A35-A2A9-0EF33D32F6FE}.Release|x64.Build.0 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {5339D678-7325-4FD8-A49D-47B54E59D8E6}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
57
AudioVisualizer/AppBarManager.cs
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using static AudioWallpaper.Win32;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public class AppBarManager {
|
||||||
|
private const int ABM_NEW = 0x00000000;
|
||||||
|
private const int ABM_REMOVE = 0x00000001;
|
||||||
|
private const int ABM_QUERYPOS = 0x00000002;
|
||||||
|
private const int ABM_SETPOS = 0x00000003;
|
||||||
|
private const int ABM_GETSTATE = 0x00000004;
|
||||||
|
private const int ABM_GETTASKBARPOS = 0x00000005;
|
||||||
|
private const int ABM_ACTIVATE = 0x00000006;
|
||||||
|
private const int ABM_GETAUTOHIDEBAR = 0x00000007;
|
||||||
|
private const int ABM_SETAUTOHIDEBAR = 0x00000008;
|
||||||
|
private const int ABM_WINDOWPOSCHANGED = 0x00000009;
|
||||||
|
private const int ABM_SETSTATE = 0x0000000A;
|
||||||
|
|
||||||
|
private const int ABS_AUTOHIDE = 0x0000001;
|
||||||
|
private const int ABS_ALWAYSONTOP = 0x0000002;
|
||||||
|
|
||||||
|
private const int ABN_STATECHANGE = 0x0000000;
|
||||||
|
private const int ABN_POSCHANGED = 0x0000001;
|
||||||
|
public const int ABN_FULLSCREENAPP = 0x0000002;
|
||||||
|
private const int ABN_WINDOWARRANGE = 0x0000003;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private IntPtr hWnd;
|
||||||
|
public uint uCallbackMessage;
|
||||||
|
|
||||||
|
public AppBarManager(IntPtr hWnd) {
|
||||||
|
this.hWnd = hWnd;
|
||||||
|
uCallbackMessage = RegisterCallbackMessage();
|
||||||
|
|
||||||
|
APPBARDATA abd = new APPBARDATA();
|
||||||
|
abd.cbSize = Marshal.SizeOf(typeof(APPBARDATA));
|
||||||
|
abd.hWnd = hWnd;
|
||||||
|
abd.uCallbackMessage = uCallbackMessage;
|
||||||
|
|
||||||
|
SHAppBarMessage(ABM_NEW, ref abd);
|
||||||
|
}
|
||||||
|
public void Dispose() {
|
||||||
|
APPBARDATA abd = new APPBARDATA();
|
||||||
|
abd.cbSize = Marshal.SizeOf(typeof(APPBARDATA));
|
||||||
|
abd.hWnd = hWnd;
|
||||||
|
|
||||||
|
SHAppBarMessage(ABM_REMOVE, ref abd);
|
||||||
|
}
|
||||||
|
|
||||||
|
public uint RegisterCallbackMessage() {
|
||||||
|
// 注册一个自定义的消息编号,用于AppBar消息
|
||||||
|
string uniqueMessageString = "AppBarMessage" + Guid.NewGuid().ToString();
|
||||||
|
return RegisterWindowMessage(uniqueMessageString);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
43
AudioVisualizer/AudioVisualizer.csproj
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>net6.0-windows</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<ApplicationIcon>FM-channel.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="FM-channel.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NAudio" Version="2.1.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\LibAudioVisualizer\LibAudioVisualizer.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Update="Properties\Resources.Designer.cs">
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Update="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Resources\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
52
AudioVisualizer/AudioWallpaper.csproj
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>net8.0-windows10.0.17763.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<ApplicationIcon>FM-channel.ico</ApplicationIcon>
|
||||||
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
|
<AssemblyVersion>1.2.2</AssemblyVersion>
|
||||||
|
<FileVersion>1.2.2</FileVersion>
|
||||||
|
<Version>1.2.2</Version>
|
||||||
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
|
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
|
||||||
|
<Nowarn>$(Nowarn);SYSLIB0011</Nowarn>
|
||||||
|
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
|
||||||
|
|
||||||
|
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="FM-channel.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="LibVLCSharp.WinForms" Version="3.8.2" />
|
||||||
|
<PackageReference Include="NAudio" Version="2.2.1" />
|
||||||
|
<PackageReference Include="System.Management" Version="8.0.0" />
|
||||||
|
<PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.20" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\LibAudioVisualizer\LibAudioVisualizer.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Update="Properties\Resources.Designer.cs">
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Update="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
23
AudioVisualizer/AudioWallpaper.csproj.user
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<_LastSelectedProfileId>H:\S1\C#\AudioVisualizer\AudioVisualizer\Properties\PublishProfiles\默认win10 64 依赖框架.pubxml</_LastSelectedProfileId>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Update="MainWindow.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Update="MyPanel.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Update="SetForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Update="VersionInformationForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Update="VideoWallpaperWindow.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
159
AudioVisualizer/ConfigurationObject.cs
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
using AudioWallpaper;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
public class ConfigurationObject {
|
||||||
|
/// <summary>
|
||||||
|
/// 律动默认激进倍率
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultRadical = 2f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认频谱偏移量
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultOffset = 0.4f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认傅里叶变化量
|
||||||
|
/// </summary>
|
||||||
|
public int DefaultFourierVariation = 512;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultColor = Color.Blue;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认停止颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultStopColor = Color.Red;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用系统默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public bool UseDefaultColorOrNOt = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色数量
|
||||||
|
/// </summary>
|
||||||
|
public int NumberOfColors = 256;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否单色显示
|
||||||
|
/// </summary>
|
||||||
|
public bool MonochromeOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认背景颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color BackgroundColor = Color.Black;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用背景图
|
||||||
|
/// </summary>
|
||||||
|
public bool BackImgOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 背景图片地址
|
||||||
|
/// </summary>
|
||||||
|
public String? BackgroundImagePath = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出波浪线
|
||||||
|
/// </summary>
|
||||||
|
public bool WavyLine = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出边框
|
||||||
|
/// </summary>
|
||||||
|
public bool Frame = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出中间圆形
|
||||||
|
/// </summary>
|
||||||
|
public bool Rotundity = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出底边条形
|
||||||
|
/// </summary>
|
||||||
|
public bool Stripe = true;
|
||||||
|
|
||||||
|
|
||||||
|
public String DefaultConfiguration = "DefaultConfiguration";
|
||||||
|
|
||||||
|
public bool SaveConfiguration(String configFilePath) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
|
||||||
|
#region 将配置文件添加到配置工具对象中
|
||||||
|
//默认律动激进倍率
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultRadical", DefaultRadical.ToString());
|
||||||
|
//默认频谱偏移量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultOffset", DefaultOffset.ToString());
|
||||||
|
//默认傅里叶变化量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultFourierVariation", DefaultFourierVariation.ToString());
|
||||||
|
//默认开始颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultColor", ColorTranslator.ToHtml(DefaultColor));
|
||||||
|
//默认停止颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultStopColor", ColorTranslator.ToHtml(DefaultStopColor));
|
||||||
|
//是否使用默认颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "UseDefaultColorOrNOt", UseDefaultColorOrNOt.ToString());
|
||||||
|
//颜色数量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "NumberOfColors", NumberOfColors.ToString());
|
||||||
|
//是否单色显示
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "MonochromeOrNot", MonochromeOrNot.ToString());
|
||||||
|
//默认背景颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackgroundColor", ColorTranslator.ToHtml(BackgroundColor));
|
||||||
|
//是否使用背景图
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackImgOrNot", BackImgOrNot.ToString());
|
||||||
|
//背景图地址
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackgroundImagePath", BackgroundImagePath);
|
||||||
|
//是否画出波浪线
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "WavyLine", WavyLine.ToString());
|
||||||
|
//是否画出边框
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Frame", Frame.ToString());
|
||||||
|
//是否画出中间圆形
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Rotundity", Rotundity.ToString());
|
||||||
|
//是否画出底边条形
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Stripe", Stripe.ToString());
|
||||||
|
#endregion
|
||||||
|
//保存配置
|
||||||
|
configurationTools.SaveSettings();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public ConfigurationObject LoadConfiguration(String configFilePath) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
#region 为配置对象添加配置
|
||||||
|
try {
|
||||||
|
//默认律动激进倍率
|
||||||
|
DefaultRadical = float.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultRadical"));
|
||||||
|
//默认频谱偏移量
|
||||||
|
DefaultOffset = float.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultOffset"));
|
||||||
|
//默认傅里叶变化量
|
||||||
|
DefaultFourierVariation = int.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultFourierVariation"));
|
||||||
|
//默认颜色
|
||||||
|
DefaultColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "DefaultColor"));
|
||||||
|
//默认停止颜色
|
||||||
|
DefaultStopColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "DefaultStopColor"));
|
||||||
|
//是否使用默认颜色
|
||||||
|
UseDefaultColorOrNOt = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "UseDefaultColorOrNOt"));
|
||||||
|
//颜色数量
|
||||||
|
NumberOfColors = int.Parse(configurationTools.GetSetting(DefaultConfiguration, "NumberOfColors"));
|
||||||
|
//是否单色显示
|
||||||
|
MonochromeOrNot = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "MonochromeOrNot"));
|
||||||
|
//默认背景颜色
|
||||||
|
BackgroundColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "BackgroundColor"));
|
||||||
|
//是否使用背景图
|
||||||
|
BackImgOrNot = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "BackImgOrNot"));
|
||||||
|
//背景图地址
|
||||||
|
BackgroundImagePath = configurationTools.GetSetting(DefaultConfiguration, "BackgroundImagePath");
|
||||||
|
//是否画出波浪线
|
||||||
|
WavyLine = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "WavyLine"));
|
||||||
|
//是否画出边框
|
||||||
|
Frame = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Frame"));
|
||||||
|
//是否画出中间圆形
|
||||||
|
Rotundity = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Rotundity"));
|
||||||
|
//是否画出底边条形
|
||||||
|
Stripe = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Stripe"));
|
||||||
|
#endregion
|
||||||
|
} catch (Exception) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
163
AudioVisualizer/ConfigurationObject.cs.orig
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
using AudioWallpaper;
|
||||||
|
using System;
|
||||||
|
=======
|
||||||
|
using System;
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
public class ConfigurationObject {
|
||||||
|
/// <summary>
|
||||||
|
/// 律动默认激进倍率
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultRadical = 2f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认频谱偏移量
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultOffset = 0.4f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认傅里叶变化量
|
||||||
|
/// </summary>
|
||||||
|
public int DefaultFourierVariation = 512;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultColor = Color.Blue;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认停止颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultStopColor = Color.Red;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用系统默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public bool UseDefaultColorOrNOt = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色数量
|
||||||
|
/// </summary>
|
||||||
|
public int NumberOfColors = 256;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否单色显示
|
||||||
|
/// </summary>
|
||||||
|
public bool MonochromeOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认背景颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color BackgroundColor = Color.Black;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用背景图
|
||||||
|
/// </summary>
|
||||||
|
public bool BackImgOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 背景图片地址
|
||||||
|
/// </summary>
|
||||||
|
public String? BackgroundImagePath = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出波浪线
|
||||||
|
/// </summary>
|
||||||
|
public bool WavyLine = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出边框
|
||||||
|
/// </summary>
|
||||||
|
public bool Frame = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出中间圆形
|
||||||
|
/// </summary>
|
||||||
|
public bool Rotundity = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出底边条形
|
||||||
|
/// </summary>
|
||||||
|
public bool Stripe = true;
|
||||||
|
|
||||||
|
|
||||||
|
public String DefaultConfiguration = "DefaultConfiguration";
|
||||||
|
|
||||||
|
public bool SaveConfiguration(String configFilePath) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
|
||||||
|
#region 将配置文件添加到配置工具对象中
|
||||||
|
//默认律动激进倍率
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultRadical", DefaultRadical.ToString());
|
||||||
|
//默认频谱偏移量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultOffset", DefaultOffset.ToString());
|
||||||
|
//默认傅里叶变化量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultFourierVariation", DefaultFourierVariation.ToString());
|
||||||
|
//默认开始颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultColor", ColorTranslator.ToHtml(DefaultColor));
|
||||||
|
//默认停止颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "DefaultStopColor", ColorTranslator.ToHtml(DefaultStopColor));
|
||||||
|
//是否使用默认颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "UseDefaultColorOrNOt", UseDefaultColorOrNOt.ToString());
|
||||||
|
//颜色数量
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "NumberOfColors", NumberOfColors.ToString());
|
||||||
|
//是否单色显示
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "MonochromeOrNot", MonochromeOrNot.ToString());
|
||||||
|
//默认背景颜色
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackgroundColor", ColorTranslator.ToHtml(BackgroundColor));
|
||||||
|
//是否使用背景图
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackImgOrNot", BackImgOrNot.ToString());
|
||||||
|
//背景图地址
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "BackgroundImagePath", BackgroundImagePath);
|
||||||
|
//是否画出波浪线
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "WavyLine", WavyLine.ToString());
|
||||||
|
//是否画出边框
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Frame", Frame.ToString());
|
||||||
|
//是否画出中间圆形
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Rotundity", Rotundity.ToString());
|
||||||
|
//是否画出底边条形
|
||||||
|
configurationTools.AddSetting(DefaultConfiguration, "Stripe", Stripe.ToString());
|
||||||
|
#endregion
|
||||||
|
//保存配置
|
||||||
|
configurationTools.SaveSettings();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public ConfigurationObject LoadConfiguration(String configFilePath) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
#region 为配置对象添加配置
|
||||||
|
try {
|
||||||
|
//默认律动激进倍率
|
||||||
|
DefaultRadical = float.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultRadical"));
|
||||||
|
//默认频谱偏移量
|
||||||
|
DefaultOffset = float.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultOffset"));
|
||||||
|
//默认傅里叶变化量
|
||||||
|
DefaultFourierVariation = int.Parse(configurationTools.GetSetting(DefaultConfiguration, "DefaultFourierVariation"));
|
||||||
|
//默认颜色
|
||||||
|
DefaultColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "DefaultColor"));
|
||||||
|
//默认停止颜色
|
||||||
|
DefaultStopColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "DefaultStopColor"));
|
||||||
|
//是否使用默认颜色
|
||||||
|
UseDefaultColorOrNOt = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "UseDefaultColorOrNOt"));
|
||||||
|
//颜色数量
|
||||||
|
NumberOfColors = int.Parse(configurationTools.GetSetting(DefaultConfiguration, "NumberOfColors"));
|
||||||
|
//是否单色显示
|
||||||
|
MonochromeOrNot = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "MonochromeOrNot"));
|
||||||
|
//默认背景颜色
|
||||||
|
BackgroundColor = ColorTranslator.FromHtml(configurationTools.GetSetting(DefaultConfiguration, "BackgroundColor"));
|
||||||
|
//是否使用背景图
|
||||||
|
BackImgOrNot = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "BackImgOrNot"));
|
||||||
|
//背景图地址
|
||||||
|
BackgroundImagePath = configurationTools.GetSetting(DefaultConfiguration, "BackgroundImagePath");
|
||||||
|
//是否画出波浪线
|
||||||
|
WavyLine = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "WavyLine"));
|
||||||
|
//是否画出边框
|
||||||
|
Frame = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Frame"));
|
||||||
|
//是否画出中间圆形
|
||||||
|
Rotundity = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Rotundity"));
|
||||||
|
//是否画出底边条形
|
||||||
|
Stripe = Convert.ToBoolean(configurationTools.GetSetting(DefaultConfiguration, "Stripe"));
|
||||||
|
#endregion
|
||||||
|
} catch (Exception) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
162
AudioVisualizer/ConfigurationTools.cs
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public class ConfigurationTools {
|
||||||
|
private Hashtable keyPairs = new Hashtable();
|
||||||
|
private String iniFilePath;
|
||||||
|
private struct SectionPair {
|
||||||
|
public String Section;
|
||||||
|
public String Key;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 在给定的路径上打开INI文件并枚举IniParser中的值。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="iniPath">Full path to INI file.</param>
|
||||||
|
public ConfigurationTools(String iniPath) {
|
||||||
|
TextReader iniFile = null;
|
||||||
|
String strLine = null;
|
||||||
|
String currentRoot = null;
|
||||||
|
String[] keyPair = null;
|
||||||
|
iniFilePath = iniPath;
|
||||||
|
if (File.Exists(iniPath)) {
|
||||||
|
try {
|
||||||
|
iniFile = new StreamReader(iniPath);
|
||||||
|
strLine = iniFile.ReadLine();
|
||||||
|
while (strLine != null) {
|
||||||
|
strLine = strLine.Trim().ToUpper();
|
||||||
|
if (strLine != "") {
|
||||||
|
if (strLine.StartsWith("[") && strLine.EndsWith("]")) {
|
||||||
|
currentRoot = strLine.Substring(1, strLine.Length - 2);
|
||||||
|
} else {
|
||||||
|
keyPair = strLine.Split(new char[] { '=' }, 2);
|
||||||
|
SectionPair sectionPair;
|
||||||
|
String value = null;
|
||||||
|
if (currentRoot == null)
|
||||||
|
currentRoot = "ROOT";
|
||||||
|
sectionPair.Section = currentRoot;
|
||||||
|
sectionPair.Key = keyPair[0];
|
||||||
|
if (keyPair.Length > 1)
|
||||||
|
value = keyPair[1];
|
||||||
|
keyPairs.Add(sectionPair, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strLine = iniFile.ReadLine();
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
} finally {
|
||||||
|
if (iniFile != null)
|
||||||
|
iniFile.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 返回给定section的值,key对。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section name</param>
|
||||||
|
/// <param name="settingName">Key name</param>
|
||||||
|
public String GetSetting(String sectionName, String settingName) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
return (String)keyPairs[sectionPair];
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 列出给定的Section的所有行
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to enum.</param>
|
||||||
|
public String[] EnumSection(String sectionName) {
|
||||||
|
ArrayList tmpArray = new ArrayList();
|
||||||
|
foreach (SectionPair pair in keyPairs.Keys) {
|
||||||
|
if (pair.Section == sectionName.ToUpper())
|
||||||
|
tmpArray.Add(pair.Key);
|
||||||
|
}
|
||||||
|
return (String[])tmpArray.ToArray(typeof(String));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 向要保存的表添加或替换设置。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to add under.</param>
|
||||||
|
/// <param name="settingName">Key name to add.</param>
|
||||||
|
/// <param name="settingValue">Value of key.</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName, String settingValue) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
if (keyPairs.ContainsKey(sectionPair))
|
||||||
|
keyPairs.Remove(sectionPair);
|
||||||
|
keyPairs.Add(sectionPair, settingValue);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 向要保存的表添加或替换设置,提供复写内容是否为大写
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to add under.</param>
|
||||||
|
/// <param name="settingName">Key name to add.</param>
|
||||||
|
/// <param name="settingValue">Value of key.</param>
|
||||||
|
/// <param name="isUpper">Value is upper . true:upper;false do not change</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName, String settingValue, bool isUpper) {
|
||||||
|
SectionPair pair;
|
||||||
|
pair.Section = sectionName.ToUpper();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用空值添加或替换要保存的表的设置。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section</param>
|
||||||
|
/// <param name="settingName">Key</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName) {
|
||||||
|
AddSetting(sectionName, settingName, null);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除设置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">指定Section</param>
|
||||||
|
/// <param name="settingName">添加的Key</param>
|
||||||
|
public void DeleteSetting(String sectionName, String settingName) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
if (keyPairs.ContainsKey(sectionPair))
|
||||||
|
keyPairs.Remove(sectionPair);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 保存设置到新文件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newFilePath">新的文件路径。</param>
|
||||||
|
public void SaveSettings(String newFilePath) {
|
||||||
|
ArrayList sections = new ArrayList();
|
||||||
|
String tmpValue = "";
|
||||||
|
String strToSave = "";
|
||||||
|
foreach (SectionPair sectionPair in keyPairs.Keys) {
|
||||||
|
if (!sections.Contains(sectionPair.Section))
|
||||||
|
sections.Add(sectionPair.Section);
|
||||||
|
}
|
||||||
|
foreach (String section in sections) {
|
||||||
|
strToSave += ("[" + section + "]\r\n");
|
||||||
|
foreach (SectionPair sectionPair in keyPairs.Keys) {
|
||||||
|
if (sectionPair.Section == section) {
|
||||||
|
tmpValue = (String)keyPairs[sectionPair];
|
||||||
|
if (tmpValue != null)
|
||||||
|
tmpValue = "=" + tmpValue;
|
||||||
|
strToSave += (sectionPair.Key + tmpValue + "\r\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strToSave += "\r\n";
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
TextWriter tw = new StreamWriter(newFilePath);
|
||||||
|
tw.Write(strToSave);
|
||||||
|
tw.Close();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 将设置保存回ini文件。
|
||||||
|
/// </summary>
|
||||||
|
public void SaveSettings() {
|
||||||
|
SaveSettings(iniFilePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
174
AudioVisualizer/ConfigurationTools.cs.orig
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
=======
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.IO;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
public class ConfigurationTools {
|
||||||
|
private Hashtable keyPairs = new Hashtable();
|
||||||
|
private String iniFilePath;
|
||||||
|
private struct SectionPair {
|
||||||
|
public String Section;
|
||||||
|
public String Key;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 在给定的路径上打开INI文件并枚举IniParser中的值。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="iniPath">Full path to INI file.</param>
|
||||||
|
public ConfigurationTools(String iniPath) {
|
||||||
|
TextReader iniFile = null;
|
||||||
|
String strLine = null;
|
||||||
|
String currentRoot = null;
|
||||||
|
String[] keyPair = null;
|
||||||
|
iniFilePath = iniPath;
|
||||||
|
if (File.Exists(iniPath)) {
|
||||||
|
try {
|
||||||
|
iniFile = new StreamReader(iniPath);
|
||||||
|
strLine = iniFile.ReadLine();
|
||||||
|
while (strLine != null) {
|
||||||
|
strLine = strLine.Trim().ToUpper();
|
||||||
|
if (strLine != "") {
|
||||||
|
if (strLine.StartsWith("[") && strLine.EndsWith("]")) {
|
||||||
|
currentRoot = strLine.Substring(1, strLine.Length - 2);
|
||||||
|
} else {
|
||||||
|
keyPair = strLine.Split(new char[] { '=' }, 2);
|
||||||
|
SectionPair sectionPair;
|
||||||
|
String value = null;
|
||||||
|
if (currentRoot == null)
|
||||||
|
currentRoot = "ROOT";
|
||||||
|
sectionPair.Section = currentRoot;
|
||||||
|
sectionPair.Key = keyPair[0];
|
||||||
|
if (keyPair.Length > 1)
|
||||||
|
value = keyPair[1];
|
||||||
|
keyPairs.Add(sectionPair, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strLine = iniFile.ReadLine();
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
} finally {
|
||||||
|
if (iniFile != null)
|
||||||
|
iniFile.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 返回给定section的值,key对。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section name</param>
|
||||||
|
/// <param name="settingName">Key name</param>
|
||||||
|
public String GetSetting(String sectionName, String settingName) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
return (String)keyPairs[sectionPair];
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 列出给定的Section的所有行
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to enum.</param>
|
||||||
|
public String[] EnumSection(String sectionName) {
|
||||||
|
ArrayList tmpArray = new ArrayList();
|
||||||
|
foreach (SectionPair pair in keyPairs.Keys) {
|
||||||
|
if (pair.Section == sectionName.ToUpper())
|
||||||
|
tmpArray.Add(pair.Key);
|
||||||
|
}
|
||||||
|
return (String[])tmpArray.ToArray(typeof(String));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 向要保存的表添加或替换设置。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to add under.</param>
|
||||||
|
/// <param name="settingName">Key name to add.</param>
|
||||||
|
/// <param name="settingValue">Value of key.</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName, String settingValue) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
if (keyPairs.ContainsKey(sectionPair))
|
||||||
|
keyPairs.Remove(sectionPair);
|
||||||
|
keyPairs.Add(sectionPair, settingValue);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
/// 向要保存的表添加或替换设置,提供复写内容是否为大写
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section to add under.</param>
|
||||||
|
/// <param name="settingName">Key name to add.</param>
|
||||||
|
/// <param name="settingValue">Value of key.</param>
|
||||||
|
/// <param name="isUpper">Value is upper . true:upper;false do not change</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName, String settingValue, bool isUpper) {
|
||||||
|
SectionPair pair;
|
||||||
|
pair.Section = sectionName.ToUpper();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
/// 用空值添加或替换要保存的表的设置。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">Section</param>
|
||||||
|
/// <param name="settingName">Key</param>
|
||||||
|
public void AddSetting(String sectionName, String settingName) {
|
||||||
|
AddSetting(sectionName, settingName, null);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除设置
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sectionName">指定Section</param>
|
||||||
|
/// <param name="settingName">添加的Key</param>
|
||||||
|
public void DeleteSetting(String sectionName, String settingName) {
|
||||||
|
SectionPair sectionPair;
|
||||||
|
sectionPair.Section = sectionName.ToUpper();
|
||||||
|
sectionPair.Key = settingName.ToUpper();
|
||||||
|
if (keyPairs.ContainsKey(sectionPair))
|
||||||
|
keyPairs.Remove(sectionPair);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 保存设置到新文件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newFilePath">新的文件路径。</param>
|
||||||
|
public void SaveSettings(String newFilePath) {
|
||||||
|
ArrayList sections = new ArrayList();
|
||||||
|
String tmpValue = "";
|
||||||
|
String strToSave = "";
|
||||||
|
foreach (SectionPair sectionPair in keyPairs.Keys) {
|
||||||
|
if (!sections.Contains(sectionPair.Section))
|
||||||
|
sections.Add(sectionPair.Section);
|
||||||
|
}
|
||||||
|
foreach (String section in sections) {
|
||||||
|
strToSave += ("[" + section + "]\r\n");
|
||||||
|
foreach (SectionPair sectionPair in keyPairs.Keys) {
|
||||||
|
if (sectionPair.Section == section) {
|
||||||
|
tmpValue = (String)keyPairs[sectionPair];
|
||||||
|
if (tmpValue != null)
|
||||||
|
tmpValue = "=" + tmpValue;
|
||||||
|
strToSave += (sectionPair.Key + tmpValue + "\r\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strToSave += "\r\n";
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
TextWriter tw = new StreamWriter(newFilePath);
|
||||||
|
tw.Write(strToSave);
|
||||||
|
tw.Close();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 将设置保存回ini文件。
|
||||||
|
/// </summary>
|
||||||
|
public void SaveSettings() {
|
||||||
|
SaveSettings(iniFilePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
43
AudioVisualizer/Entity/ConfigurationObject.cs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
namespace AudioWallpaper.Entity {
|
||||||
|
[Serializable]
|
||||||
|
public class ConfigurationObject {
|
||||||
|
private GeneralConfigurationObjects? generalConfigurationObjects;
|
||||||
|
private VideoWallpaperConfigObject? videoWallpaperConfigObject;
|
||||||
|
public bool DeviceStateChange = false;
|
||||||
|
public bool SignRenderingStatus = false;
|
||||||
|
public bool RenderingStatus = true;
|
||||||
|
|
||||||
|
public GeneralConfigurationObjects GeneralConfigurationObjects {
|
||||||
|
get {
|
||||||
|
if (generalConfigurationObjects != null) {
|
||||||
|
return generalConfigurationObjects;
|
||||||
|
}
|
||||||
|
return new GeneralConfigurationObjects();
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if (value != null) {
|
||||||
|
generalConfigurationObjects = value;
|
||||||
|
} else {
|
||||||
|
generalConfigurationObjects = new GeneralConfigurationObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public VideoWallpaperConfigObject VideoWallpaperConfigObject {
|
||||||
|
get {
|
||||||
|
if (videoWallpaperConfigObject != null) {
|
||||||
|
return videoWallpaperConfigObject;
|
||||||
|
}
|
||||||
|
return new VideoWallpaperConfigObject();
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
if (value != null) {
|
||||||
|
videoWallpaperConfigObject = value;
|
||||||
|
} else {
|
||||||
|
videoWallpaperConfigObject = new VideoWallpaperConfigObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
29
AudioVisualizer/Entity/CurrencyConfigObject.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
namespace AudioWallpaper.Entity {
|
||||||
|
public class CurrencyConfigObject {
|
||||||
|
public bool AutoStopWallpaper = true;
|
||||||
|
|
||||||
|
private String ConfigName = "CurrencyConfig";
|
||||||
|
|
||||||
|
public bool SaveConfig(String configFilePath) {
|
||||||
|
try {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
configurationTools.AddSetting(ConfigName, "AutoStopWallpaper", AutoStopWallpaper.ToString());
|
||||||
|
configurationTools.SaveSettings();
|
||||||
|
return true;
|
||||||
|
} catch (Exception) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public CurrencyConfigObject LoadConfig(string configFilePath) {
|
||||||
|
try {
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
AutoStopWallpaper = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "AutoStopWallpaper"));
|
||||||
|
return this;
|
||||||
|
|
||||||
|
} catch (Exception) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
227
AudioVisualizer/Entity/GeneralConfigurationObjects.cs
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
namespace AudioWallpaper.Entity {
|
||||||
|
[Serializable]
|
||||||
|
public class GeneralConfigurationObjects {
|
||||||
|
/// <summary>
|
||||||
|
/// 律动默认激进倍率
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultRadical = 2f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认频谱偏移量
|
||||||
|
/// </summary>
|
||||||
|
public float DefaultOffset = 0.4f;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认傅里叶变化量
|
||||||
|
/// </summary>
|
||||||
|
public int DefaultFourierVariation = 512;
|
||||||
|
/// <summary>
|
||||||
|
/// 窗体函数
|
||||||
|
/// </summary>
|
||||||
|
public string ApplyWindowFunc = "BARTLETT";
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultColor = Color.Blue;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认停止颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color DefaultStopColor = Color.Red;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用系统默认颜色
|
||||||
|
/// </summary>
|
||||||
|
public bool UseDefaultColorOrNOt = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认颜色数量
|
||||||
|
/// </summary>
|
||||||
|
public int NumberOfColors = 256;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否单色显示
|
||||||
|
/// </summary>
|
||||||
|
public bool MonochromeOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认背景颜色
|
||||||
|
/// </summary>
|
||||||
|
public Color BackgroundColor = Color.Black;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用背景图
|
||||||
|
/// </summary>
|
||||||
|
public bool BackImgOrNot = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 背景图片地址
|
||||||
|
/// </summary>
|
||||||
|
public string? BackgroundImagePath = null;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出波浪线
|
||||||
|
/// </summary>
|
||||||
|
public bool WavyLine = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出边框
|
||||||
|
/// </summary>
|
||||||
|
public bool Frame = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出中间圆形
|
||||||
|
/// </summary>
|
||||||
|
public bool Rotundity = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否平滑过渡中间圆形边条
|
||||||
|
/// </summary>
|
||||||
|
public bool SmoothRotundity = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 中间圆形边条间距
|
||||||
|
/// </summary>
|
||||||
|
public uint RotunditySpacing = 3;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否画出底边条形
|
||||||
|
/// </summary>
|
||||||
|
public bool Stripe = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否平滑过渡底边条形
|
||||||
|
/// </summary>
|
||||||
|
public bool SmoothStripe = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 底边条形间距
|
||||||
|
/// </summary>
|
||||||
|
public uint StripeSpacing = 3;
|
||||||
|
/// <summary>
|
||||||
|
/// 显示器设备名
|
||||||
|
/// </summary>
|
||||||
|
public string SettingForScreenName = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 当前显示器是否显示壁纸
|
||||||
|
/// </summary>
|
||||||
|
public bool IsShow = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用统一配置
|
||||||
|
/// </summary>
|
||||||
|
public bool IsUsingUnifiedConfiguration = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 当有其它程序全屏时是否停止壁纸
|
||||||
|
/// </summary>
|
||||||
|
public bool AutoStopWallPaper = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 配置名
|
||||||
|
/// </summary>
|
||||||
|
public string DefaultConfiguration = "DefaultConfiguration";
|
||||||
|
|
||||||
|
public bool SaveConfig(string configFilePath) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
|
||||||
|
string ConfigName = SettingForScreenName + "_" + DefaultConfiguration;
|
||||||
|
|
||||||
|
#region 将配置文件添加到配置工具对象中
|
||||||
|
//默认律动激进倍率
|
||||||
|
configurationTools.AddSetting(ConfigName, "DefaultRadical", DefaultRadical.ToString());
|
||||||
|
//默认频谱偏移量
|
||||||
|
configurationTools.AddSetting(ConfigName, "DefaultOffset", DefaultOffset.ToString());
|
||||||
|
//默认傅里叶变化量
|
||||||
|
configurationTools.AddSetting(ConfigName, "DefaultFourierVariation", DefaultFourierVariation.ToString());
|
||||||
|
//窗体函数
|
||||||
|
configurationTools.AddSetting(ConfigName, "ApplyWindowFunc", ApplyWindowFunc);
|
||||||
|
//默认开始颜色
|
||||||
|
configurationTools.AddSetting(ConfigName, "DefaultColor", ColorTranslator.ToHtml(DefaultColor));
|
||||||
|
//默认停止颜色
|
||||||
|
configurationTools.AddSetting(ConfigName, "DefaultStopColor", ColorTranslator.ToHtml(DefaultStopColor));
|
||||||
|
//是否使用默认颜色
|
||||||
|
configurationTools.AddSetting(ConfigName, "UseDefaultColorOrNOt", UseDefaultColorOrNOt.ToString());
|
||||||
|
//颜色数量
|
||||||
|
configurationTools.AddSetting(ConfigName, "NumberOfColors", NumberOfColors.ToString());
|
||||||
|
//是否单色显示
|
||||||
|
configurationTools.AddSetting(ConfigName, "MonochromeOrNot", MonochromeOrNot.ToString());
|
||||||
|
//默认背景颜色
|
||||||
|
configurationTools.AddSetting(ConfigName, "BackgroundColor", ColorTranslator.ToHtml(BackgroundColor));
|
||||||
|
//是否使用背景图
|
||||||
|
configurationTools.AddSetting(ConfigName, "BackImgOrNot", BackImgOrNot.ToString());
|
||||||
|
//背景图地址
|
||||||
|
configurationTools.AddSetting(ConfigName, "BackgroundImagePath", BackgroundImagePath);
|
||||||
|
//是否画出波浪线
|
||||||
|
configurationTools.AddSetting(ConfigName, "WavyLine", WavyLine.ToString());
|
||||||
|
//是否画出边框
|
||||||
|
configurationTools.AddSetting(ConfigName, "Frame", Frame.ToString());
|
||||||
|
//是否画出中间圆形
|
||||||
|
configurationTools.AddSetting(ConfigName, "Rotundity", Rotundity.ToString());
|
||||||
|
//是否平滑过渡中间圆形
|
||||||
|
configurationTools.AddSetting(ConfigName, "SmoothRotundity", SmoothRotundity.ToString());
|
||||||
|
//中间圆形条边距
|
||||||
|
configurationTools.AddSetting(ConfigName, "RotunditySpacing", RotunditySpacing.ToString());
|
||||||
|
//是否画出底边条形
|
||||||
|
configurationTools.AddSetting(ConfigName, "Stripe", Stripe.ToString());
|
||||||
|
//是否平滑过渡底边条形
|
||||||
|
configurationTools.AddSetting(ConfigName, "SmoothStripe", SmoothStripe.ToString());
|
||||||
|
//底边条形间距
|
||||||
|
configurationTools.AddSetting(ConfigName, "StripeSpacing", StripeSpacing.ToString());
|
||||||
|
//当前显示器名
|
||||||
|
configurationTools.AddSetting(ConfigName, "SettingForScreenName", SettingForScreenName);
|
||||||
|
//是否启用
|
||||||
|
configurationTools.AddSetting(ConfigName, "IsShow", IsShow.ToString());
|
||||||
|
//是否使用统一配置
|
||||||
|
configurationTools.AddSetting(ConfigName, "IsUsingUnifiedConfiguration", IsUsingUnifiedConfiguration.ToString());
|
||||||
|
//当有其它程序全屏时是否停止壁纸
|
||||||
|
configurationTools.AddSetting(ConfigName, "AutoStopWallPaper", AutoStopWallPaper.ToString());
|
||||||
|
#endregion
|
||||||
|
//保存配置
|
||||||
|
configurationTools.SaveSettings();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public GeneralConfigurationObjects LoadConfiguration(string configFilePath, string name) {
|
||||||
|
//创建配置工具对象
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
string ConfigName = name + "_" + DefaultConfiguration;
|
||||||
|
#region 为配置对象添加配置
|
||||||
|
try {
|
||||||
|
//默认律动激进倍率
|
||||||
|
DefaultRadical = float.Parse(configurationTools.GetSetting(ConfigName, "DefaultRadical"));
|
||||||
|
//默认频谱偏移量
|
||||||
|
DefaultOffset = float.Parse(configurationTools.GetSetting(ConfigName, "DefaultOffset"));
|
||||||
|
//默认傅里叶变化量
|
||||||
|
DefaultFourierVariation = int.Parse(configurationTools.GetSetting(ConfigName, "DefaultFourierVariation"));
|
||||||
|
//窗体函数
|
||||||
|
ApplyWindowFunc = configurationTools.GetSetting(ConfigName, "ApplyWindowFunc");
|
||||||
|
//默认颜色
|
||||||
|
DefaultColor = ColorTranslator.FromHtml(configurationTools.GetSetting(ConfigName, "DefaultColor"));
|
||||||
|
//默认停止颜色
|
||||||
|
DefaultStopColor = ColorTranslator.FromHtml(configurationTools.GetSetting(ConfigName, "DefaultStopColor"));
|
||||||
|
//是否使用默认颜色
|
||||||
|
UseDefaultColorOrNOt = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "UseDefaultColorOrNOt"));
|
||||||
|
//颜色数量
|
||||||
|
NumberOfColors = int.Parse(configurationTools.GetSetting(ConfigName, "NumberOfColors"));
|
||||||
|
//是否单色显示
|
||||||
|
MonochromeOrNot = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "MonochromeOrNot"));
|
||||||
|
//默认背景颜色
|
||||||
|
BackgroundColor = ColorTranslator.FromHtml(configurationTools.GetSetting(ConfigName, "BackgroundColor"));
|
||||||
|
//是否使用背景图
|
||||||
|
BackImgOrNot = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "BackImgOrNot"));
|
||||||
|
//背景图地址
|
||||||
|
BackgroundImagePath = configurationTools.GetSetting(ConfigName, "BackgroundImagePath");
|
||||||
|
//是否画出波浪线
|
||||||
|
WavyLine = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "WavyLine"));
|
||||||
|
//是否画出边框
|
||||||
|
Frame = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "Frame"));
|
||||||
|
//是否画出中间圆形
|
||||||
|
Rotundity = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "Rotundity"));
|
||||||
|
//是否平滑过渡中间圆形边条
|
||||||
|
SmoothRotundity = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "SmoothRotundity"));
|
||||||
|
//中间圆形边条间距
|
||||||
|
RotunditySpacing = uint.Parse(configurationTools.GetSetting(ConfigName,"RotunditySpacing"));
|
||||||
|
//是否画出底边条形
|
||||||
|
Stripe = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "Stripe"));
|
||||||
|
//是否平滑过渡底边条形
|
||||||
|
SmoothStripe = Convert.ToBoolean(configurationTools.GetSetting(ConfigName,"SmoothStripe"));
|
||||||
|
//底边条形间距
|
||||||
|
StripeSpacing = uint.Parse(configurationTools.GetSetting(ConfigName, "StripeSpacing"));
|
||||||
|
//显示器名
|
||||||
|
SettingForScreenName = configurationTools.GetSetting(ConfigName, "SettingForScreenName");
|
||||||
|
//是否显示
|
||||||
|
IsShow = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "IsShow"));
|
||||||
|
//是否使用统一配置
|
||||||
|
IsUsingUnifiedConfiguration = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "IsUsingUnifiedConfiguration"));
|
||||||
|
//当有其它程序全屏时是否停止壁纸
|
||||||
|
AutoStopWallPaper = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "AutoStopWallPaper"));
|
||||||
|
#endregion
|
||||||
|
} catch (Exception) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
78
AudioVisualizer/Entity/VideoWallpaperConfigObject.cs
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
namespace AudioWallpaper.Entity {
|
||||||
|
[Serializable]
|
||||||
|
public class VideoWallpaperConfigObject {
|
||||||
|
/// <summary>
|
||||||
|
/// 视频资源播放地址
|
||||||
|
/// </summary>
|
||||||
|
public string? Url = null;
|
||||||
|
/// <summary>
|
||||||
|
/// 视频播放音量
|
||||||
|
/// </summary>
|
||||||
|
public int Volume = 100;
|
||||||
|
/// <summary>
|
||||||
|
/// 视频播放速度
|
||||||
|
/// </summary>
|
||||||
|
public int Rate = 10;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否显示第三方壁纸
|
||||||
|
/// </summary>
|
||||||
|
public bool IsShow = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 当有其它程序全屏时是否停止壁纸
|
||||||
|
/// </summary>
|
||||||
|
public bool AutoStopWallPaper = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 多显示器配置保存
|
||||||
|
/// </summary>
|
||||||
|
public string SettingForScreenName = "";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 该配置名
|
||||||
|
/// </summary>
|
||||||
|
public string SettingName = "VideoWallpaperConfig";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void SaveConfig(string configFilePath) {
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
string ConfigName = SettingForScreenName + "_" + SettingName;
|
||||||
|
//视频播放地址
|
||||||
|
configurationTools.AddSetting(ConfigName, "VideoUrl", Url);
|
||||||
|
//视频播放音量
|
||||||
|
configurationTools.AddSetting(ConfigName, "VideoVolume", Volume.ToString());
|
||||||
|
//视频播放速度
|
||||||
|
configurationTools.AddSetting(ConfigName, "VideoRate", Rate.ToString());
|
||||||
|
|
||||||
|
//是否显示第三方壁纸
|
||||||
|
configurationTools.AddSetting(ConfigName, "IsShow", IsShow.ToString());
|
||||||
|
//当有其它程序全屏时是否停止壁纸
|
||||||
|
configurationTools.AddSetting(ConfigName, "AutoStopWallPaper", AutoStopWallPaper.ToString());
|
||||||
|
|
||||||
|
configurationTools.SaveSettings();
|
||||||
|
|
||||||
|
}
|
||||||
|
public VideoWallpaperConfigObject LoadConfig(string configFilePath, string name) {
|
||||||
|
ConfigurationTools configurationTools = new ConfigurationTools(configFilePath);
|
||||||
|
string ConfigName = name + "_" + SettingName;
|
||||||
|
try {
|
||||||
|
//视频播放地址
|
||||||
|
Url = configurationTools.GetSetting(ConfigName, "VideoUrl");
|
||||||
|
//视频播放音量
|
||||||
|
Volume = int.Parse(configurationTools.GetSetting(ConfigName, "VideoVolume"));
|
||||||
|
//视频播放速度
|
||||||
|
Rate = int.Parse(configurationTools.GetSetting(ConfigName, "VideoRate"));
|
||||||
|
|
||||||
|
//是否显示第三方壁纸
|
||||||
|
IsShow = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "IsShow"));
|
||||||
|
//当有其它程序全屏时是否停止壁纸
|
||||||
|
AutoStopWallPaper = Convert.ToBoolean(configurationTools.GetSetting(ConfigName, "AutoStopWallPaper"));
|
||||||
|
|
||||||
|
return this;
|
||||||
|
} catch (Exception) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
AudioVisualizer/FM-channel.ico
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
255
AudioVisualizer/FormManager.cs
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using NAudio.Wave;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO.Pipes;
|
||||||
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public class FormManager {
|
||||||
|
public GetScreenInfo getScreenInfo = new GetScreenInfo();
|
||||||
|
public Dictionary<string, MainWindow> mainWindowForms = new();
|
||||||
|
public Dictionary<string, VideoWallpaperWindow> videoWallpaperForms = new();
|
||||||
|
//public int ScreenCount = 0;
|
||||||
|
public Screen[] OldScreens;
|
||||||
|
public static int restart = 1;
|
||||||
|
public static bool isCreateWindow = false;
|
||||||
|
NamedPipeServerStream WallpaperReloadConfigPipe = new NamedPipeServerStream("WallpaperReloadConfigPipe", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
|
||||||
|
public FormManager() {
|
||||||
|
//Console.WriteLine("窗体管理器被加载");
|
||||||
|
SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
|
||||||
|
isCreateWindow = true;
|
||||||
|
LoadWindowSet();
|
||||||
|
LoadNamePipes();
|
||||||
|
//Console.WriteLine($"线程ID{Thread.CurrentThread.ManagedThreadId}");
|
||||||
|
|
||||||
|
}
|
||||||
|
public void LoadNamePipes() {
|
||||||
|
BinaryFormatter formatter = new BinaryFormatter();
|
||||||
|
WallpaperReloadConfigPipe.WaitForConnectionAsync().ContinueWith(s => {
|
||||||
|
new Task(() => {
|
||||||
|
while (true) {
|
||||||
|
byte[] bytes = new byte[2048];
|
||||||
|
int bytesRead = WallpaperReloadConfigPipe.Read(bytes, 0, bytes.Length);
|
||||||
|
using (MemoryStream memoryStream = new MemoryStream()) {
|
||||||
|
memoryStream.Write(bytes, 0, bytesRead);
|
||||||
|
memoryStream.Position = 0;
|
||||||
|
ConfigurationObject configurationObject = (ConfigurationObject)formatter.Deserialize(memoryStream);
|
||||||
|
if (configurationObject != null) {
|
||||||
|
SetFrom_ReloadConfig(configurationObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).Start();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFrom_ReloadConfig(ConfigurationObject configurationObject) {
|
||||||
|
if (configurationObject.DeviceStateChange) {
|
||||||
|
foreach (var item in mainWindowForms) {
|
||||||
|
item.Value.capture.StopRecording();
|
||||||
|
item.Value.capture.DataAvailable += null;
|
||||||
|
item.Value.capture.Dispose();
|
||||||
|
item.Value.capture = new WasapiLoopbackCapture();
|
||||||
|
item.Value.capture.WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(8192, 1);
|
||||||
|
item.Value.capture.DataAvailable += item.Value.Capture_DataAvailable;
|
||||||
|
item.Value.capture.StartRecording();
|
||||||
|
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = configurationObject.GeneralConfigurationObjects;
|
||||||
|
MainWindowReLoadConfig(generalConfigurationObjects);
|
||||||
|
|
||||||
|
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = configurationObject.VideoWallpaperConfigObject;
|
||||||
|
VideoWindowReLoadConfig(videoWallpaperConfigObject);
|
||||||
|
|
||||||
|
WinStatusChangeEvent(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
}
|
||||||
|
private void WinStatusChangeEvent(bool status) {
|
||||||
|
//循环所有窗体
|
||||||
|
foreach (var item in mainWindowForms) {
|
||||||
|
item.Value.ChangeStatus(status);
|
||||||
|
}
|
||||||
|
foreach (var item in videoWallpaperForms) {
|
||||||
|
item.Value.ChangeVideoPlayerStatus(status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindowReLoadConfig(GeneralConfigurationObjects generalConfigurationObjects) {
|
||||||
|
String wsn = generalConfigurationObjects.SettingForScreenName;
|
||||||
|
//获取对应的form
|
||||||
|
MainWindow? w = mainWindowForms.GetValueOrDefault(wsn);
|
||||||
|
if (w == null && generalConfigurationObjects.IsShow) {
|
||||||
|
//return;
|
||||||
|
Process.GetCurrentProcess()?.Kill();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (w == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!generalConfigurationObjects.IsShow) {
|
||||||
|
w.Invoke(() => {
|
||||||
|
w.DisposeAppBarManager();
|
||||||
|
w.Dispose();
|
||||||
|
w.Close();
|
||||||
|
mainWindowForms.Remove(wsn);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//使用统一配置
|
||||||
|
if (generalConfigurationObjects.IsUsingUnifiedConfiguration) {
|
||||||
|
foreach (var item in mainWindowForms) {
|
||||||
|
item.Value.generalConfigurationObjects.IsUsingUnifiedConfiguration = true;
|
||||||
|
item.Value.ReShow(generalConfigurationObjects);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
w.ReShow(generalConfigurationObjects);
|
||||||
|
}
|
||||||
|
private void VideoWindowReLoadConfig(VideoWallpaperConfigObject videoWallpaperConfigObject) {
|
||||||
|
String vsn = videoWallpaperConfigObject.SettingForScreenName;
|
||||||
|
VideoWallpaperWindow? v = videoWallpaperForms.GetValueOrDefault(vsn);
|
||||||
|
|
||||||
|
if (v == null && videoWallpaperConfigObject.IsShow) {
|
||||||
|
Process.GetCurrentProcess()?.Kill();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (v == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!videoWallpaperConfigObject.IsShow) {
|
||||||
|
v.Invoke(() => {
|
||||||
|
v.DisposeAppBarManager();
|
||||||
|
v.VideoDispose();
|
||||||
|
v.Dispose();
|
||||||
|
v.Close();
|
||||||
|
|
||||||
|
videoWallpaperForms.Remove(vsn);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
v.ReShow(videoWallpaperConfigObject);
|
||||||
|
|
||||||
|
}
|
||||||
|
public void LoadWindowSet() {
|
||||||
|
//加载窗体设置
|
||||||
|
//Console.WriteLine("窗体管理器正在初始化");
|
||||||
|
ReCreateWindow();
|
||||||
|
|
||||||
|
}
|
||||||
|
private void SystemEvents_DisplaySettingsChanged(object? sender, EventArgs e) {
|
||||||
|
if (isCreateWindow) {
|
||||||
|
|
||||||
|
isCreateWindow = false;
|
||||||
|
//Console.WriteLine("????");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SystemEvents.DisplaySettingsChanging -= SystemEvents_DisplaySettingsChanged;
|
||||||
|
Process.GetCurrentProcess()?.Kill();
|
||||||
|
}
|
||||||
|
private bool IsDisplayChange() {
|
||||||
|
Screen[] screens = getScreenInfo.GetAllScreen();
|
||||||
|
if (screens.Length != OldScreens.Length) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < screens.Length; i++) {
|
||||||
|
for (int j = 0; j < OldScreens.Length; j++) {
|
||||||
|
if (screens[i].DeviceName.Equals(OldScreens[j].DeviceName)) {
|
||||||
|
//这是同一个显示器
|
||||||
|
if (screens[i].Bounds != OldScreens[j].Bounds) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (screens[i].WorkingArea != OldScreens[j].WorkingArea) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void CreateWindow() {
|
||||||
|
//获取显示器数量决定是否继续创建窗体
|
||||||
|
Screen[] screens = getScreenInfo.GetAllScreen();
|
||||||
|
OldScreens = screens;
|
||||||
|
for (int i = 0; i < screens.Length; i++) {
|
||||||
|
Screen screen = screens[i];
|
||||||
|
GeneralConfigurationObjects configurationObject = new GeneralConfigurationObjects().LoadConfiguration(SetFrom.ConfigFilePath, screen.DeviceName);
|
||||||
|
if (configurationObject.IsShow) {
|
||||||
|
MainWindow mainWindow = new MainWindow(configurationObject);
|
||||||
|
mainWindow.FullScreenDetectedEvent += WinStatusChangeEvent;
|
||||||
|
mainWindowForms.Add(screen.DeviceName, mainWindow);
|
||||||
|
mainWindow.Show();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = new VideoWallpaperConfigObject().LoadConfig(SetFrom.ConfigFilePath, screen.DeviceName);
|
||||||
|
if (videoWallpaperConfigObject.IsShow) {
|
||||||
|
//Console.WriteLine("视频窗体被创建");
|
||||||
|
VideoWallpaperWindow videoWallpaperWindow = new VideoWallpaperWindow(videoWallpaperConfigObject);
|
||||||
|
videoWallpaperWindow.FullScreenDetectedEvent += WinStatusChangeEvent;
|
||||||
|
videoWallpaperForms.Add(screen.DeviceName, videoWallpaperWindow);
|
||||||
|
videoWallpaperWindow.Show();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void CorrectFormSizeAndPosition() {
|
||||||
|
foreach (var item in mainWindowForms) {
|
||||||
|
String key = item.Key;
|
||||||
|
Point point = new Point(0, 0);
|
||||||
|
Screen? screen = getScreenInfo.GetScreenForName(key);
|
||||||
|
if (screen != null) {
|
||||||
|
Size size = getScreenInfo.GetScreenScale(screen);
|
||||||
|
point = getScreenInfo.GetOffsetCorrection(screen);
|
||||||
|
//Console.WriteLine($"窗体{item.Key}该显示的位置{point}");
|
||||||
|
//Console.WriteLine($"窗体{item.Key}的大小{size}");
|
||||||
|
//Console.WriteLine($"窗体{item.Key}的实际位置和大小{item.Value.Location}");
|
||||||
|
item.Value.ReShow(point.X, point.Y, size.Width, size.Height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var item in videoWallpaperForms) {
|
||||||
|
String key = item.Key;
|
||||||
|
Point point = new Point(0, 0);
|
||||||
|
Screen? screen = getScreenInfo.GetScreenForName(key);
|
||||||
|
if (screen != null) {
|
||||||
|
Size size = getScreenInfo.GetScreenScale(screen);
|
||||||
|
point = getScreenInfo.GetOffsetCorrection(screen);
|
||||||
|
//Console.WriteLine($"窗体{item.Key}该显示的位置{point}");
|
||||||
|
//Console.WriteLine($"窗体{item.Key}的大小{size}");
|
||||||
|
//Console.WriteLine($"窗体{item.Key}的实际位置和大小{item.Value.Location}");
|
||||||
|
item.Value.ReShow(point.X, point.Y, size.Width, size.Height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void ReCreateWindow() {
|
||||||
|
//关闭所有窗体
|
||||||
|
foreach (var item in mainWindowForms) {
|
||||||
|
item.Value.Invoke(() => {
|
||||||
|
item.Value.DisposeAppBarManager();
|
||||||
|
item.Value.Dispose();
|
||||||
|
item.Value.Close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
foreach (var item in videoWallpaperForms) {
|
||||||
|
item.Value.Invoke(() => {
|
||||||
|
item.Value.DisposeAppBarManager();
|
||||||
|
item.Value.VideoDispose();
|
||||||
|
item.Value.Dispose();
|
||||||
|
item.Value.Close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
mainWindowForms.Clear();
|
||||||
|
videoWallpaperForms.Clear();
|
||||||
|
//加载窗体
|
||||||
|
CreateWindow();
|
||||||
|
CorrectFormSizeAndPosition();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
121
AudioVisualizer/GetScreenInfo.cs
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public class GetScreenInfo {
|
||||||
|
|
||||||
|
public GetScreenInfo() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetScreenName(Control obj) {
|
||||||
|
string name = null;
|
||||||
|
if (obj != null) {
|
||||||
|
name = Screen.FromControl(obj).DeviceName;
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
public Screen GetScreen(Control obj) {
|
||||||
|
Screen screen = null;
|
||||||
|
if (obj != null) {
|
||||||
|
screen = Screen.FromControl(obj);
|
||||||
|
}
|
||||||
|
return screen;
|
||||||
|
}
|
||||||
|
public Screen? GetScreenForName(String name) {
|
||||||
|
foreach (Screen s in GetAllScreen()) {
|
||||||
|
if (s.DeviceName.Equals(name)) {
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public int GetScreenCount() {
|
||||||
|
|
||||||
|
return Screen.AllScreens.Count();
|
||||||
|
|
||||||
|
}
|
||||||
|
public Screen[] GetAllScreen() {
|
||||||
|
return Screen.AllScreens;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取显示器X,Y值基于窗体显示的修正值
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="screen">显示器</param>
|
||||||
|
/// <returns>修正后窗体显示基准点</returns>
|
||||||
|
public Point GetOffsetCorrection(Screen screen) {
|
||||||
|
//返回的基准点
|
||||||
|
Point point = new Point();
|
||||||
|
//所有显示器对象
|
||||||
|
Screen[] screens = GetAllScreen();
|
||||||
|
//主显示器
|
||||||
|
Screen MainScreen = Screen.PrimaryScreen;
|
||||||
|
int offsetX = 0;
|
||||||
|
int offsetY = 0;
|
||||||
|
//位于主显示器左边最远的显示器距离
|
||||||
|
int minX = 0;
|
||||||
|
int minY = 0;
|
||||||
|
|
||||||
|
foreach (Screen sc in screens) {
|
||||||
|
if (sc.Bounds.Location.X < minX) {
|
||||||
|
minX = sc.Bounds.Location.X;
|
||||||
|
}
|
||||||
|
if (sc.Bounds.Location.Y < 0) {
|
||||||
|
minY = sc.Bounds.Location.Y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//计算传入的显示器距离主显示器位置
|
||||||
|
if (screen.Bounds.Location.X < 0) {
|
||||||
|
//该显示器在主显示器的左边
|
||||||
|
offsetX = Math.Abs(screen.Bounds.Location.X);
|
||||||
|
point.X = Math.Abs(minX) - offsetX;
|
||||||
|
}
|
||||||
|
if (screen.Bounds.Location.Y < 0) {
|
||||||
|
//该显示器在主显示器的上边
|
||||||
|
offsetY = Math.Abs(screen.Bounds.Location.Y);
|
||||||
|
point.Y = Math.Abs(minY) - offsetY;
|
||||||
|
}
|
||||||
|
if (screen.Bounds.Location.X >= 0) {
|
||||||
|
//在主显示器的右边或者,它就是主显示器
|
||||||
|
//偏移主显示器缩放带来的误差
|
||||||
|
point.X = Math.Abs(minX) + screen.Bounds.Location.X;
|
||||||
|
}
|
||||||
|
if (screen.Bounds.Location.Y >= 0) {
|
||||||
|
//在主显示器的下边
|
||||||
|
point.Y = Math.Abs(minY) + screen.Bounds.Location.Y;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Console.WriteLine($"屏幕的位置{screen.Bounds.Location}");
|
||||||
|
//Console.WriteLine($"Abs miX :{Math.Abs(minX)}");
|
||||||
|
//Console.WriteLine($"offsetx {offsetX}");
|
||||||
|
//Console.WriteLine($"新算法结果:{point}");
|
||||||
|
|
||||||
|
|
||||||
|
return point;
|
||||||
|
|
||||||
|
}
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern uint GetDpiForWindow([In] IntPtr hmonitor);
|
||||||
|
|
||||||
|
#region Win32 API
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "GetDeviceCaps")]
|
||||||
|
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "CreateDC")]
|
||||||
|
static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);
|
||||||
|
[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
|
||||||
|
static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
public Size GetScreenScale(Screen screen) {
|
||||||
|
IntPtr hdc = CreateDC(screen.DeviceName, null, null, IntPtr.Zero);
|
||||||
|
float yPixel = GetDeviceCaps(hdc, 117);
|
||||||
|
float xPixel = GetDeviceCaps(hdc, 118);
|
||||||
|
ReleaseDC(IntPtr.Zero, hdc);
|
||||||
|
|
||||||
|
return new Size((int)xPixel, (int)yPixel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
94
AudioVisualizer/MainWindow.Designer.cs
generated
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
using System.Net.NetworkInformation;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
partial class MainWindow {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
components = new System.ComponentModel.Container();
|
||||||
|
drawingPanel = new Panel();
|
||||||
|
dataTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
drawingTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// drawingPanel
|
||||||
|
//
|
||||||
|
drawingPanel.AutoSize = true;
|
||||||
|
drawingPanel.Dock = DockStyle.Fill;
|
||||||
|
drawingPanel.Location = new Point(0, 0);
|
||||||
|
drawingPanel.Margin = new Padding(2);
|
||||||
|
drawingPanel.Name = "drawingPanel";
|
||||||
|
drawingPanel.Size = new Size(560, 306);
|
||||||
|
drawingPanel.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// dataTimer
|
||||||
|
//
|
||||||
|
dataTimer.Interval = 30;
|
||||||
|
dataTimer.Tick += DataTimer_Tick;
|
||||||
|
//
|
||||||
|
// drawingTimer
|
||||||
|
//
|
||||||
|
drawingTimer.Interval = 30;
|
||||||
|
drawingTimer.Tick += DrawingTimer_Tick;
|
||||||
|
//
|
||||||
|
// MainWindow
|
||||||
|
//
|
||||||
|
AutoScaleMode = AutoScaleMode.None;
|
||||||
|
BackColor = SystemColors.ActiveCaptionText;
|
||||||
|
ClientSize = new Size(560, 306);
|
||||||
|
Controls.Add(drawingPanel);
|
||||||
|
FormBorderStyle = FormBorderStyle.None;
|
||||||
|
Margin = new Padding(2);
|
||||||
|
MaximizeBox = false;
|
||||||
|
Name = "MainWindow";
|
||||||
|
StartPosition = FormStartPosition.Manual;
|
||||||
|
Text = "Music Visualizer";
|
||||||
|
FormClosed += MainWindow_FormClosed;
|
||||||
|
Load += MainWindow_Load;
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#region 自定义图标大小初始化方法
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义图标大小初始化方法
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="toolStripItem">需要设置的菜单项元素</param>
|
||||||
|
/// <param name="image">图片</param>
|
||||||
|
/// <param name="width">宽度</param>
|
||||||
|
/// <param name="height">高度</param>
|
||||||
|
private void SetToolStripMenuItemImage(ToolStripItem toolStripItem, Image image, int width, int height) {
|
||||||
|
//取消菜单项自动大小
|
||||||
|
toolStripItem.AutoSize = false;
|
||||||
|
//取消菜单项缩放
|
||||||
|
toolStripItem.ImageScaling = ToolStripItemImageScaling.None;
|
||||||
|
//设置菜单项图标大小
|
||||||
|
toolStripItem.Image = new Bitmap(image, new Size(width, height));
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Timer dataTimer;
|
||||||
|
private Panel drawingPanel;
|
||||||
|
private System.Windows.Forms.Timer drawingTimer;
|
||||||
|
}
|
||||||
|
}
|
||||||
195
AudioVisualizer/MainWindow.Designer.cs.orig
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
using System.Net.NetworkInformation;
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
=======
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
partial class MainWindow {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
components = new System.ComponentModel.Container();
|
||||||
|
<<<<<<< HEAD
|
||||||
|
drawingPanel = new Panel();
|
||||||
|
dataTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
drawingTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
=======
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
|
||||||
|
drawingPanel = new Panel();
|
||||||
|
dataTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
drawingTimer = new System.Windows.Forms.Timer(components);
|
||||||
|
contextMenuStripSystemTray = new ContextMenuStrip(components);
|
||||||
|
SettingSToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
ReStartAPPRToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
ExitWallpaperToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
AboutUsToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
notifyIconSystemTray = new NotifyIcon(components);
|
||||||
|
contextMenuStripSystemTray.SuspendLayout();
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// drawingPanel
|
||||||
|
//
|
||||||
|
<<<<<<< HEAD
|
||||||
|
drawingPanel.AutoSize = true;
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
drawingPanel.Dock = DockStyle.Fill;
|
||||||
|
drawingPanel.Location = new Point(0, 0);
|
||||||
|
drawingPanel.Margin = new Padding(2);
|
||||||
|
drawingPanel.Name = "drawingPanel";
|
||||||
|
drawingPanel.Size = new Size(560, 306);
|
||||||
|
drawingPanel.TabIndex = 0;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
drawingPanel.MouseDoubleClick += DrawingPanel_MouseDoubleClick;
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
//
|
||||||
|
// dataTimer
|
||||||
|
//
|
||||||
|
dataTimer.Interval = 30;
|
||||||
|
dataTimer.Tick += DataTimer_Tick;
|
||||||
|
//
|
||||||
|
// drawingTimer
|
||||||
|
//
|
||||||
|
drawingTimer.Interval = 30;
|
||||||
|
drawingTimer.Tick += DrawingTimer_Tick;
|
||||||
|
//
|
||||||
|
<<<<<<< HEAD
|
||||||
|
// MainWindow
|
||||||
|
//
|
||||||
|
AutoScaleMode = AutoScaleMode.None;
|
||||||
|
=======
|
||||||
|
// contextMenuStripSystemTray
|
||||||
|
//
|
||||||
|
contextMenuStripSystemTray.ImageScalingSize = new Size(36, 36);
|
||||||
|
contextMenuStripSystemTray.Items.AddRange(new ToolStripItem[] { SettingSToolStripMenuItem, ReStartAPPRToolStripMenuItem, ExitWallpaperToolStripMenuItem, AboutUsToolStripMenuItem });
|
||||||
|
contextMenuStripSystemTray.Name = "contextMenuStripSystemTray";
|
||||||
|
contextMenuStripSystemTray.Size = new Size(201, 194);
|
||||||
|
//
|
||||||
|
// SettingSToolStripMenuItem
|
||||||
|
//
|
||||||
|
//Image largeIcon = global::AudioVisualizer.Properties.Resources.setting;
|
||||||
|
//SettingSToolStripMenuItem.ImageScaling = ToolStripItemImageScaling.None;
|
||||||
|
//SettingSToolStripMenuItem.Image = new Bitmap(largeIcon, new Size(16, 16));
|
||||||
|
//SettingSToolStripMenuItem.AutoSize = false;
|
||||||
|
SettingSToolStripMenuItem.Name = "SettingSToolStripMenuItem";
|
||||||
|
SetToolStripMenuItemImage(SettingSToolStripMenuItem,global::AudioVisualizer.Properties.Resources.setting,16,16);
|
||||||
|
SettingSToolStripMenuItem.Size = new Size(200, 22);
|
||||||
|
SettingSToolStripMenuItem.Text = "设置&(S)";
|
||||||
|
SettingSToolStripMenuItem.Click += SettingSToolStripMenuItem_Click;
|
||||||
|
//
|
||||||
|
// ReStartAPPRToolStripMenuItem
|
||||||
|
//
|
||||||
|
ReStartAPPRToolStripMenuItem.Name = "ReStartAPPRToolStripMenuItem";
|
||||||
|
SetToolStripMenuItemImage(ReStartAPPRToolStripMenuItem, global::AudioVisualizer.Properties.Resources.reboot, 16, 16);
|
||||||
|
ReStartAPPRToolStripMenuItem.Size = new Size(200, 22);
|
||||||
|
ReStartAPPRToolStripMenuItem.Text = "重启APP&(R)";
|
||||||
|
ReStartAPPRToolStripMenuItem.Click += ReStartAPPRToolStripMenuItem_Click;
|
||||||
|
//
|
||||||
|
// ExitWallpaperToolStripMenuItem
|
||||||
|
//
|
||||||
|
ExitWallpaperToolStripMenuItem.Name = "ExitWallpaperToolStripMenuItem";
|
||||||
|
SetToolStripMenuItemImage(ExitWallpaperToolStripMenuItem, global::AudioVisualizer.Properties.Resources.exit, 16, 16);
|
||||||
|
ExitWallpaperToolStripMenuItem.Size = new Size(200, 22);
|
||||||
|
ExitWallpaperToolStripMenuItem.Text = "退出壁纸&(E)";
|
||||||
|
ExitWallpaperToolStripMenuItem.Click += ExitWallpaperToolStripMenuItem_Click;
|
||||||
|
//
|
||||||
|
// AboutUsToolStripMenuItem
|
||||||
|
//
|
||||||
|
AboutUsToolStripMenuItem.Name = "AboutUsToolStripMenuItem";
|
||||||
|
SetToolStripMenuItemImage(AboutUsToolStripMenuItem, global::AudioVisualizer.Properties.Resources.VersionInformation, 16, 16);
|
||||||
|
AboutUsToolStripMenuItem.Size = new Size(200, 22);
|
||||||
|
AboutUsToolStripMenuItem.Text = "关于我们&(A)";
|
||||||
|
AboutUsToolStripMenuItem.Click += AboutUsToolStripMenuItem_Click;
|
||||||
|
//
|
||||||
|
// notifyIconSystemTray
|
||||||
|
//
|
||||||
|
notifyIconSystemTray.ContextMenuStrip = contextMenuStripSystemTray;
|
||||||
|
notifyIconSystemTray.Icon = (Icon)resources.GetObject("notifyIconSystemTray.Icon");
|
||||||
|
notifyIconSystemTray.Text = "律动壁纸";
|
||||||
|
notifyIconSystemTray.Visible = true;
|
||||||
|
//
|
||||||
|
// MainWindow
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
BackColor = SystemColors.ActiveCaptionText;
|
||||||
|
ClientSize = new Size(560, 306);
|
||||||
|
Controls.Add(drawingPanel);
|
||||||
|
FormBorderStyle = FormBorderStyle.None;
|
||||||
|
Margin = new Padding(2);
|
||||||
|
<<<<<<< HEAD
|
||||||
|
MaximizeBox = false;
|
||||||
|
Name = "MainWindow";
|
||||||
|
StartPosition = FormStartPosition.Manual;
|
||||||
|
Text = "Music Visualizer";
|
||||||
|
FormClosed += MainWindow_FormClosed;
|
||||||
|
Load += MainWindow_Load;
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
=======
|
||||||
|
Name = "MainWindow";
|
||||||
|
Text = "Music Visualizer";
|
||||||
|
FormClosed += MainWindow_FormClosed;
|
||||||
|
Load += MainWindow_Load;
|
||||||
|
SizeChanged += MainWindow_SizeChanged;
|
||||||
|
contextMenuStripSystemTray.ResumeLayout(false);
|
||||||
|
ResumeLayout(false);
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#region 自定义图标大小初始化方法
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义图标大小初始化方法
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="toolStripItem">需要设置的菜单项元素</param>
|
||||||
|
/// <param name="image">图片</param>
|
||||||
|
/// <param name="width">宽度</param>
|
||||||
|
/// <param name="height">高度</param>
|
||||||
|
private void SetToolStripMenuItemImage(ToolStripItem toolStripItem, Image image, int width, int height) {
|
||||||
|
//取消菜单项自动大小
|
||||||
|
toolStripItem.AutoSize = false;
|
||||||
|
//取消菜单项缩放
|
||||||
|
toolStripItem.ImageScaling = ToolStripItemImageScaling.None;
|
||||||
|
//设置菜单项图标大小
|
||||||
|
toolStripItem.Image = new Bitmap(image, new Size(width, height));
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Timer dataTimer;
|
||||||
|
private Panel drawingPanel;
|
||||||
|
private System.Windows.Forms.Timer drawingTimer;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
private ContextMenuStrip contextMenuStripSystemTray;
|
||||||
|
private ToolStripMenuItem ExitWallpaperToolStripMenuItem;
|
||||||
|
private NotifyIcon notifyIconSystemTray;
|
||||||
|
private ToolStripMenuItem SettingSToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem ReStartAPPRToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem AboutUsToolStripMenuItem;
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
}
|
||||||
623
AudioVisualizer/MainWindow.cs
Normal file
@@ -0,0 +1,623 @@
|
|||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using LibAudioVisualizer;
|
||||||
|
using NAudio.CoreAudioApi;
|
||||||
|
using NAudio.Wave;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class MainWindow : Form {
|
||||||
|
private IntPtr programIntPtr = IntPtr.Zero;
|
||||||
|
|
||||||
|
public WasapiCapture capture; // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||||||
|
public Visualizer visualizer; // <20><><EFBFBD>ӻ<EFBFBD>
|
||||||
|
double[]? spectrumData; // Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
public Color[] allColors; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
|
||||||
|
public GeneralConfigurationObjects generalConfigurationObjects;
|
||||||
|
public Bitmap backgroundImage;
|
||||||
|
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
||||||
|
public int offsetx = 0, offsety = 0;
|
||||||
|
public int width = 1920;
|
||||||
|
public int height = 1080;
|
||||||
|
|
||||||
|
private AppBarManager appBarManager;
|
||||||
|
public delegate void FullScreenDetected(bool status);
|
||||||
|
public event FullScreenDetected FullScreenDetectedEvent;
|
||||||
|
|
||||||
|
public MainWindow(GeneralConfigurationObjects configuration) {
|
||||||
|
appBarManager = new AppBarManager(Handle);
|
||||||
|
generalConfigurationObjects = configuration;
|
||||||
|
capture = new WasapiLoopbackCapture(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
visualizer = new Visualizer(generalConfigurationObjects.DefaultFourierVariation); // <20>½<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>, <20><>ʹ<EFBFBD><CAB9> 256 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>Ҷ<EFBFBD>任
|
||||||
|
|
||||||
|
allColors = GetAllHsvColors(generalConfigurationObjects.NumberOfColors); // <20><>ȡ<EFBFBD><C8A1><EFBFBD>еĽ<D0B5><C4BD><EFBFBD><EFBFBD><EFBFBD>ɫ (HSV <20><>ɫ)
|
||||||
|
|
||||||
|
capture.WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(8192, 2); // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 32λ<32><CEBB><EFBFBD><EFBFBD>, IeeeFloat <20><><EFBFBD><EFBFBD>, 8192<39><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
capture.DataAvailable += Capture_DataAvailable; // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
Init();
|
||||||
|
Win32.SetParent(this.Handle, programIntPtr);//<2F><><EFBFBD><EFBFBD><EFBFBD>ᴥ<EFBFBD><E1B4A5>DisplayChange<67>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ѧ
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
/// </summary>
|
||||||
|
/// <returns><3E><>ɫ<EFBFBD><C9AB>Ϣ</returns>
|
||||||
|
public Color[] GetAllHsvColors(int NumberOfColors) {
|
||||||
|
if (generalConfigurationObjects.MonochromeOrNot) {
|
||||||
|
return new Color[] { generalConfigurationObjects.DefaultColor };
|
||||||
|
} else if (generalConfigurationObjects.UseDefaultColorOrNOt) {
|
||||||
|
return SystemDefaultColors();
|
||||||
|
} else {
|
||||||
|
Color[] colors1 = GenerateColorsBetween(generalConfigurationObjects.DefaultColor, generalConfigurationObjects.DefaultStopColor, NumberOfColors / 2);
|
||||||
|
Color[] colors2 = GenerateColorsBetween(generalConfigurationObjects.DefaultStopColor, generalConfigurationObjects.DefaultColor, NumberOfColors / 2);
|
||||||
|
Color[] colors = new Color[colors1.Length + colors2.Length];
|
||||||
|
Array.Copy(colors1, 0, colors, 0, colors1.Length);
|
||||||
|
Array.Copy(colors2, 0, colors, colors1.Length, colors2.Length);
|
||||||
|
return colors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>HSV <20><><EFBFBD><EFBFBD><EFBFBD>еĻ<D0B5><C4BB><EFBFBD><EFBFBD><EFBFBD>ɫ (<28><><EFBFBD>ͶȺ<CDB6><C8BA><EFBFBD><EFBFBD>Ⱦ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns><3E><><EFBFBD>е<EFBFBD> HSV <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(<28><> 256 * 6 <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ɫҲ<C9AB>ὥ<EFBFBD><E1BDA5>)</returns>
|
||||||
|
public static Color[] SystemDefaultColors() {
|
||||||
|
Color[] result = new Color[256 * 6];
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[i] = Color.FromArgb(255, i, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[256 + i] = Color.FromArgb(255 - i, 255, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[512 + i] = Color.FromArgb(0, 255, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[768 + i] = Color.FromArgb(0, 255 - i, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[1024 + i] = Color.FromArgb(i, 0, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[1280 + i] = Color.FromArgb(255, 0, 255 - i);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="color1"><3E><>ʼ<EFBFBD><CABC>ɫ</param>
|
||||||
|
/// <param name="color2"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="steps"><3E><>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Color[] GenerateColorsBetween(Color color1, Color color2, int steps) {
|
||||||
|
Color[] colors = new Color[steps];
|
||||||
|
|
||||||
|
for (int i = 0; i < steps; i++) {
|
||||||
|
double t = (double)i / (steps - 1); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>İٷֱ<D9B7>
|
||||||
|
int red = (int)(color1.R + t * (color2.R - color1.R));
|
||||||
|
int green = (int)(color1.G + t * (color2.G - color1.G));
|
||||||
|
int blue = (int)(color1.B + t * (color2.B - color1.B));
|
||||||
|
|
||||||
|
colors[i] = Color.FromArgb(red, green, blue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return colors;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
public void Capture_DataAvailable(object? sender, WaveInEventArgs e) {
|
||||||
|
int length = e.BytesRecorded / 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20>ֽ<EFBFBD>)
|
||||||
|
double[] result = new double[length]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
|
||||||
|
result[i] = BitConverter.ToSingle(e.Buffer, i * 4)*generalConfigurationObjects.DefaultRadical; // ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||||
|
|
||||||
|
//result[i] = db;
|
||||||
|
|
||||||
|
}
|
||||||
|
visualizer.PushSampleData(result); // <20><><EFBFBD>µIJ<C2B5><C4B2><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2> <20><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD> <20><>
|
||||||
|
|
||||||
|
}
|
||||||
|
double CalculateDB(double sample) {
|
||||||
|
return 20 * Math.Log10(Math.Abs(sample) + 1e-10); // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ʵ<EFBFBD><CAB5>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void DataTimer_Tick(object? sender, EventArgs e) {
|
||||||
|
|
||||||
|
double[] newSpectrumData = visualizer.GetSpectrumData(generalConfigurationObjects.ApplyWindowFunc); // <20>ӿ<EFBFBD><D3BF>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>л<EFBFBD>ȡƵ<C8A1><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
newSpectrumData = Visualizer.MakeSmooth(newSpectrumData, 2); // ƽ<><C6BD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
if (spectrumData == null) // <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>洢<EFBFBD><E6B4A2>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>, <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD>ֵ<EFBFBD><D6B5>ȥ
|
||||||
|
{
|
||||||
|
spectrumData = newSpectrumData;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < newSpectrumData.Length; i++) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD> "<22>м<EFBFBD>ֵ"
|
||||||
|
{
|
||||||
|
double oldData = spectrumData[i];
|
||||||
|
double newData = newSpectrumData[i];
|
||||||
|
double lerpData = oldData + (newData - oldData) * generalConfigurationObjects.DefaultOffset; // ÿһ<C3BF><D2BB>ִ<EFBFBD><D6B4>, Ƶ<><C6B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֵ<EFBFBD>ƶ<EFBFBD> 20% (<28><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>, <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>̫С, Ƶ<><EFBFBD><D7BB><EFBFBD><EFBFBD>ӳٵĸо<C4B8>)
|
||||||
|
spectrumData[i] = lerpData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"><3E><>ͼĿ<CDBC><C4BF></param>
|
||||||
|
/// <param name="down"><3E>·<EFBFBD><C2B7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="up"><3E>Ϸ<EFBFBD><CFB7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="spectrumData">Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="pointCount"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="drawingWidth"><3E><><EFBFBD>˵Ŀ<CBB5><C4BF><EFBFBD></param>
|
||||||
|
/// <param name="xOffset"><3E><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ʼX<CABC><58><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="yOffset"><3E><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ʵY<CAB5><59><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="scale">Ƶ<><EFBFBD><D7B5><EFBFBD><EFBFBD><EFBFBD>(ʹ<>ø<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Է<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>)</param>
|
||||||
|
private void DrawGradient(Graphics g, Color down, Color up, double[] spectrumData, int pointCount, int drawingWidth, float xOffset, float yOffset, double scale) {
|
||||||
|
GraphicsPath path = new GraphicsPath();
|
||||||
|
|
||||||
|
PointF[] points = new PointF[pointCount + 2];
|
||||||
|
for (int i = 0; i < pointCount; i++) {
|
||||||
|
double x = i * drawingWidth / pointCount + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / pointCount] * scale + yOffset;
|
||||||
|
points[i + 1] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
points[0] = new PointF(xOffset, yOffset);
|
||||||
|
points[points.Length - 1] = new PointF(xOffset + drawingWidth, yOffset);
|
||||||
|
|
||||||
|
path.AddCurve(points);
|
||||||
|
|
||||||
|
float upP = (float)points.Min(v => v.Y);
|
||||||
|
|
||||||
|
if (Math.Abs(upP - yOffset) < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
using Brush brush = new LinearGradientBrush(new PointF(0, yOffset), new PointF(0, upP), down, up);
|
||||||
|
g.FillPath(brush, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"><3E><>ͼĿ<CDBC><C4BF></param>
|
||||||
|
/// <param name="down"><3E>·<EFBFBD><C2B7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="up"><3E>Ϸ<EFBFBD><CFB7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="spectrumData">Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="stripCount"><3E><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="drawingWidth"><3E><>ͼ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD></param>
|
||||||
|
/// <param name="xOffset"><3E><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʼ X <20><><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="yOffset"><3E><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʼ Y <20><><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="spacing"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>(<28><><EFBFBD><EFBFBD>)</param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawGradientStrips(Graphics g, Color down, Color up, double[] spectrumData, int stripCount, int drawingWidth, float xOffset, float yOffset, float spacing, double scale) {
|
||||||
|
float stripWidth = (drawingWidth - spacing * stripCount) / stripCount;
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = stripWidth * i + spacing * i + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
float upP = (float)points.Min(v => v.Y < 0 ? yOffset + v.Y : yOffset);
|
||||||
|
float downP = (float)points.Max(v => v.Y < 0 ? yOffset : yOffset + v.Y);
|
||||||
|
|
||||||
|
if (downP < yOffset)
|
||||||
|
downP = yOffset;
|
||||||
|
|
||||||
|
if (Math.Abs(upP - downP) < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
using Brush brush = new LinearGradientBrush(new PointF(0, downP), new PointF(0, upP), down, up);
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
float y = yOffset;
|
||||||
|
float height = p.Y;
|
||||||
|
|
||||||
|
if (height < 0) {
|
||||||
|
y += height;
|
||||||
|
height = -height;
|
||||||
|
}
|
||||||
|
g.FillRectangle(brush, new RectangleF(p.X, generalConfigurationObjects.SmoothStripe ? y + stripWidth / 2 : y, stripWidth, height));
|
||||||
|
|
||||||
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>Եƽ<D4B5><C6BD>
|
||||||
|
if (generalConfigurationObjects.SmoothStripe) {
|
||||||
|
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6>˵İ<CBB5>Բ<EFBFBD><D4B2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
||||||
|
float radius = stripWidth / 2; // <20><>Բ<EFBFBD>İ뾶
|
||||||
|
if (height > 0) {
|
||||||
|
g.FillEllipse(brush, new RectangleF(p.X, y, stripWidth, radius * 2));
|
||||||
|
} else {
|
||||||
|
g.FillEllipse(brush, new RectangleF(p.X, y + height, stripWidth, radius * 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="pen"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="pointCount"></param>
|
||||||
|
/// <param name="drawingWidth"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCurve(Graphics g, Pen pen, double[] spectrumData, int pointCount, int drawingWidth, double xOffset, double yOffset, double scale) {
|
||||||
|
PointF[] points = new PointF[pointCount];
|
||||||
|
for (int i = 0; i < pointCount; i++) {
|
||||||
|
//MessageBox.Show(spectrumData[0].ToString());
|
||||||
|
if (spectrumData[i] == 0.0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
double x = i * drawingWidth / pointCount + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / pointCount] * scale + yOffset;
|
||||||
|
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
g.DrawCurve(pen, points);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="brush"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="radius"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="rotation"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCircleStrips(Graphics g, Brush brush, double[] spectrumData, int stripCount, double xOffset, double yOffset, double radius, double spacing, double rotation, double scale) {
|
||||||
|
double rotationAngle = Math.PI / 180 * rotation;
|
||||||
|
double blockWidth = MathF.PI * 2 / stripCount; // angle
|
||||||
|
double stripWidth = blockWidth - MathF.PI / 180 * spacing; // angle
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = blockWidth * i + rotationAngle; // angle
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
double sinStart = Math.Sin(p.X);
|
||||||
|
double sinEnd = Math.Sin(p.X + stripWidth);
|
||||||
|
double cosStart = Math.Cos(p.X);
|
||||||
|
double cosEnd = Math.Cos(p.X + stripWidth);
|
||||||
|
|
||||||
|
PointF[] polygon = new PointF[]
|
||||||
|
{
|
||||||
|
new PointF((float)(cosStart * radius + xOffset), (float)(sinStart * radius + yOffset)),
|
||||||
|
new PointF((float)(cosEnd * radius + xOffset), (float)(sinEnd * radius + yOffset)),
|
||||||
|
new PointF((float)(cosEnd * (radius + p.Y) + xOffset), (float)(sinEnd * (radius + p.Y) + yOffset)),
|
||||||
|
new PointF((float)(cosStart * (radius + p.Y) + xOffset), (float)(sinStart * (radius + p.Y) + yOffset)),
|
||||||
|
};
|
||||||
|
|
||||||
|
g.FillPolygon(brush, polygon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="inner"></param>
|
||||||
|
/// <param name="outer"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="radius"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCircleGradientStrips(Graphics g, Color inner, Color outer, double[] spectrumData, int stripCount, double xOffset, double yOffset, double radius, double spacing, double rotation, double scale) {
|
||||||
|
double rotationAngle = Math.PI / 180 * rotation;
|
||||||
|
double blockWidth = Math.PI * 2 / stripCount; // angle
|
||||||
|
double stripWidth = blockWidth - MathF.PI / 180 * spacing; // angle
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = blockWidth * i + rotationAngle; // angle
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
double maxHeight = points.Max(v => v.Y);
|
||||||
|
double outerRadius = radius + maxHeight;
|
||||||
|
|
||||||
|
PointF[] polygon = new PointF[4];
|
||||||
|
GraphicsPath path = new GraphicsPath();
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
double sinStart = Math.Sin(p.X);
|
||||||
|
double sinEnd = Math.Sin(p.X + stripWidth);
|
||||||
|
double cosStart = Math.Cos(p.X);
|
||||||
|
double cosEnd = Math.Cos(p.X + stripWidth);
|
||||||
|
|
||||||
|
PointF
|
||||||
|
p1 = new PointF((float)(cosStart * radius + xOffset), (float)(sinStart * radius + yOffset)),
|
||||||
|
p2 = new PointF((float)(cosEnd * radius + xOffset), (float)(sinEnd * radius + yOffset)),
|
||||||
|
p3 = new PointF((float)(cosEnd * (radius + p.Y) + xOffset), (float)(sinEnd * (radius + p.Y) + yOffset)),
|
||||||
|
p4 = new PointF((float)(cosStart * (radius + p.Y) + xOffset), (float)(sinStart * (radius + p.Y) + yOffset));
|
||||||
|
|
||||||
|
polygon[0] = p1;
|
||||||
|
polygon[1] = p2;
|
||||||
|
polygon[2] = p3;
|
||||||
|
polygon[3] = p4;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PointF innerP = new PointF((p1.X + p2.X) / 2, (p1.Y + p2.Y) / 2);
|
||||||
|
PointF outerP = new PointF((p3.X + p4.X) / 2, (p3.Y + p4.Y) / 2);
|
||||||
|
|
||||||
|
Vector2 offset = new Vector2(outerP.X - innerP.X, outerP.Y - innerP.Y);
|
||||||
|
if (MathF.Sqrt(offset.X * offset.X + offset.Y * offset.Y) < 1) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>벻<EFBFBD><EBB2BB>̫С
|
||||||
|
continue;
|
||||||
|
|
||||||
|
try {
|
||||||
|
using LinearGradientBrush brush = new LinearGradientBrush(innerP, outerP, inner, outer); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ bug, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ա<EFBFBD>ˢ<EFBFBD><CBA2> OutMemoryException
|
||||||
|
g.FillPolygon(brush, polygon); // <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ϲ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣...
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><F2B5A5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="brush"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="drawingWidth"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawStrips(Graphics g, Brush brush, double[] spectrumData, int stripCount, int drawingWidth, float xOffset, float yOffset, float spacing, double scale) {
|
||||||
|
float stripWidth = (drawingWidth - spacing * stripCount) / stripCount;
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = stripWidth * i + spacing * i + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
float y = yOffset;
|
||||||
|
float height = p.Y;
|
||||||
|
|
||||||
|
if (height < 0) {
|
||||||
|
y += height;
|
||||||
|
height = -height;
|
||||||
|
}
|
||||||
|
|
||||||
|
g.FillRectangle(brush, new RectangleF(p.X, y, stripWidth, height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı߿<C4B1>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="inner"></param>
|
||||||
|
/// <param name="outer"></param>
|
||||||
|
/// <param name="area"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
/// <param name="width"></param>
|
||||||
|
private void DrawGradientBorder(Graphics g, Color inner, Color outer, Rectangle area, double scale, float width) {
|
||||||
|
int thickness = (int)(width * scale);
|
||||||
|
if (thickness < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Rectangle rect = new Rectangle(area.X, area.Y, area.Width, area.Height);
|
||||||
|
|
||||||
|
Rectangle up = new Rectangle(rect.Location, new Size(rect.Width, thickness));
|
||||||
|
Rectangle down = new Rectangle(new Point(rect.X, (int)(rect.X + rect.Height - scale * width)), new Size(rect.Width, thickness));
|
||||||
|
Rectangle left = new Rectangle(rect.Location, new Size(thickness, rect.Height));
|
||||||
|
Rectangle right = new Rectangle(new Point((int)(rect.X + rect.Width - scale * width), rect.Y), new Size(thickness, rect.Height));
|
||||||
|
|
||||||
|
LinearGradientBrush upB = new LinearGradientBrush(up, outer, inner, LinearGradientMode.Vertical);
|
||||||
|
LinearGradientBrush downB = new LinearGradientBrush(down, inner, outer, LinearGradientMode.Vertical);
|
||||||
|
LinearGradientBrush leftB = new LinearGradientBrush(left, outer, inner, LinearGradientMode.Horizontal);
|
||||||
|
LinearGradientBrush rightB = new LinearGradientBrush(right, inner, outer, LinearGradientMode.Horizontal);
|
||||||
|
|
||||||
|
upB.WrapMode = downB.WrapMode = leftB.WrapMode = rightB.WrapMode = WrapMode.TileFlipXY;
|
||||||
|
|
||||||
|
g.FillRectangle(upB, up);
|
||||||
|
g.FillRectangle(downB, down);
|
||||||
|
g.FillRectangle(leftB, left);
|
||||||
|
g.FillRectangle(rightB, right);
|
||||||
|
}
|
||||||
|
|
||||||
|
int colorIndex = 0;
|
||||||
|
double rotation = 0;
|
||||||
|
BufferedGraphics? oldBuffer;
|
||||||
|
|
||||||
|
private void DrawingTimer_Tick(object? sender, EventArgs e) {
|
||||||
|
if (spectrumData == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rotation += .1;
|
||||||
|
colorIndex++;
|
||||||
|
|
||||||
|
Color color1 = allColors[colorIndex % allColors.Length];
|
||||||
|
Color color2 = allColors[(colorIndex + 200) % allColors.Length];
|
||||||
|
|
||||||
|
double[] bassArea = Visualizer.TakeSpectrumOfFrequency(spectrumData, capture.WaveFormat.SampleRate, 250); // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||||||
|
double bassScale = bassArea.Average() * 100; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
|
double extraScale = Math.Min(drawingPanel.Width, drawingPanel.Height) / 6; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>ϴ<EFBFBD><CFB4>ڴ<EFBFBD>С)
|
||||||
|
|
||||||
|
Rectangle border = new Rectangle(Point.Empty, drawingPanel.Size);
|
||||||
|
|
||||||
|
BufferedGraphics buffer = BufferedGraphicsManager.Current.Allocate(drawingPanel.CreateGraphics(), drawingPanel.ClientRectangle);
|
||||||
|
Graphics g = buffer.Graphics;
|
||||||
|
|
||||||
|
if (oldBuffer != null) {
|
||||||
|
//oldBuffer.Render(buffer.Graphics); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫʵ<D2AA><CAB5> "<22><>Ӱ" Ч<><D0A7>, <20><>ȡ<EFBFBD><C8A1>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>, <20><><EFBFBD>ҽ<EFBFBD> g.Clear <20><>Ϊ g.FillRectange(xxx, <20><><EFBFBD><CDB8><EFBFBD>ĺ<EFBFBD>ɫ)
|
||||||
|
oldBuffer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
using Pen pen = new Pen(Color.Pink); // <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õı<C3B5>
|
||||||
|
|
||||||
|
g.SmoothingMode = SmoothingMode.HighQuality; // <20><><EFBFBD>˺<EFBFBD>, <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||||
|
g.Clear(drawingPanel.BackColor);
|
||||||
|
if (backgroundImage != null && generalConfigurationObjects.BackImgOrNot) {
|
||||||
|
g.DrawImage(backgroundImage, 0, 0);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Frame) {
|
||||||
|
DrawGradientBorder(g, Color.FromArgb(0, color1), color2, border, bassScale, drawingPanel.Width / 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Stripe) {
|
||||||
|
DrawGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width, 0, drawingPanel.Height, generalConfigurationObjects.StripeSpacing, -drawingPanel.Height * 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Rotundity) {
|
||||||
|
DrawCircleGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width / 2, drawingPanel.Height / 2, MathF.Min(drawingPanel.Width, drawingPanel.Height) / 4 + extraScale * bassScale, 1, rotation, drawingPanel.Width / 6 * 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.WavyLine) {
|
||||||
|
DrawCurve(g, pen, visualizer.SampleData, visualizer.SampleData.Length, drawingPanel.Width, 0, drawingPanel.Height / 2, MathF.Min(drawingPanel.Height / 10, 100));
|
||||||
|
}
|
||||||
|
buffer.Render();
|
||||||
|
oldBuffer = buffer; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> buffer (֮<><D6AE><EFBFBD>Բ<EFBFBD>ȫ<EFBFBD><C8AB>ֻʹ<D6BB><CAB9>һ<EFBFBD><D2BB> Buffer <20><><EFBFBD><EFBFBD>Ϊ,,, <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>С, <20><><EFBFBD><EFBFBD>ÿһ֡<D2BB><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ)
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindow_Load(object sender, EventArgs e) {
|
||||||
|
|
||||||
|
SetBounds(offsetx, offsety, width, height);
|
||||||
|
|
||||||
|
capture.StartRecording();
|
||||||
|
dataTimer.Start();
|
||||||
|
drawingTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindow_FormClosed(object sender, FormClosedEventArgs e) {
|
||||||
|
Environment.Exit(0);
|
||||||
|
}
|
||||||
|
protected override void WndProc(ref Message m) {
|
||||||
|
if (appBarManager != null && m.Msg == appBarManager.uCallbackMessage) {
|
||||||
|
switch ((int)m.WParam) {
|
||||||
|
case AppBarManager.ABN_FULLSCREENAPP:
|
||||||
|
bool isFullScreen = m.LParam != IntPtr.Zero;
|
||||||
|
if (isFullScreen) {
|
||||||
|
SetFrom.FullScreenWindowCount++;
|
||||||
|
} else {
|
||||||
|
SetFrom.FullScreenWindowCount--;
|
||||||
|
}
|
||||||
|
ChangeStatus(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
FullScreenDetectedEvent(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
base.WndProc(ref m);
|
||||||
|
|
||||||
|
}
|
||||||
|
public void DisposeAppBarManager() {
|
||||||
|
appBarManager.Dispose();
|
||||||
|
}
|
||||||
|
public void ReShow(int x, int y, int width, int height) {
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
SetBounds(x, y, width, height);
|
||||||
|
LoadBack();
|
||||||
|
//Win32.SetParent(this.Handle, IntPtr.Zero);
|
||||||
|
//Win32.SetParent(this.Handle, programIntPtr);
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
public void ReShow(GeneralConfigurationObjects generalConfigurationObjects) {
|
||||||
|
this.generalConfigurationObjects = generalConfigurationObjects;
|
||||||
|
LoadBack();
|
||||||
|
allColors = GetAllHsvColors(generalConfigurationObjects.NumberOfColors);
|
||||||
|
}
|
||||||
|
public void ChangeStatus(bool status) {
|
||||||
|
if (!status && generalConfigurationObjects.AutoStopWallPaper) {
|
||||||
|
dataTimer.Stop();
|
||||||
|
drawingTimer.Stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Invoke(new Action(() => {
|
||||||
|
dataTimer.Start();
|
||||||
|
drawingTimer.Start();
|
||||||
|
}));
|
||||||
|
|
||||||
|
}
|
||||||
|
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
||||||
|
public void LoadBack() {
|
||||||
|
if (generalConfigurationObjects.BackImgOrNot && generalConfigurationObjects.BackgroundImagePath != null) {
|
||||||
|
//BackgroundImage = Image.FromFile(generalConfigurationObjects.BackgroundImagePath);
|
||||||
|
using (var originalImage = Image.FromFile(generalConfigurationObjects.BackgroundImagePath)) {
|
||||||
|
double widthScale = (double)width / originalImage.Width;
|
||||||
|
double heightScale = (double)height / originalImage.Height;
|
||||||
|
double scale = Math.Min(widthScale, heightScale);
|
||||||
|
int newWidth = (int)(originalImage.Width * scale);
|
||||||
|
int newHeight = (int)(originalImage.Height * scale);
|
||||||
|
int bgioffsetX = (width - newWidth) / 2;
|
||||||
|
int bgioffsetY = (height - newHeight) / 2;
|
||||||
|
backgroundImage = new Bitmap(width, height);
|
||||||
|
using (var graphics = Graphics.FromImage(backgroundImage)) {
|
||||||
|
graphics.DrawImage(originalImage, bgioffsetX, bgioffsetY, newWidth, newHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
BackColor = generalConfigurationObjects.BackgroundColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void Init() {
|
||||||
|
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ش<EFBFBD><D8B4>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
programIntPtr = Win32.FindWindow("Progman", null);
|
||||||
|
|
||||||
|
// <20><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>Ч
|
||||||
|
if (programIntPtr != IntPtr.Zero) {
|
||||||
|
|
||||||
|
IntPtr result = IntPtr.Zero;
|
||||||
|
|
||||||
|
// <20><> Program Manager <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD> 0x52c <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ0x3e8<65><38>1<EFBFBD>룩<EFBFBD><EBA3A9>
|
||||||
|
Win32.SendMessageTimeout(programIntPtr, 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 0x3e8, result);
|
||||||
|
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Win32.EnumWindows((hwnd, lParam) => {
|
||||||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD> SHELLDLL_DefView <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD> WorkerW
|
||||||
|
if (Win32.FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero) {
|
||||||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD>ǰ WorkerW <20><><EFBFBD>ڵģ<DAB5><C4A3><EFBFBD>һ<EFBFBD><D2BB> WorkerW <20><><EFBFBD>ڡ<EFBFBD>
|
||||||
|
IntPtr tempHwnd = Win32.FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null);
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Win32.ShowWindow(tempHwnd, 0);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
823
AudioVisualizer/MainWindow.cs.orig
Normal file
@@ -0,0 +1,823 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using LibAudioVisualizer;
|
||||||
|
using NAudio.CoreAudioApi;
|
||||||
|
using NAudio.Wave;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class MainWindow : Form {
|
||||||
|
private IntPtr programIntPtr = IntPtr.Zero;
|
||||||
|
|
||||||
|
public WasapiCapture capture; // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||||||
|
public Visualizer visualizer; // <20><><EFBFBD>ӻ<EFBFBD>
|
||||||
|
double[]? spectrumData; // Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
public Color[] allColors; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
|
||||||
|
public GeneralConfigurationObjects generalConfigurationObjects;
|
||||||
|
public Bitmap backgroundImage;
|
||||||
|
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
||||||
|
public int offsetx = 0, offsety = 0;
|
||||||
|
public int width = 1920;
|
||||||
|
public int height = 1080;
|
||||||
|
|
||||||
|
private AppBarManager appBarManager;
|
||||||
|
public delegate void FullScreenDetected(bool status);
|
||||||
|
public event FullScreenDetected FullScreenDetectedEvent;
|
||||||
|
|
||||||
|
public MainWindow(GeneralConfigurationObjects configuration) {
|
||||||
|
appBarManager = new AppBarManager(Handle);
|
||||||
|
generalConfigurationObjects = configuration;
|
||||||
|
capture = new WasapiLoopbackCapture(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
visualizer = new Visualizer(generalConfigurationObjects.DefaultFourierVariation); // <20>½<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>, <20><>ʹ<EFBFBD><CAB9> 256 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>Ҷ<EFBFBD>任
|
||||||
|
|
||||||
|
allColors = GetAllHsvColors(generalConfigurationObjects.NumberOfColors); // <20><>ȡ<EFBFBD><C8A1><EFBFBD>еĽ<D0B5><C4BD><EFBFBD><EFBFBD><EFBFBD>ɫ (HSV <20><>ɫ)
|
||||||
|
|
||||||
|
capture.WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(8192, 2); // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 32λ<32><CEBB><EFBFBD><EFBFBD>, IeeeFloat <20><><EFBFBD><EFBFBD>, 8192<39><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
capture.DataAvailable += Capture_DataAvailable; // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
Init();
|
||||||
|
Win32.SetParent(this.Handle, programIntPtr);//<2F><><EFBFBD><EFBFBD><EFBFBD>ᴥ<EFBFBD><E1B4A5>DisplayChange<67>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ѧ
|
||||||
|
=======
|
||||||
|
using LibAudioVisualizer;
|
||||||
|
using NAudio.CoreAudioApi;
|
||||||
|
using NAudio.Wave;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Numerics;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
public partial class MainWindow : Form {
|
||||||
|
private IntPtr programIntPtr = IntPtr.Zero;
|
||||||
|
|
||||||
|
WasapiCapture capture; // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||||||
|
public Visualizer visualizer; // <20><><EFBFBD>ӻ<EFBFBD>
|
||||||
|
double[]? spectrumData; // Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
public static Color[] allColors; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
|
||||||
|
public static ConfigurationObject configurationObject = new ConfigurationObject();
|
||||||
|
public Bitmap backgroundImage;
|
||||||
|
|
||||||
|
public MainWindow() {
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
configurationObject.LoadConfiguration("./config.ini");
|
||||||
|
|
||||||
|
|
||||||
|
capture = new WasapiLoopbackCapture(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
visualizer = new Visualizer(configurationObject.DefaultFourierVariation); // <20>½<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>, <20><>ʹ<EFBFBD><CAB9> 256 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>Ҷ<EFBFBD>任
|
||||||
|
|
||||||
|
allColors = GetAllHsvColors(configurationObject.NumberOfColors); // <20><>ȡ<EFBFBD><C8A1><EFBFBD>еĽ<D0B5><C4BD><EFBFBD><EFBFBD><EFBFBD>ɫ (HSV <20><>ɫ)
|
||||||
|
|
||||||
|
capture.WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(8192, 2); // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 32λ<32><CEBB><EFBFBD><EFBFBD>, IeeeFloat <20><><EFBFBD><EFBFBD>, 8192<39><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
capture.DataAvailable += Capture_DataAvailable; // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
Init();
|
||||||
|
Win32.SetParent(this.Handle, programIntPtr);
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
/// </summary>
|
||||||
|
/// <returns><3E><>ɫ<EFBFBD><C9AB>Ϣ</returns>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
public Color[] GetAllHsvColors(int NumberOfColors) {
|
||||||
|
if (generalConfigurationObjects.MonochromeOrNot) {
|
||||||
|
return new Color[] { generalConfigurationObjects.DefaultColor };
|
||||||
|
} else if (generalConfigurationObjects.UseDefaultColorOrNOt) {
|
||||||
|
return SystemDefaultColors();
|
||||||
|
} else {
|
||||||
|
Color[] colors1 = GenerateColorsBetween(generalConfigurationObjects.DefaultColor, generalConfigurationObjects.DefaultStopColor, NumberOfColors / 2);
|
||||||
|
Color[] colors2 = GenerateColorsBetween(generalConfigurationObjects.DefaultStopColor, generalConfigurationObjects.DefaultColor, NumberOfColors / 2);
|
||||||
|
=======
|
||||||
|
public static Color[] GetAllHsvColors(int NumberOfColors) {
|
||||||
|
if (configurationObject.MonochromeOrNot) {
|
||||||
|
return new Color[] { configurationObject.DefaultColor };
|
||||||
|
} else if (configurationObject.UseDefaultColorOrNOt) {
|
||||||
|
return SystemDefaultColors();
|
||||||
|
} else {
|
||||||
|
Color[] colors1 = GenerateColorsBetween(configurationObject.DefaultColor, configurationObject.DefaultStopColor, NumberOfColors / 2);
|
||||||
|
Color[] colors2 = GenerateColorsBetween(configurationObject.DefaultStopColor, configurationObject.DefaultColor, NumberOfColors / 2);
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
Color[] colors = new Color[colors1.Length + colors2.Length];
|
||||||
|
Array.Copy(colors1, 0, colors, 0, colors1.Length);
|
||||||
|
Array.Copy(colors2, 0, colors, colors1.Length, colors2.Length);
|
||||||
|
return colors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>HSV <20><><EFBFBD><EFBFBD><EFBFBD>еĻ<D0B5><C4BB><EFBFBD><EFBFBD><EFBFBD>ɫ (<28><><EFBFBD>ͶȺ<CDB6><C8BA><EFBFBD><EFBFBD>Ⱦ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns><3E><><EFBFBD>е<EFBFBD> HSV <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(<28><> 256 * 6 <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ɫҲ<C9AB>ὥ<EFBFBD><E1BDA5>)</returns>
|
||||||
|
public static Color[] SystemDefaultColors() {
|
||||||
|
Color[] result = new Color[256 * 6];
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[i] = Color.FromArgb(255, i, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[256 + i] = Color.FromArgb(255 - i, 255, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[512 + i] = Color.FromArgb(0, 255, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[768 + i] = Color.FromArgb(0, 255 - i, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[1024 + i] = Color.FromArgb(i, 0, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 256; i++) {
|
||||||
|
result[1280 + i] = Color.FromArgb(255, 0, 255 - i);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="color1"><3E><>ʼ<EFBFBD><CABC>ɫ</param>
|
||||||
|
/// <param name="color2"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="steps"><3E><>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
public Color[] GenerateColorsBetween(Color color1, Color color2, int steps) {
|
||||||
|
=======
|
||||||
|
public static Color[] GenerateColorsBetween(Color color1, Color color2, int steps) {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
Color[] colors = new Color[steps];
|
||||||
|
|
||||||
|
for (int i = 0; i < steps; i++) {
|
||||||
|
double t = (double)i / (steps - 1); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>İٷֱ<D9B7>
|
||||||
|
int red = (int)(color1.R + t * (color2.R - color1.R));
|
||||||
|
int green = (int)(color1.G + t * (color2.G - color1.G));
|
||||||
|
int blue = (int)(color1.B + t * (color2.B - color1.B));
|
||||||
|
|
||||||
|
colors[i] = Color.FromArgb(red, green, blue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return colors;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
public void Capture_DataAvailable(object? sender, WaveInEventArgs e) {
|
||||||
|
int length = e.BytesRecorded / 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20>ֽ<EFBFBD>)
|
||||||
|
double[] result = new double[length]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
|
||||||
|
result[i] = BitConverter.ToSingle(e.Buffer, i * 4)*generalConfigurationObjects.DefaultRadical; // ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||||
|
|
||||||
|
//result[i] = db;
|
||||||
|
|
||||||
|
}
|
||||||
|
visualizer.PushSampleData(result); // <20><><EFBFBD>µIJ<C2B5><C4B2><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2> <20><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD> <20><>
|
||||||
|
|
||||||
|
}
|
||||||
|
double CalculateDB(double sample) {
|
||||||
|
return 20 * Math.Log10(Math.Abs(sample) + 1e-10); // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||||
|
=======
|
||||||
|
private void Capture_DataAvailable(object? sender, WaveInEventArgs e) {
|
||||||
|
int length = e.BytesRecorded / 4; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20>ֽ<EFBFBD>)
|
||||||
|
double[] result = new double[length]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
for (int i = 0; i < length; i++)
|
||||||
|
result[i] = BitConverter.ToSingle(e.Buffer, i * 4); // ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||||
|
|
||||||
|
visualizer.PushSampleData(result); // <20><><EFBFBD>µIJ<C2B5><C4B2><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2> <20><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD> <20><>
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ʵ<EFBFBD><CAB5>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void DataTimer_Tick(object? sender, EventArgs e) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
double[] newSpectrumData = visualizer.GetSpectrumData(generalConfigurationObjects.ApplyWindowFunc); // <20>ӿ<EFBFBD><D3BF>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>л<EFBFBD>ȡƵ<C8A1><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
=======
|
||||||
|
double[] newSpectrumData = visualizer.GetSpectrumData(); // <20>ӿ<EFBFBD><D3BF>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>л<EFBFBD>ȡƵ<C8A1><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
newSpectrumData = Visualizer.MakeSmooth(newSpectrumData, 2); // ƽ<><C6BD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
if (spectrumData == null) // <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>洢<EFBFBD><E6B4A2>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>, <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD>ֵ<EFBFBD><D6B5>ȥ
|
||||||
|
{
|
||||||
|
spectrumData = newSpectrumData;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < newSpectrumData.Length; i++) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD> "<22>м<EFBFBD>ֵ"
|
||||||
|
{
|
||||||
|
double oldData = spectrumData[i];
|
||||||
|
double newData = newSpectrumData[i];
|
||||||
|
<<<<<<< HEAD
|
||||||
|
double lerpData = oldData + (newData - oldData) * generalConfigurationObjects.DefaultOffset; // ÿһ<C3BF><D2BB>ִ<EFBFBD><D6B4>, Ƶ<><C6B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֵ<EFBFBD>ƶ<EFBFBD> 20% (<28><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>, <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>̫С, Ƶ<><EFBFBD><D7BB><EFBFBD><EFBFBD>ӳٵĸо<C4B8>)
|
||||||
|
=======
|
||||||
|
double lerpData = oldData + (newData - oldData) * configurationObject.DefaultOffset; // ÿһ<C3BF><D2BB>ִ<EFBFBD><D6B4>, Ƶ<><C6B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֵ<EFBFBD>ƶ<EFBFBD> 20% (<28><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>, <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>̫С, Ƶ<><EFBFBD><D7BB><EFBFBD><EFBFBD>ӳٵĸо<C4B8>)
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
spectrumData[i] = lerpData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"><3E><>ͼĿ<CDBC><C4BF></param>
|
||||||
|
/// <param name="down"><3E>·<EFBFBD><C2B7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="up"><3E>Ϸ<EFBFBD><CFB7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="spectrumData">Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="pointCount"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="drawingWidth"><3E><><EFBFBD>˵Ŀ<CBB5><C4BF><EFBFBD></param>
|
||||||
|
/// <param name="xOffset"><3E><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ʼX<CABC><58><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="yOffset"><3E><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ʵY<CAB5><59><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="scale">Ƶ<><EFBFBD><D7B5><EFBFBD><EFBFBD><EFBFBD>(ʹ<>ø<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Է<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>)</param>
|
||||||
|
private void DrawGradient(Graphics g, Color down, Color up, double[] spectrumData, int pointCount, int drawingWidth, float xOffset, float yOffset, double scale) {
|
||||||
|
GraphicsPath path = new GraphicsPath();
|
||||||
|
|
||||||
|
PointF[] points = new PointF[pointCount + 2];
|
||||||
|
for (int i = 0; i < pointCount; i++) {
|
||||||
|
double x = i * drawingWidth / pointCount + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / pointCount] * scale + yOffset;
|
||||||
|
points[i + 1] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
points[0] = new PointF(xOffset, yOffset);
|
||||||
|
points[points.Length - 1] = new PointF(xOffset + drawingWidth, yOffset);
|
||||||
|
|
||||||
|
path.AddCurve(points);
|
||||||
|
|
||||||
|
float upP = (float)points.Min(v => v.Y);
|
||||||
|
|
||||||
|
if (Math.Abs(upP - yOffset) < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
using Brush brush = new LinearGradientBrush(new PointF(0, yOffset), new PointF(0, upP), down, up);
|
||||||
|
g.FillPath(brush, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"><3E><>ͼĿ<CDBC><C4BF></param>
|
||||||
|
/// <param name="down"><3E>·<EFBFBD><C2B7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="up"><3E>Ϸ<EFBFBD><CFB7><EFBFBD>ɫ</param>
|
||||||
|
/// <param name="spectrumData">Ƶ<><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="stripCount"><3E><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="drawingWidth"><3E><>ͼ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD></param>
|
||||||
|
/// <param name="xOffset"><3E><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʼ X <20><><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="yOffset"><3E><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʼ Y <20><><EFBFBD><EFBFBD></param>
|
||||||
|
/// <param name="spacing"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>(<28><><EFBFBD><EFBFBD>)</param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawGradientStrips(Graphics g, Color down, Color up, double[] spectrumData, int stripCount, int drawingWidth, float xOffset, float yOffset, float spacing, double scale) {
|
||||||
|
float stripWidth = (drawingWidth - spacing * stripCount) / stripCount;
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = stripWidth * i + spacing * i + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
<<<<<<< HEAD
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
=======
|
||||||
|
points[i] = new PointF((float)x, (float)y + (float)(y * configurationObject.DefaultRadical));
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
|
||||||
|
float upP = (float)points.Min(v => v.Y < 0 ? yOffset + v.Y : yOffset);
|
||||||
|
float downP = (float)points.Max(v => v.Y < 0 ? yOffset : yOffset + v.Y);
|
||||||
|
|
||||||
|
if (downP < yOffset)
|
||||||
|
downP = yOffset;
|
||||||
|
|
||||||
|
if (Math.Abs(upP - downP) < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
using Brush brush = new LinearGradientBrush(new PointF(0, downP), new PointF(0, upP), down, up);
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
float y = yOffset;
|
||||||
|
float height = p.Y;
|
||||||
|
|
||||||
|
if (height < 0) {
|
||||||
|
y += height;
|
||||||
|
height = -height;
|
||||||
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
g.FillRectangle(brush, new RectangleF(p.X, generalConfigurationObjects.SmoothStripe ? y + stripWidth / 2 : y, stripWidth, height));
|
||||||
|
|
||||||
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>Եƽ<D4B5><C6BD>
|
||||||
|
if (generalConfigurationObjects.SmoothStripe) {
|
||||||
|
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6>˵İ<CBB5>Բ<EFBFBD><D4B2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
||||||
|
float radius = stripWidth / 2; // <20><>Բ<EFBFBD>İ뾶
|
||||||
|
if (height > 0) {
|
||||||
|
g.FillEllipse(brush, new RectangleF(p.X, y, stripWidth, radius * 2));
|
||||||
|
} else {
|
||||||
|
g.FillEllipse(brush, new RectangleF(p.X, y + height, stripWidth, radius * 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
=======
|
||||||
|
|
||||||
|
g.FillRectangle(brush, new RectangleF(p.X, y, stripWidth, height));
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="pen"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="pointCount"></param>
|
||||||
|
/// <param name="drawingWidth"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCurve(Graphics g, Pen pen, double[] spectrumData, int pointCount, int drawingWidth, double xOffset, double yOffset, double scale) {
|
||||||
|
PointF[] points = new PointF[pointCount];
|
||||||
|
for (int i = 0; i < pointCount; i++) {
|
||||||
|
//MessageBox.Show(spectrumData[0].ToString());
|
||||||
|
if (spectrumData[i] == 0.0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
double x = i * drawingWidth / pointCount + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / pointCount] * scale + yOffset;
|
||||||
|
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
g.DrawCurve(pen, points);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="brush"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="radius"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="rotation"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCircleStrips(Graphics g, Brush brush, double[] spectrumData, int stripCount, double xOffset, double yOffset, double radius, double spacing, double rotation, double scale) {
|
||||||
|
double rotationAngle = Math.PI / 180 * rotation;
|
||||||
|
double blockWidth = MathF.PI * 2 / stripCount; // angle
|
||||||
|
double stripWidth = blockWidth - MathF.PI / 180 * spacing; // angle
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = blockWidth * i + rotationAngle; // angle
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
double sinStart = Math.Sin(p.X);
|
||||||
|
double sinEnd = Math.Sin(p.X + stripWidth);
|
||||||
|
double cosStart = Math.Cos(p.X);
|
||||||
|
double cosEnd = Math.Cos(p.X + stripWidth);
|
||||||
|
|
||||||
|
PointF[] polygon = new PointF[]
|
||||||
|
{
|
||||||
|
new PointF((float)(cosStart * radius + xOffset), (float)(sinStart * radius + yOffset)),
|
||||||
|
new PointF((float)(cosEnd * radius + xOffset), (float)(sinEnd * radius + yOffset)),
|
||||||
|
new PointF((float)(cosEnd * (radius + p.Y) + xOffset), (float)(sinEnd * (radius + p.Y) + yOffset)),
|
||||||
|
new PointF((float)(cosStart * (radius + p.Y) + xOffset), (float)(sinStart * (radius + p.Y) + yOffset)),
|
||||||
|
};
|
||||||
|
|
||||||
|
g.FillPolygon(brush, polygon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="inner"></param>
|
||||||
|
/// <param name="outer"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="radius"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawCircleGradientStrips(Graphics g, Color inner, Color outer, double[] spectrumData, int stripCount, double xOffset, double yOffset, double radius, double spacing, double rotation, double scale) {
|
||||||
|
double rotationAngle = Math.PI / 180 * rotation;
|
||||||
|
double blockWidth = Math.PI * 2 / stripCount; // angle
|
||||||
|
double stripWidth = blockWidth - MathF.PI / 180 * spacing; // angle
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = blockWidth * i + rotationAngle; // angle
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
<<<<<<< HEAD
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
=======
|
||||||
|
points[i] = new PointF((float)x, (float)y + (float)(y * configurationObject.DefaultRadical));
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
|
||||||
|
double maxHeight = points.Max(v => v.Y);
|
||||||
|
double outerRadius = radius + maxHeight;
|
||||||
|
|
||||||
|
PointF[] polygon = new PointF[4];
|
||||||
|
<<<<<<< HEAD
|
||||||
|
GraphicsPath path = new GraphicsPath();
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
double sinStart = Math.Sin(p.X);
|
||||||
|
double sinEnd = Math.Sin(p.X + stripWidth);
|
||||||
|
double cosStart = Math.Cos(p.X);
|
||||||
|
double cosEnd = Math.Cos(p.X + stripWidth);
|
||||||
|
|
||||||
|
PointF
|
||||||
|
p1 = new PointF((float)(cosStart * radius + xOffset), (float)(sinStart * radius + yOffset)),
|
||||||
|
p2 = new PointF((float)(cosEnd * radius + xOffset), (float)(sinEnd * radius + yOffset)),
|
||||||
|
p3 = new PointF((float)(cosEnd * (radius + p.Y) + xOffset), (float)(sinEnd * (radius + p.Y) + yOffset)),
|
||||||
|
p4 = new PointF((float)(cosStart * (radius + p.Y) + xOffset), (float)(sinStart * (radius + p.Y) + yOffset));
|
||||||
|
|
||||||
|
polygon[0] = p1;
|
||||||
|
polygon[1] = p2;
|
||||||
|
polygon[2] = p3;
|
||||||
|
polygon[3] = p4;
|
||||||
|
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
PointF innerP = new PointF((p1.X + p2.X) / 2, (p1.Y + p2.Y) / 2);
|
||||||
|
PointF outerP = new PointF((p3.X + p4.X) / 2, (p3.Y + p4.Y) / 2);
|
||||||
|
|
||||||
|
Vector2 offset = new Vector2(outerP.X - innerP.X, outerP.Y - innerP.Y);
|
||||||
|
if (MathF.Sqrt(offset.X * offset.X + offset.Y * offset.Y) < 1) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>벻<EFBFBD><EBB2BB>̫С
|
||||||
|
continue;
|
||||||
|
|
||||||
|
try {
|
||||||
|
using LinearGradientBrush brush = new LinearGradientBrush(innerP, outerP, inner, outer); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ bug, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ա<EFBFBD>ˢ<EFBFBD><CBA2> OutMemoryException
|
||||||
|
g.FillPolygon(brush, polygon); // <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ϲ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣...
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><F2B5A5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="brush"></param>
|
||||||
|
/// <param name="spectrumData"></param>
|
||||||
|
/// <param name="stripCount"></param>
|
||||||
|
/// <param name="drawingWidth"></param>
|
||||||
|
/// <param name="xOffset"></param>
|
||||||
|
/// <param name="yOffset"></param>
|
||||||
|
/// <param name="spacing"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
private void DrawStrips(Graphics g, Brush brush, double[] spectrumData, int stripCount, int drawingWidth, float xOffset, float yOffset, float spacing, double scale) {
|
||||||
|
float stripWidth = (drawingWidth - spacing * stripCount) / stripCount;
|
||||||
|
PointF[] points = new PointF[stripCount];
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
double x = stripWidth * i + spacing * i + xOffset;
|
||||||
|
double y = spectrumData[i * spectrumData.Length / stripCount] * scale; // height
|
||||||
|
points[i] = new PointF((float)x, (float)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < stripCount; i++) {
|
||||||
|
PointF p = points[i];
|
||||||
|
float y = yOffset;
|
||||||
|
float height = p.Y;
|
||||||
|
|
||||||
|
if (height < 0) {
|
||||||
|
y += height;
|
||||||
|
height = -height;
|
||||||
|
}
|
||||||
|
|
||||||
|
g.FillRectangle(brush, new RectangleF(p.X, y, stripWidth, height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı߿<C4B1>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="g"></param>
|
||||||
|
/// <param name="inner"></param>
|
||||||
|
/// <param name="outer"></param>
|
||||||
|
/// <param name="area"></param>
|
||||||
|
/// <param name="scale"></param>
|
||||||
|
/// <param name="width"></param>
|
||||||
|
private void DrawGradientBorder(Graphics g, Color inner, Color outer, Rectangle area, double scale, float width) {
|
||||||
|
int thickness = (int)(width * scale);
|
||||||
|
if (thickness < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Rectangle rect = new Rectangle(area.X, area.Y, area.Width, area.Height);
|
||||||
|
|
||||||
|
Rectangle up = new Rectangle(rect.Location, new Size(rect.Width, thickness));
|
||||||
|
Rectangle down = new Rectangle(new Point(rect.X, (int)(rect.X + rect.Height - scale * width)), new Size(rect.Width, thickness));
|
||||||
|
Rectangle left = new Rectangle(rect.Location, new Size(thickness, rect.Height));
|
||||||
|
Rectangle right = new Rectangle(new Point((int)(rect.X + rect.Width - scale * width), rect.Y), new Size(thickness, rect.Height));
|
||||||
|
|
||||||
|
LinearGradientBrush upB = new LinearGradientBrush(up, outer, inner, LinearGradientMode.Vertical);
|
||||||
|
LinearGradientBrush downB = new LinearGradientBrush(down, inner, outer, LinearGradientMode.Vertical);
|
||||||
|
LinearGradientBrush leftB = new LinearGradientBrush(left, outer, inner, LinearGradientMode.Horizontal);
|
||||||
|
LinearGradientBrush rightB = new LinearGradientBrush(right, inner, outer, LinearGradientMode.Horizontal);
|
||||||
|
|
||||||
|
upB.WrapMode = downB.WrapMode = leftB.WrapMode = rightB.WrapMode = WrapMode.TileFlipXY;
|
||||||
|
|
||||||
|
g.FillRectangle(upB, up);
|
||||||
|
g.FillRectangle(downB, down);
|
||||||
|
g.FillRectangle(leftB, left);
|
||||||
|
g.FillRectangle(rightB, right);
|
||||||
|
}
|
||||||
|
|
||||||
|
int colorIndex = 0;
|
||||||
|
double rotation = 0;
|
||||||
|
BufferedGraphics? oldBuffer;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
private void DrawingTimer_Tick(object? sender, EventArgs e) {
|
||||||
|
if (spectrumData == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rotation += .1;
|
||||||
|
colorIndex++;
|
||||||
|
|
||||||
|
Color color1 = allColors[colorIndex % allColors.Length];
|
||||||
|
Color color2 = allColors[(colorIndex + 200) % allColors.Length];
|
||||||
|
|
||||||
|
double[] bassArea = Visualizer.TakeSpectrumOfFrequency(spectrumData, capture.WaveFormat.SampleRate, 250); // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||||||
|
double bassScale = bassArea.Average() * 100; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
|
double extraScale = Math.Min(drawingPanel.Width, drawingPanel.Height) / 6; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>ϴ<EFBFBD><CFB4>ڴ<EFBFBD>С)
|
||||||
|
|
||||||
|
Rectangle border = new Rectangle(Point.Empty, drawingPanel.Size);
|
||||||
|
|
||||||
|
BufferedGraphics buffer = BufferedGraphicsManager.Current.Allocate(drawingPanel.CreateGraphics(), drawingPanel.ClientRectangle);
|
||||||
|
Graphics g = buffer.Graphics;
|
||||||
|
|
||||||
|
if (oldBuffer != null) {
|
||||||
|
//oldBuffer.Render(buffer.Graphics); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫʵ<D2AA><CAB5> "<22><>Ӱ" Ч<><D0A7>, <20><>ȡ<EFBFBD><C8A1>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>, <20><><EFBFBD>ҽ<EFBFBD> g.Clear <20><>Ϊ g.FillRectange(xxx, <20><><EFBFBD><CDB8><EFBFBD>ĺ<EFBFBD>ɫ)
|
||||||
|
oldBuffer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
using Pen pen = new Pen(Color.Pink); // <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õı<C3B5>
|
||||||
|
|
||||||
|
g.SmoothingMode = SmoothingMode.HighQuality; // <20><><EFBFBD>˺<EFBFBD>, <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||||
|
g.Clear(drawingPanel.BackColor);
|
||||||
|
<<<<<<< HEAD
|
||||||
|
if (backgroundImage != null && generalConfigurationObjects.BackImgOrNot) {
|
||||||
|
g.DrawImage(backgroundImage, 0, 0);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Frame) {
|
||||||
|
DrawGradientBorder(g, Color.FromArgb(0, color1), color2, border, bassScale, drawingPanel.Width / 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Stripe) {
|
||||||
|
DrawGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width, 0, drawingPanel.Height, generalConfigurationObjects.StripeSpacing, -drawingPanel.Height * 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.Rotundity) {
|
||||||
|
DrawCircleGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width / 2, drawingPanel.Height / 2, MathF.Min(drawingPanel.Width, drawingPanel.Height) / 4 + extraScale * bassScale, 1, rotation, drawingPanel.Width / 6 * 10);
|
||||||
|
}
|
||||||
|
if (generalConfigurationObjects.WavyLine) {
|
||||||
|
DrawCurve(g, pen, visualizer.SampleData, visualizer.SampleData.Length, drawingPanel.Width, 0, drawingPanel.Height / 2, MathF.Min(drawingPanel.Height / 10, 100));
|
||||||
|
}
|
||||||
|
buffer.Render();
|
||||||
|
=======
|
||||||
|
if (backgroundImage != null && configurationObject.BackImgOrNot) {
|
||||||
|
g.DrawImage(backgroundImage, 0, 0);
|
||||||
|
}
|
||||||
|
if (configurationObject.Frame) {
|
||||||
|
DrawGradientBorder(g, Color.FromArgb(0, color1), color2, border, bassScale, drawingPanel.Width / 10);
|
||||||
|
}
|
||||||
|
if (configurationObject.Stripe) {
|
||||||
|
DrawGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width, 0, drawingPanel.Height, 3, -drawingPanel.Height * 10);
|
||||||
|
}
|
||||||
|
if (configurationObject.Rotundity) {
|
||||||
|
DrawCircleGradientStrips(g, color1, color2, spectrumData, spectrumData.Length, drawingPanel.Width / 2, drawingPanel.Height / 2, MathF.Min(drawingPanel.Width, drawingPanel.Height) / 4 + extraScale * bassScale, 1, rotation, drawingPanel.Width / 6 * 10);
|
||||||
|
}
|
||||||
|
if (configurationObject.WavyLine) {
|
||||||
|
DrawCurve(g, pen, visualizer.SampleData, visualizer.SampleData.Length, drawingPanel.Width, 0, drawingPanel.Height / 2, MathF.Min(drawingPanel.Height / 10, 100));
|
||||||
|
}
|
||||||
|
buffer.Render();
|
||||||
|
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
oldBuffer = buffer; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> buffer (֮<><D6AE><EFBFBD>Բ<EFBFBD>ȫ<EFBFBD><C8AB>ֻʹ<D6BB><CAB9>һ<EFBFBD><D2BB> Buffer <20><><EFBFBD><EFBFBD>Ϊ,,, <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>С, <20><><EFBFBD><EFBFBD>ÿһ֡<D2BB><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ)
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindow_Load(object sender, EventArgs e) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
SetBounds(offsetx, offsety, width, height);
|
||||||
|
=======
|
||||||
|
int iActulaWidth = Screen.PrimaryScreen.Bounds.Width;
|
||||||
|
|
||||||
|
int iActulaHeight = Screen.PrimaryScreen.Bounds.Height;
|
||||||
|
SetBounds(0, 0, iActulaWidth, iActulaHeight);
|
||||||
|
if (configurationObject.BackImgOrNot && configurationObject.BackgroundImagePath != null) {
|
||||||
|
//BackgroundImage = Image.FromFile(configurationObject.BackgroundImagePath);
|
||||||
|
backgroundImage = new Bitmap(iActulaWidth, iActulaHeight);
|
||||||
|
using (var graphics = Graphics.FromImage(backgroundImage)) {
|
||||||
|
graphics.DrawImage(Image.FromFile(configurationObject.BackgroundImagePath), 0, 0, iActulaWidth, iActulaHeight);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
BackColor = configurationObject.BackgroundColor;
|
||||||
|
}
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
|
||||||
|
capture.StartRecording();
|
||||||
|
dataTimer.Start();
|
||||||
|
drawingTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindow_FormClosed(object sender, FormClosedEventArgs e) {
|
||||||
|
Environment.Exit(0);
|
||||||
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
protected override void WndProc(ref Message m) {
|
||||||
|
if (appBarManager != null && m.Msg == appBarManager.uCallbackMessage) {
|
||||||
|
switch ((int)m.WParam) {
|
||||||
|
case AppBarManager.ABN_FULLSCREENAPP:
|
||||||
|
bool isFullScreen = m.LParam != IntPtr.Zero;
|
||||||
|
if (isFullScreen) {
|
||||||
|
SetFrom.FullScreenWindowCount++;
|
||||||
|
} else {
|
||||||
|
SetFrom.FullScreenWindowCount--;
|
||||||
|
}
|
||||||
|
ChangeStatus(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
FullScreenDetectedEvent(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
base.WndProc(ref m);
|
||||||
|
|
||||||
|
}
|
||||||
|
public void DisposeAppBarManager() {
|
||||||
|
appBarManager.Dispose();
|
||||||
|
}
|
||||||
|
public void ReShow(int x, int y, int width, int height) {
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
SetBounds(x, y, width, height);
|
||||||
|
LoadBack();
|
||||||
|
//Win32.SetParent(this.Handle, IntPtr.Zero);
|
||||||
|
//Win32.SetParent(this.Handle, programIntPtr);
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
public void ReShow(GeneralConfigurationObjects generalConfigurationObjects) {
|
||||||
|
this.generalConfigurationObjects = generalConfigurationObjects;
|
||||||
|
LoadBack();
|
||||||
|
allColors = GetAllHsvColors(generalConfigurationObjects.NumberOfColors);
|
||||||
|
}
|
||||||
|
public void ChangeStatus(bool status) {
|
||||||
|
if (!status && generalConfigurationObjects.AutoStopWallPaper) {
|
||||||
|
dataTimer.Stop();
|
||||||
|
drawingTimer.Stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Invoke(new Action(() => {
|
||||||
|
dataTimer.Start();
|
||||||
|
drawingTimer.Start();
|
||||||
|
}));
|
||||||
|
|
||||||
|
}
|
||||||
|
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
||||||
|
public void LoadBack() {
|
||||||
|
if (generalConfigurationObjects.BackImgOrNot && generalConfigurationObjects.BackgroundImagePath != null) {
|
||||||
|
//BackgroundImage = Image.FromFile(generalConfigurationObjects.BackgroundImagePath);
|
||||||
|
using (var originalImage = Image.FromFile(generalConfigurationObjects.BackgroundImagePath)) {
|
||||||
|
double widthScale = (double)width / originalImage.Width;
|
||||||
|
double heightScale = (double)height / originalImage.Height;
|
||||||
|
double scale = Math.Min(widthScale, heightScale);
|
||||||
|
int newWidth = (int)(originalImage.Width * scale);
|
||||||
|
int newHeight = (int)(originalImage.Height * scale);
|
||||||
|
int bgioffsetX = (width - newWidth) / 2;
|
||||||
|
int bgioffsetY = (height - newHeight) / 2;
|
||||||
|
backgroundImage = new Bitmap(width, height);
|
||||||
|
using (var graphics = Graphics.FromImage(backgroundImage)) {
|
||||||
|
graphics.DrawImage(originalImage, bgioffsetX, bgioffsetY, newWidth, newHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
BackColor = generalConfigurationObjects.BackgroundColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
=======
|
||||||
|
|
||||||
|
private void DrawingPanel_MouseDoubleClick(object sender, MouseEventArgs e) {
|
||||||
|
//WindowState = WindowState != FormWindowState.Maximized ? FormWindowState.Maximized : FormWindowState.Normal;
|
||||||
|
//FormBorderStyle = WindowState == FormWindowState.Maximized ? FormBorderStyle.None : FormBorderStyle.Sizable;
|
||||||
|
|
||||||
|
}
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
public void Init() {
|
||||||
|
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ش<EFBFBD><D8B4>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
programIntPtr = Win32.FindWindow("Progman", null);
|
||||||
|
|
||||||
|
// <20><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>Ч
|
||||||
|
if (programIntPtr != IntPtr.Zero) {
|
||||||
|
|
||||||
|
IntPtr result = IntPtr.Zero;
|
||||||
|
|
||||||
|
// <20><> Program Manager <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD> 0x52c <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ0x3e8<65><38>1<EFBFBD>룩<EFBFBD><EBA3A9>
|
||||||
|
Win32.SendMessageTimeout(programIntPtr, 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 0x3e8, result);
|
||||||
|
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Win32.EnumWindows((hwnd, lParam) => {
|
||||||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD> SHELLDLL_DefView <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD> WorkerW
|
||||||
|
if (Win32.FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero) {
|
||||||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD>ǰ WorkerW <20><><EFBFBD>ڵģ<DAB5><C4A3><EFBFBD>һ<EFBFBD><D2BB> WorkerW <20><><EFBFBD>ڡ<EFBFBD>
|
||||||
|
IntPtr tempHwnd = Win32.FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null);
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Win32.ShowWindow(tempHwnd, 0);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
}
|
||||||
|
|
||||||
|
=======
|
||||||
|
|
||||||
|
private void ExitWallpaperToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
Environment.Exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SettingSToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
SetFrom setFrom = SetFrom.ShowSetFrom(this);
|
||||||
|
if (!setFrom.Visible) {
|
||||||
|
setFrom.ShowDialog();
|
||||||
|
} else {
|
||||||
|
setFrom.WindowState = FormWindowState.Normal;
|
||||||
|
setFrom.Activate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainWindow_SizeChanged(object sender, EventArgs e) {
|
||||||
|
int iActulaWidth = Screen.PrimaryScreen.Bounds.Width;
|
||||||
|
|
||||||
|
int iActulaHeight = Screen.PrimaryScreen.Bounds.Height;
|
||||||
|
SetBounds(0, 0, iActulaWidth, iActulaHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ReStartAPPRToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
Process.Start(Application.StartupPath + Application.ProductName + ".exe");
|
||||||
|
Process.GetCurrentProcess()?.Kill();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AboutUsToolStripMenuItem_Click(object sender, EventArgs e) {
|
||||||
|
new VersionInformationForm().ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static class Win32 {
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr FindWindow(string className, string winName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr SendMessageTimeout(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam, uint fuFlage, uint timeout, IntPtr result);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam);
|
||||||
|
public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string winName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr SetParent(IntPtr hwnd, IntPtr parentHwnd);
|
||||||
|
}
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
126
AudioVisualizer/MainWindow.resx
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="dataTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>67, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="drawingTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>180, 14</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
230
AudioVisualizer/MainWindow.resx.orig
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="dataTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<<<<<<< HEAD
|
||||||
|
<value>67, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="drawingTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>180, 14</value>
|
||||||
|
</metadata>
|
||||||
|
=======
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="drawingTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>155, 18</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="contextMenuStripSystemTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>330, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="notifyIconSystemTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>495, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="notifyIconSystemTray.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAAAAAAAEAIADDEwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
|
||||||
|
SFlzAAAOxAAADsQBlSsOGwAAE3VJREFUeJzt3XuUJFV9B/Dvr+dR1cuywspDke3qXRAwAYnyxihgICcY
|
||||||
|
TESRqFE4RwWTg8h2zbKAIu6JSJZ1poZHkJz1eAI+IyBgApiokOhRBBVBMfFgkJ1qYBUFVhZ2u2pmun75
|
||||||
|
g1nZR1VPP253V8/9fv7sW/f270xPfbtefS9ARERERERERERERERERERERERERERERERERERERERERERE
|
||||||
|
RERERERERERERERERERERERERERERERERERERERE85F+F0C9ccCq5/epJyNfVOCU7K30U2FQvLR3VVG/
|
||||||
|
MQAWuP0runRI4o0AnKY7CT4TTrjnda8qygsGwALmVaIAgkq7/cPA5f/HAscPeIHy/Og5AEs6HYchsLDx
|
||||||
|
w12AjjhXR55eHE+bGo8hsHDxg12APD9SowOK/CCccI43OiblwnC/CyCzSmPxGdB59n+Vt4eTzm3b9blB
|
||||||
|
VM/O3l6PM1Yg5QqPABaYRt/+ClxQDdxr2unL04CFiR/qApO1ExdET9gwUfxuu/0BfDYM3HM7Ko5yh6cA
|
||||||
|
C0hpLLoe6bvvxmZ2fgCoq7x2SPRnKU3nAGAALDAMgAVEFKenvV6oz76+2TGemHQe9vzIXFGUawyAhWXf
|
||||||
|
tBc3XL34qRbH+T2APTovh/KOAUBpngEDwAoMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhi
|
||||||
|
DAAiizEAiCzGACCyGAOAyGIMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhiDAAiizEAumzZ
|
||||||
|
6i37DdWHj04Uh0Pxi/pI/d4n1y16ot915cX+FS0OIXqPihwlioNRwI8U8sPqhHNLv2uzAQOgCzy/dhIg
|
||||||
|
dwFwMQso9MU12AQYni3gpYU39CthUHxP/yrtn9JYdIEorgJiAPKHvw8UJwr0D38jAdZNBe5FfSx1QePa
|
||||||
|
gAYdeP7ze8+MjPwawFCLXYMwcMc6ff+sdf1aXdjT86NHARzQ6TiZ41fi+yB6TCt9FPq+alD8oon3p5fw
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
</root>
|
||||||
176
AudioVisualizer/MyPanel.cs
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class PanelEx : Control {
|
||||||
|
private float _iBorderThickness = 1f;
|
||||||
|
private float _iOpacity = 1f;
|
||||||
|
private Brush _brushBg = null;
|
||||||
|
private Pen _penFg = null;
|
||||||
|
|
||||||
|
public PanelEx() {
|
||||||
|
this.SetStyle(ControlStyles.SupportsTransparentBackColor |
|
||||||
|
ControlStyles.Opaque, true);
|
||||||
|
this.BackColor = Color.Transparent;
|
||||||
|
BackgroundBrush = Brushes.Transparent;
|
||||||
|
ForegroundPen = Pens.Black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Propertys
|
||||||
|
#region HideParent
|
||||||
|
[Browsable(false)]
|
||||||
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||||
|
public override string Text {
|
||||||
|
get { return base.Text; }
|
||||||
|
set { base.Text = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||||
|
public override Image BackgroundImage {
|
||||||
|
get { return base.BackgroundImage; }
|
||||||
|
set { base.BackgroundImage = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||||
|
public override ImageLayout BackgroundImageLayout {
|
||||||
|
get {
|
||||||
|
return base.BackgroundImageLayout;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
base.BackgroundImageLayout = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public override Color BackColor {
|
||||||
|
get {
|
||||||
|
return base.BackColor;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
base.BackColor = value;
|
||||||
|
ResetBgBrush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//[EditorAttribute(typeof(BrushTypeEditor), typeof(System.Drawing.Design.UITypeEditor))]
|
||||||
|
//public double Background
|
||||||
|
//{
|
||||||
|
// get;
|
||||||
|
// set;
|
||||||
|
//}
|
||||||
|
|
||||||
|
public override Color ForeColor {
|
||||||
|
get {
|
||||||
|
return base.ForeColor;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
base.ForeColor = value;
|
||||||
|
ResetFgPen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public float BorderThickness {
|
||||||
|
get { return _iBorderThickness; }
|
||||||
|
set {
|
||||||
|
if (value < 0) {
|
||||||
|
throw new Exception("Out off range");
|
||||||
|
}
|
||||||
|
_iBorderThickness = value;
|
||||||
|
ResetFgPen();
|
||||||
|
ResetDrawRect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual float RotateAngle {
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public float Opacity {
|
||||||
|
get { return _iOpacity; }
|
||||||
|
set {
|
||||||
|
if (value > 1 || value < 0) {
|
||||||
|
throw new Exception("Out of range,the Value be in [0,1]");
|
||||||
|
} else {
|
||||||
|
_iOpacity = value;
|
||||||
|
ResetBrushes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override CreateParams CreateParams {
|
||||||
|
get {
|
||||||
|
CreateParams cp = base.CreateParams;
|
||||||
|
cp.ExStyle = 0x20;
|
||||||
|
return cp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual Brush BackgroundBrush {
|
||||||
|
get { return _brushBg; }
|
||||||
|
set { _brushBg = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual Pen ForegroundPen {
|
||||||
|
get { return _penFg; }
|
||||||
|
set { _penFg = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual RectangleF DrawRect {
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
protected override void OnPaint(PaintEventArgs e) {
|
||||||
|
base.OnPaint(e);
|
||||||
|
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnSizeChanged(EventArgs e) {
|
||||||
|
base.OnSizeChanged(e);
|
||||||
|
ResetDrawRect();
|
||||||
|
}
|
||||||
|
protected override void OnPaddingChanged(EventArgs e) {
|
||||||
|
base.OnPaddingChanged(e);
|
||||||
|
ResetDrawRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ResetBrushes() {
|
||||||
|
ResetBgBrush();
|
||||||
|
ResetFgPen();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ResetBgBrush() {
|
||||||
|
BackgroundBrush = new SolidBrush(GetOpacityColor(BackColor, Opacity));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ResetFgPen() {
|
||||||
|
ForegroundPen = new Pen(GetOpacityColor(ForeColor, Opacity), BorderThickness);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Color GetOpacityColor(Color baseColor, float op) {
|
||||||
|
return Color.FromArgb(Convert.ToInt32(op * baseColor.A), baseColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetDrawRect() {
|
||||||
|
float dbwidth = 2 * BorderThickness;
|
||||||
|
float halfwidth = BorderThickness / 2;
|
||||||
|
int paddingWhith = Padding.Left + Padding.Right;
|
||||||
|
int paddingHeight = Padding.Top + Padding.Bottom;
|
||||||
|
if (dbwidth > Width - paddingWhith || dbwidth > Height - paddingHeight) {
|
||||||
|
DrawRect = this.Bounds;
|
||||||
|
} else {
|
||||||
|
DrawRect = new RectangleF(Padding.Left + halfwidth,
|
||||||
|
Padding.Top + halfwidth,
|
||||||
|
Width - BorderThickness - paddingWhith,
|
||||||
|
Height - BorderThickness - paddingHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
70
AudioVisualizer/Program.cs
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
internal static class Program {
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool FlashWindowEx(int pfwi);
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[DllImport("kernel32.dll")]
|
||||||
|
public static extern bool AllocConsole();
|
||||||
|
[DllImport("kernel32.dll")]
|
||||||
|
public static extern bool FreeConsole();//<2F>ͷŹ<CDB7><C5B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
[STAThread]
|
||||||
|
static void Main(String[] args) {
|
||||||
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
|
// see https://aka.ms/applicationconfiguration.
|
||||||
|
bool createdNew;
|
||||||
|
bool DoesTheGuardianExist = false;
|
||||||
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ψһ<CEA8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB>
|
||||||
|
using (Mutex mutex = new Mutex(true, "{C8F8E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out createdNew)) {
|
||||||
|
if (createdNew) {
|
||||||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//if (args.Length < 1) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!args[0].Equals("ManagerStart")) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!args[1].Equals("1")) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
#if !DEBUG
|
||||||
|
|
||||||
|
Mutex Dmutex = new Mutex(true, "{C9F9E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out DoesTheGuardianExist);
|
||||||
|
if (DoesTheGuardianExist) {
|
||||||
|
Dmutex.ReleaseMutex();
|
||||||
|
Dmutex.Dispose();
|
||||||
|
mutex.ReleaseMutex();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Dmutex.Dispose();
|
||||||
|
#endif
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨
|
||||||
|
AllocConsole();
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崴<EFBFBD><E5B4B4><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ǰû<C7B0><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
ApplicationConfiguration.Initialize();
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
FormManager formManager = new FormManager();
|
||||||
|
Application.Run();
|
||||||
|
//<2F>ͷſ<CDB7><C5BF><EFBFBD>̨
|
||||||
|
FreeConsole();
|
||||||
|
mutex.ReleaseMutex(); // <20>ͷŻ<CDB7><C5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
92
AudioVisualizer/Program.cs.orig
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
=======
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
internal static class Program {
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool FlashWindowEx(int pfwi);
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
///
|
||||||
|
[DllImport("kernel32.dll")]
|
||||||
|
public static extern bool AllocConsole();
|
||||||
|
[DllImport("kernel32.dll")]
|
||||||
|
public static extern bool FreeConsole();//<2F>ͷŹ<CDB7><C5B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
[STAThread]
|
||||||
|
static void Main(String[] args) {
|
||||||
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
|
// see https://aka.ms/applicationconfiguration.
|
||||||
|
bool createdNew;
|
||||||
|
bool DoesTheGuardianExist = false;
|
||||||
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ψһ<CEA8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB>
|
||||||
|
using (Mutex mutex = new Mutex(true, "{C8F8E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out createdNew)) {
|
||||||
|
if (createdNew) {
|
||||||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//if (args.Length < 1) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!args[0].Equals("ManagerStart")) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!args[1].Equals("1")) {
|
||||||
|
// mutex.ReleaseMutex();
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
#if !DEBUG
|
||||||
|
|
||||||
|
Mutex Dmutex = new Mutex(true, "{C9F9E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out DoesTheGuardianExist);
|
||||||
|
if (DoesTheGuardianExist) {
|
||||||
|
Dmutex.ReleaseMutex();
|
||||||
|
Dmutex.Dispose();
|
||||||
|
mutex.ReleaseMutex();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Dmutex.Dispose();
|
||||||
|
#endif
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨
|
||||||
|
AllocConsole();
|
||||||
|
=======
|
||||||
|
[STAThread]
|
||||||
|
static void Main() {
|
||||||
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
|
// see https://aka.ms/applicationconfiguration.
|
||||||
|
bool createdNew;
|
||||||
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ψһ<CEA8>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB>
|
||||||
|
using (Mutex mutex = new Mutex(true, "{C8F8E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out createdNew)) {
|
||||||
|
if (createdNew) {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崴<EFBFBD><E5B4B4><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ǰû<C7B0><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
ApplicationConfiguration.Initialize();
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
FormManager formManager = new FormManager();
|
||||||
|
Application.Run();
|
||||||
|
//<2F>ͷſ<CDB7><C5BF><EFBFBD>̨
|
||||||
|
FreeConsole();
|
||||||
|
=======
|
||||||
|
Application.Run(new MainWindow());
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
mutex.ReleaseMutex(); // <20>ͷŻ<CDB7><C5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Any CPU</Platform>
|
||||||
|
<PublishDir>bin\Release\net6.0-windows\publish\</PublishDir>
|
||||||
|
<PublishProtocol>FileSystem</PublishProtocol>
|
||||||
|
<_TargetId>Folder</_TargetId>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Any CPU</Platform>
|
||||||
|
<PublishDir>bin\Release\net6.0-windows\publish\win-x64\</PublishDir>
|
||||||
|
<PublishProtocol>FileSystem</PublishProtocol>
|
||||||
|
<_TargetId>Folder</_TargetId>
|
||||||
|
<TargetFramework>net6.0-windows</TargetFramework>
|
||||||
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
<SelfContained>false</SelfContained>
|
||||||
|
<PublishSingleFile>false</PublishSingleFile>
|
||||||
|
<PublishReadyToRun>true</PublishReadyToRun>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<History>True|2024-09-16T05:28:12.4883887Z;False|2024-09-15T14:54:39.4096870+08:00;True|2024-07-06T21:39:30.9825159+08:00;True|2024-07-03T04:13:41.1394986+08:00;False|2024-07-03T04:12:59.2893619+08:00;True|2024-07-01T05:06:24.1367448+08:00;True|2024-07-01T05:02:36.4823466+08:00;True|2024-07-01T04:46:59.2121010+08:00;True|2024-01-21T20:14:21.6948634+08:00;True|2024-01-17T19:27:25.9806490+08:00;False|2024-01-17T19:25:05.5783143+08:00;True|2023-12-22T11:58:53.2362501+08:00;True|2023-12-22T10:49:44.8516367+08:00;True|2023-12-22T10:49:03.8170596+08:00;True|2023-12-22T10:36:46.6196209+08:00;True|2023-12-22T10:36:12.8935472+08:00;True|2023-09-27T08:32:05.6491812+08:00;True|2023-09-26T11:05:25.7324987+08:00;True|2023-09-26T11:05:03.1754028+08:00;True|2023-09-26T11:04:18.9806738+08:00;True|2023-09-26T11:03:15.6077214+08:00;True|2023-09-26T10:43:57.0321057+08:00;True|2023-09-26T10:42:48.3370646+08:00;True|2023-09-26T10:39:54.8449024+08:00;True|2023-09-22T12:00:16.8730995+08:00;True|2023-09-22T11:00:49.7372040+08:00;True|2023-09-22T10:59:01.9330159+08:00;True|2023-09-22T10:39:59.9135149+08:00;True|2023-09-20T19:22:38.0523342+08:00;True|2023-09-20T19:02:31.0651458+08:00;True|2023-09-20T08:50:23.8413611+08:00;True|2023-09-20T08:48:53.9236985+08:00;True|2023-09-20T08:48:06.8484981+08:00;True|2023-09-20T08:47:08.4124127+08:00;True|2023-09-19T20:19:54.7069919+08:00;True|2023-09-19T20:15:39.3422047+08:00;True|2023-09-19T20:03:01.7485613+08:00;True|2023-09-19T20:01:49.9576023+08:00;True|2023-09-19T15:02:02.6768088+08:00;True|2023-09-19T14:41:38.2193731+08:00;True|2023-09-19T14:34:19.6704409+08:00;True|2023-09-19T14:31:22.8745473+08:00;True|2023-09-19T14:30:40.4650538+08:00;</History>
|
||||||
|
<LastFailureDetails />
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
113
AudioVisualizer/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace AudioWallpaper.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||||
|
/// </summary>
|
||||||
|
// 此类是由 StronglyTypedResourceBuilder
|
||||||
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||||
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||||
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AudioWallpaper.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||||
|
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap exit {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("exit", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Icon FM_channel {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("FM_channel", resourceCulture);
|
||||||
|
return ((System.Drawing.Icon)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap reboot {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("reboot", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap setting {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("setting", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap VersionInformation {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("VersionInformation", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
124
AudioVisualizer/Properties/Resources.Designer.cs.orig
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
namespace AudioWallpaper.Properties {
|
||||||
|
=======
|
||||||
|
namespace AudioVisualizer.Properties {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||||
|
/// </summary>
|
||||||
|
// 此类是由 StronglyTypedResourceBuilder
|
||||||
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||||
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||||
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AudioWallpaper.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
=======
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AudioVisualizer.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||||
|
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap exit {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("exit", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Icon FM_channel {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("FM_channel", resourceCulture);
|
||||||
|
return ((System.Drawing.Icon)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap reboot {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("reboot", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap setting {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("setting", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap VersionInformation {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("VersionInformation", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
136
AudioVisualizer/Properties/Resources.resx
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="VersionInformation" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\VersionInformation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="reboot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\reboot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="exit" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="FM_channel" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\FM-channel.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
139
AudioVisualizer/Properties/Resources.resx.orig
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="VersionInformation" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\VersionInformation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="reboot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\reboot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="exit" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
<data name="FM_channel" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\FM-channel.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
</root>
|
||||||
BIN
AudioVisualizer/Resources/FM-channel.ico
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
AudioVisualizer/Resources/Image1.bmp
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
AudioVisualizer/Resources/VersionInformation.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
AudioVisualizer/Resources/exit.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
AudioVisualizer/Resources/reboot.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
AudioVisualizer/Resources/setting.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
953
AudioVisualizer/SetForm.Designer.cs
generated
Normal file
@@ -0,0 +1,953 @@
|
|||||||
|
namespace AudioWallpaper {
|
||||||
|
partial class SetFrom {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetFrom));
|
||||||
|
tabControl = new TabControl();
|
||||||
|
Routine = new TabPage();
|
||||||
|
MultiMonitorCompatibility = new GroupBox();
|
||||||
|
RoutineCheckBoxAutoStop = new CheckBox();
|
||||||
|
LableRoutineAutoStop = new Label();
|
||||||
|
checkBoxUsingUnifiedConfiguration = new CheckBox();
|
||||||
|
LabelUsingUnifiedConfiguration = new Label();
|
||||||
|
DisplayName = new Label();
|
||||||
|
checkBoxIsShow = new CheckBox();
|
||||||
|
IsTheMonitorEnabled = new Label();
|
||||||
|
DisplayRegistrationName = new Label();
|
||||||
|
groupBoxColor = new GroupBox();
|
||||||
|
labelBackgroundImg = new Label();
|
||||||
|
BackgroundImage = new PictureBox();
|
||||||
|
labelBackImgOrBackColor = new Label();
|
||||||
|
checkBoxImgOrColor = new CheckBox();
|
||||||
|
labelBackgroundCOlor = new Label();
|
||||||
|
BackgroundColor = new PictureBox();
|
||||||
|
checkBoxUseDefault = new CheckBox();
|
||||||
|
labelUseSystemColor = new Label();
|
||||||
|
labelNumberOfColors = new Label();
|
||||||
|
numericUpDownNumberOfColors = new NumericUpDown();
|
||||||
|
StartColor = new PictureBox();
|
||||||
|
labelMonochrome = new Label();
|
||||||
|
StopColor = new PictureBox();
|
||||||
|
checkBoxMonochrome = new CheckBox();
|
||||||
|
labelStartColor = new Label();
|
||||||
|
labelStopColor = new Label();
|
||||||
|
buttonReset = new Button();
|
||||||
|
buttonSave = new Button();
|
||||||
|
Display = new GroupBox();
|
||||||
|
label2 = new Label();
|
||||||
|
checkBoxSmoothStripe = new CheckBox();
|
||||||
|
checkBoxBottomEdge = new CheckBox();
|
||||||
|
checkBoxRotundity = new CheckBox();
|
||||||
|
checkBoxFrame = new CheckBox();
|
||||||
|
checkBoxWavyLine = new CheckBox();
|
||||||
|
labelBottomEdge = new Label();
|
||||||
|
labelRotundity = new Label();
|
||||||
|
labelFrame = new Label();
|
||||||
|
labelWaveLineDisplay = new Label();
|
||||||
|
Effect = new GroupBox();
|
||||||
|
labelWindowFuncText = new Label();
|
||||||
|
selectWindowFunc = new ComboBox();
|
||||||
|
numericUpDownFourierVariation = new NumericUpDown();
|
||||||
|
labelFourierVariation = new Label();
|
||||||
|
numericUpDownSpectralShift = new NumericUpDown();
|
||||||
|
numericUpDownRhythmicMagnification = new NumericUpDown();
|
||||||
|
labelSpectralShift = new Label();
|
||||||
|
labelRhythmicMagnification = new Label();
|
||||||
|
Other = new TabPage();
|
||||||
|
ThirdParty = new GroupBox();
|
||||||
|
CheckBoxAutoStop = new CheckBox();
|
||||||
|
OtherDisplayName = new Label();
|
||||||
|
LabelAutoStop = new Label();
|
||||||
|
label3 = new Label();
|
||||||
|
panelEx1 = new PanelEx();
|
||||||
|
VideoRateLabel = new Label();
|
||||||
|
trackBarVideoVolume = new TrackBar();
|
||||||
|
VideoVolumeLabel = new Label();
|
||||||
|
trackBarVideoRate = new TrackBar();
|
||||||
|
videoView1 = new LibVLCSharp.WinForms.VideoView();
|
||||||
|
UseOtherWallpaper = new CheckBox();
|
||||||
|
label1 = new Label();
|
||||||
|
OtherResetBtn = new Button();
|
||||||
|
OtherSaveBtn = new Button();
|
||||||
|
label4 = new Label();
|
||||||
|
numericUpDownStripeSpacing = new NumericUpDown();
|
||||||
|
tabControl.SuspendLayout();
|
||||||
|
Routine.SuspendLayout();
|
||||||
|
MultiMonitorCompatibility.SuspendLayout();
|
||||||
|
groupBoxColor.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)BackgroundImage).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)BackgroundColor).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownNumberOfColors).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)StartColor).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)StopColor).BeginInit();
|
||||||
|
Display.SuspendLayout();
|
||||||
|
Effect.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownFourierVariation).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownSpectralShift).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownRhythmicMagnification).BeginInit();
|
||||||
|
Other.SuspendLayout();
|
||||||
|
ThirdParty.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackBarVideoVolume).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackBarVideoRate).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)videoView1).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownStripeSpacing).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// tabControl
|
||||||
|
//
|
||||||
|
tabControl.Controls.Add(Routine);
|
||||||
|
tabControl.Controls.Add(Other);
|
||||||
|
tabControl.Dock = DockStyle.Fill;
|
||||||
|
tabControl.Location = new Point(0, 0);
|
||||||
|
tabControl.Name = "tabControl";
|
||||||
|
tabControl.SelectedIndex = 0;
|
||||||
|
tabControl.Size = new Size(313, 722);
|
||||||
|
tabControl.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// Routine
|
||||||
|
//
|
||||||
|
Routine.Controls.Add(MultiMonitorCompatibility);
|
||||||
|
Routine.Controls.Add(groupBoxColor);
|
||||||
|
Routine.Controls.Add(buttonReset);
|
||||||
|
Routine.Controls.Add(buttonSave);
|
||||||
|
Routine.Controls.Add(Display);
|
||||||
|
Routine.Controls.Add(Effect);
|
||||||
|
Routine.Location = new Point(4, 26);
|
||||||
|
Routine.Name = "Routine";
|
||||||
|
Routine.Padding = new Padding(3);
|
||||||
|
Routine.Size = new Size(305, 692);
|
||||||
|
Routine.TabIndex = 0;
|
||||||
|
Routine.Text = "常规";
|
||||||
|
Routine.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// MultiMonitorCompatibility
|
||||||
|
//
|
||||||
|
MultiMonitorCompatibility.Controls.Add(RoutineCheckBoxAutoStop);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(LableRoutineAutoStop);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(checkBoxUsingUnifiedConfiguration);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(LabelUsingUnifiedConfiguration);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(DisplayName);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(checkBoxIsShow);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(IsTheMonitorEnabled);
|
||||||
|
MultiMonitorCompatibility.Controls.Add(DisplayRegistrationName);
|
||||||
|
MultiMonitorCompatibility.Location = new Point(8, 537);
|
||||||
|
MultiMonitorCompatibility.Name = "MultiMonitorCompatibility";
|
||||||
|
MultiMonitorCompatibility.Size = new Size(289, 122);
|
||||||
|
MultiMonitorCompatibility.TabIndex = 5;
|
||||||
|
MultiMonitorCompatibility.TabStop = false;
|
||||||
|
MultiMonitorCompatibility.Text = "多显示器";
|
||||||
|
//
|
||||||
|
// RoutineCheckBoxAutoStop
|
||||||
|
//
|
||||||
|
RoutineCheckBoxAutoStop.AutoSize = true;
|
||||||
|
RoutineCheckBoxAutoStop.Location = new Point(225, 97);
|
||||||
|
RoutineCheckBoxAutoStop.Name = "RoutineCheckBoxAutoStop";
|
||||||
|
RoutineCheckBoxAutoStop.Size = new Size(15, 14);
|
||||||
|
RoutineCheckBoxAutoStop.TabIndex = 19;
|
||||||
|
RoutineCheckBoxAutoStop.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// LableRoutineAutoStop
|
||||||
|
//
|
||||||
|
LableRoutineAutoStop.AutoSize = true;
|
||||||
|
LableRoutineAutoStop.Location = new Point(18, 96);
|
||||||
|
LableRoutineAutoStop.Name = "LableRoutineAutoStop";
|
||||||
|
LableRoutineAutoStop.Size = new Size(140, 17);
|
||||||
|
LableRoutineAutoStop.TabIndex = 18;
|
||||||
|
LableRoutineAutoStop.Text = "其它应用全屏时暂停壁纸";
|
||||||
|
//
|
||||||
|
// checkBoxUsingUnifiedConfiguration
|
||||||
|
//
|
||||||
|
checkBoxUsingUnifiedConfiguration.AutoSize = true;
|
||||||
|
checkBoxUsingUnifiedConfiguration.Location = new Point(132, 73);
|
||||||
|
checkBoxUsingUnifiedConfiguration.Name = "checkBoxUsingUnifiedConfiguration";
|
||||||
|
checkBoxUsingUnifiedConfiguration.Size = new Size(15, 14);
|
||||||
|
checkBoxUsingUnifiedConfiguration.TabIndex = 17;
|
||||||
|
checkBoxUsingUnifiedConfiguration.UseVisualStyleBackColor = true;
|
||||||
|
checkBoxUsingUnifiedConfiguration.CheckedChanged += checkBoxUsingUnifiedConfiguration_CheckedChanged;
|
||||||
|
//
|
||||||
|
// LabelUsingUnifiedConfiguration
|
||||||
|
//
|
||||||
|
LabelUsingUnifiedConfiguration.AutoSize = true;
|
||||||
|
LabelUsingUnifiedConfiguration.Location = new Point(18, 71);
|
||||||
|
LabelUsingUnifiedConfiguration.Name = "LabelUsingUnifiedConfiguration";
|
||||||
|
LabelUsingUnifiedConfiguration.Size = new Size(80, 17);
|
||||||
|
LabelUsingUnifiedConfiguration.TabIndex = 16;
|
||||||
|
LabelUsingUnifiedConfiguration.Text = "使用统一配置";
|
||||||
|
//
|
||||||
|
// DisplayName
|
||||||
|
//
|
||||||
|
DisplayName.AutoSize = true;
|
||||||
|
DisplayName.Location = new Point(104, 19);
|
||||||
|
DisplayName.Name = "DisplayName";
|
||||||
|
DisplayName.Size = new Size(68, 17);
|
||||||
|
DisplayName.TabIndex = 15;
|
||||||
|
DisplayName.Text = "没有初始化";
|
||||||
|
//
|
||||||
|
// checkBoxIsShow
|
||||||
|
//
|
||||||
|
checkBoxIsShow.AutoSize = true;
|
||||||
|
checkBoxIsShow.Location = new Point(132, 47);
|
||||||
|
checkBoxIsShow.Name = "checkBoxIsShow";
|
||||||
|
checkBoxIsShow.Size = new Size(15, 14);
|
||||||
|
checkBoxIsShow.TabIndex = 14;
|
||||||
|
checkBoxIsShow.UseVisualStyleBackColor = true;
|
||||||
|
checkBoxIsShow.CheckedChanged += checkBoxIsShow_CheckedChanged;
|
||||||
|
//
|
||||||
|
// IsTheMonitorEnabled
|
||||||
|
//
|
||||||
|
IsTheMonitorEnabled.AutoSize = true;
|
||||||
|
IsTheMonitorEnabled.Location = new Point(18, 45);
|
||||||
|
IsTheMonitorEnabled.Name = "IsTheMonitorEnabled";
|
||||||
|
IsTheMonitorEnabled.Size = new Size(80, 17);
|
||||||
|
IsTheMonitorEnabled.TabIndex = 1;
|
||||||
|
IsTheMonitorEnabled.Text = "启用律动壁纸";
|
||||||
|
//
|
||||||
|
// DisplayRegistrationName
|
||||||
|
//
|
||||||
|
DisplayRegistrationName.AutoSize = true;
|
||||||
|
DisplayRegistrationName.Location = new Point(18, 19);
|
||||||
|
DisplayRegistrationName.Name = "DisplayRegistrationName";
|
||||||
|
DisplayRegistrationName.Size = new Size(80, 17);
|
||||||
|
DisplayRegistrationName.TabIndex = 0;
|
||||||
|
DisplayRegistrationName.Text = "显示器注册名";
|
||||||
|
//
|
||||||
|
// groupBoxColor
|
||||||
|
//
|
||||||
|
groupBoxColor.Controls.Add(labelBackgroundImg);
|
||||||
|
groupBoxColor.Controls.Add(BackgroundImage);
|
||||||
|
groupBoxColor.Controls.Add(labelBackImgOrBackColor);
|
||||||
|
groupBoxColor.Controls.Add(checkBoxImgOrColor);
|
||||||
|
groupBoxColor.Controls.Add(labelBackgroundCOlor);
|
||||||
|
groupBoxColor.Controls.Add(BackgroundColor);
|
||||||
|
groupBoxColor.Controls.Add(checkBoxUseDefault);
|
||||||
|
groupBoxColor.Controls.Add(labelUseSystemColor);
|
||||||
|
groupBoxColor.Controls.Add(labelNumberOfColors);
|
||||||
|
groupBoxColor.Controls.Add(numericUpDownNumberOfColors);
|
||||||
|
groupBoxColor.Controls.Add(StartColor);
|
||||||
|
groupBoxColor.Controls.Add(labelMonochrome);
|
||||||
|
groupBoxColor.Controls.Add(StopColor);
|
||||||
|
groupBoxColor.Controls.Add(checkBoxMonochrome);
|
||||||
|
groupBoxColor.Controls.Add(labelStartColor);
|
||||||
|
groupBoxColor.Controls.Add(labelStopColor);
|
||||||
|
groupBoxColor.Location = new Point(8, 147);
|
||||||
|
groupBoxColor.Name = "groupBoxColor";
|
||||||
|
groupBoxColor.Size = new Size(289, 256);
|
||||||
|
groupBoxColor.TabIndex = 4;
|
||||||
|
groupBoxColor.TabStop = false;
|
||||||
|
groupBoxColor.Text = "颜色信息";
|
||||||
|
//
|
||||||
|
// labelBackgroundImg
|
||||||
|
//
|
||||||
|
labelBackgroundImg.AutoSize = true;
|
||||||
|
labelBackgroundImg.Location = new Point(16, 157);
|
||||||
|
labelBackgroundImg.Name = "labelBackgroundImg";
|
||||||
|
labelBackgroundImg.Size = new Size(56, 17);
|
||||||
|
labelBackgroundImg.TabIndex = 22;
|
||||||
|
labelBackgroundImg.Text = "背景图片";
|
||||||
|
//
|
||||||
|
// BackgroundImage
|
||||||
|
//
|
||||||
|
BackgroundImage.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
BackgroundImage.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
BackgroundImage.Cursor = Cursors.Hand;
|
||||||
|
BackgroundImage.Enabled = false;
|
||||||
|
BackgroundImage.Location = new Point(80, 157);
|
||||||
|
BackgroundImage.Name = "BackgroundImage";
|
||||||
|
BackgroundImage.Size = new Size(160, 90);
|
||||||
|
BackgroundImage.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
BackgroundImage.TabIndex = 21;
|
||||||
|
BackgroundImage.TabStop = false;
|
||||||
|
BackgroundImage.Click += BackgroundImage_Click;
|
||||||
|
//
|
||||||
|
// labelBackImgOrBackColor
|
||||||
|
//
|
||||||
|
labelBackImgOrBackColor.AutoSize = true;
|
||||||
|
labelBackImgOrBackColor.Location = new Point(163, 125);
|
||||||
|
labelBackImgOrBackColor.Name = "labelBackImgOrBackColor";
|
||||||
|
labelBackImgOrBackColor.Size = new Size(56, 17);
|
||||||
|
labelBackImgOrBackColor.TabIndex = 20;
|
||||||
|
labelBackImgOrBackColor.Text = "是否图片";
|
||||||
|
//
|
||||||
|
// checkBoxImgOrColor
|
||||||
|
//
|
||||||
|
checkBoxImgOrColor.AutoSize = true;
|
||||||
|
checkBoxImgOrColor.Location = new Point(225, 126);
|
||||||
|
checkBoxImgOrColor.Name = "checkBoxImgOrColor";
|
||||||
|
checkBoxImgOrColor.Size = new Size(15, 14);
|
||||||
|
checkBoxImgOrColor.TabIndex = 19;
|
||||||
|
checkBoxImgOrColor.UseVisualStyleBackColor = true;
|
||||||
|
checkBoxImgOrColor.CheckedChanged += ImgOrColor_CheckedChanged;
|
||||||
|
//
|
||||||
|
// labelBackgroundCOlor
|
||||||
|
//
|
||||||
|
labelBackgroundCOlor.AutoSize = true;
|
||||||
|
labelBackgroundCOlor.Location = new Point(16, 125);
|
||||||
|
labelBackgroundCOlor.Name = "labelBackgroundCOlor";
|
||||||
|
labelBackgroundCOlor.Size = new Size(56, 17);
|
||||||
|
labelBackgroundCOlor.TabIndex = 18;
|
||||||
|
labelBackgroundCOlor.Text = "背景颜色";
|
||||||
|
//
|
||||||
|
// BackgroundColor
|
||||||
|
//
|
||||||
|
BackgroundColor.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
BackgroundColor.Cursor = Cursors.Hand;
|
||||||
|
BackgroundColor.Location = new Point(99, 125);
|
||||||
|
BackgroundColor.Name = "BackgroundColor";
|
||||||
|
BackgroundColor.Size = new Size(45, 17);
|
||||||
|
BackgroundColor.TabIndex = 17;
|
||||||
|
BackgroundColor.TabStop = false;
|
||||||
|
BackgroundColor.Click += BackgroundColor_Click;
|
||||||
|
//
|
||||||
|
// checkBoxUseDefault
|
||||||
|
//
|
||||||
|
checkBoxUseDefault.AutoSize = true;
|
||||||
|
checkBoxUseDefault.Location = new Point(99, 30);
|
||||||
|
checkBoxUseDefault.Name = "checkBoxUseDefault";
|
||||||
|
checkBoxUseDefault.Size = new Size(15, 14);
|
||||||
|
checkBoxUseDefault.TabIndex = 16;
|
||||||
|
checkBoxUseDefault.UseVisualStyleBackColor = true;
|
||||||
|
checkBoxUseDefault.CheckedChanged += checkBoxUseDefault_CheckedChanged;
|
||||||
|
//
|
||||||
|
// labelUseSystemColor
|
||||||
|
//
|
||||||
|
labelUseSystemColor.AutoSize = true;
|
||||||
|
labelUseSystemColor.Location = new Point(16, 30);
|
||||||
|
labelUseSystemColor.Name = "labelUseSystemColor";
|
||||||
|
labelUseSystemColor.Size = new Size(56, 17);
|
||||||
|
labelUseSystemColor.TabIndex = 15;
|
||||||
|
labelUseSystemColor.Text = "使用默认";
|
||||||
|
//
|
||||||
|
// labelNumberOfColors
|
||||||
|
//
|
||||||
|
labelNumberOfColors.AutoSize = true;
|
||||||
|
labelNumberOfColors.Location = new Point(16, 90);
|
||||||
|
labelNumberOfColors.Name = "labelNumberOfColors";
|
||||||
|
labelNumberOfColors.Size = new Size(56, 17);
|
||||||
|
labelNumberOfColors.TabIndex = 14;
|
||||||
|
labelNumberOfColors.Text = "颜色数量";
|
||||||
|
//
|
||||||
|
// numericUpDownNumberOfColors
|
||||||
|
//
|
||||||
|
numericUpDownNumberOfColors.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
numericUpDownNumberOfColors.Location = new Point(99, 89);
|
||||||
|
numericUpDownNumberOfColors.Maximum = new decimal(new int[] { 51200, 0, 0, 0 });
|
||||||
|
numericUpDownNumberOfColors.Minimum = new decimal(new int[] { 4, 0, 0, 0 });
|
||||||
|
numericUpDownNumberOfColors.Name = "numericUpDownNumberOfColors";
|
||||||
|
numericUpDownNumberOfColors.Size = new Size(120, 23);
|
||||||
|
numericUpDownNumberOfColors.TabIndex = 13;
|
||||||
|
numericUpDownNumberOfColors.Value = new decimal(new int[] { 4, 0, 0, 0 });
|
||||||
|
//
|
||||||
|
// StartColor
|
||||||
|
//
|
||||||
|
StartColor.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
StartColor.Cursor = Cursors.Hand;
|
||||||
|
StartColor.Location = new Point(99, 59);
|
||||||
|
StartColor.Name = "StartColor";
|
||||||
|
StartColor.Size = new Size(45, 17);
|
||||||
|
StartColor.TabIndex = 7;
|
||||||
|
StartColor.TabStop = false;
|
||||||
|
StartColor.Click += StartColor_Click;
|
||||||
|
//
|
||||||
|
// labelMonochrome
|
||||||
|
//
|
||||||
|
labelMonochrome.AutoSize = true;
|
||||||
|
labelMonochrome.Location = new Point(163, 30);
|
||||||
|
labelMonochrome.Name = "labelMonochrome";
|
||||||
|
labelMonochrome.Size = new Size(56, 17);
|
||||||
|
labelMonochrome.TabIndex = 12;
|
||||||
|
labelMonochrome.Text = "是否单色";
|
||||||
|
//
|
||||||
|
// StopColor
|
||||||
|
//
|
||||||
|
StopColor.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
StopColor.Cursor = Cursors.Hand;
|
||||||
|
StopColor.Location = new Point(225, 59);
|
||||||
|
StopColor.Name = "StopColor";
|
||||||
|
StopColor.Size = new Size(45, 17);
|
||||||
|
StopColor.TabIndex = 8;
|
||||||
|
StopColor.TabStop = false;
|
||||||
|
StopColor.Click += StopColor_Click;
|
||||||
|
//
|
||||||
|
// checkBoxMonochrome
|
||||||
|
//
|
||||||
|
checkBoxMonochrome.AutoSize = true;
|
||||||
|
checkBoxMonochrome.Location = new Point(225, 32);
|
||||||
|
checkBoxMonochrome.Name = "checkBoxMonochrome";
|
||||||
|
checkBoxMonochrome.Size = new Size(15, 14);
|
||||||
|
checkBoxMonochrome.TabIndex = 11;
|
||||||
|
checkBoxMonochrome.UseVisualStyleBackColor = true;
|
||||||
|
checkBoxMonochrome.CheckedChanged += checkBoxMonochrome_CheckedChanged;
|
||||||
|
//
|
||||||
|
// labelStartColor
|
||||||
|
//
|
||||||
|
labelStartColor.AutoSize = true;
|
||||||
|
labelStartColor.Location = new Point(16, 59);
|
||||||
|
labelStartColor.Name = "labelStartColor";
|
||||||
|
labelStartColor.Size = new Size(56, 17);
|
||||||
|
labelStartColor.TabIndex = 9;
|
||||||
|
labelStartColor.Text = "起始颜色";
|
||||||
|
//
|
||||||
|
// labelStopColor
|
||||||
|
//
|
||||||
|
labelStopColor.AutoSize = true;
|
||||||
|
labelStopColor.Location = new Point(163, 59);
|
||||||
|
labelStopColor.Name = "labelStopColor";
|
||||||
|
labelStopColor.Size = new Size(56, 17);
|
||||||
|
labelStopColor.TabIndex = 10;
|
||||||
|
labelStopColor.Text = "停止颜色";
|
||||||
|
//
|
||||||
|
// buttonReset
|
||||||
|
//
|
||||||
|
buttonReset.Location = new Point(8, 665);
|
||||||
|
buttonReset.Name = "buttonReset";
|
||||||
|
buttonReset.Size = new Size(75, 23);
|
||||||
|
buttonReset.TabIndex = 3;
|
||||||
|
buttonReset.Text = "重置";
|
||||||
|
buttonReset.UseVisualStyleBackColor = true;
|
||||||
|
buttonReset.Click += ButtonReset_Click;
|
||||||
|
//
|
||||||
|
// buttonSave
|
||||||
|
//
|
||||||
|
buttonSave.Location = new Point(222, 665);
|
||||||
|
buttonSave.Name = "buttonSave";
|
||||||
|
buttonSave.Size = new Size(75, 23);
|
||||||
|
buttonSave.TabIndex = 2;
|
||||||
|
buttonSave.Text = "保存";
|
||||||
|
buttonSave.UseVisualStyleBackColor = true;
|
||||||
|
buttonSave.Click += buttonSave_Click;
|
||||||
|
//
|
||||||
|
// Display
|
||||||
|
//
|
||||||
|
Display.Controls.Add(numericUpDownStripeSpacing);
|
||||||
|
Display.Controls.Add(label4);
|
||||||
|
Display.Controls.Add(label2);
|
||||||
|
Display.Controls.Add(checkBoxSmoothStripe);
|
||||||
|
Display.Controls.Add(checkBoxBottomEdge);
|
||||||
|
Display.Controls.Add(checkBoxRotundity);
|
||||||
|
Display.Controls.Add(checkBoxFrame);
|
||||||
|
Display.Controls.Add(checkBoxWavyLine);
|
||||||
|
Display.Controls.Add(labelBottomEdge);
|
||||||
|
Display.Controls.Add(labelRotundity);
|
||||||
|
Display.Controls.Add(labelFrame);
|
||||||
|
Display.Controls.Add(labelWaveLineDisplay);
|
||||||
|
Display.Location = new Point(8, 409);
|
||||||
|
Display.Name = "Display";
|
||||||
|
Display.Size = new Size(289, 122);
|
||||||
|
Display.TabIndex = 1;
|
||||||
|
Display.TabStop = false;
|
||||||
|
Display.Text = "显示内容";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.Location = new Point(163, 97);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(56, 17);
|
||||||
|
label2.TabIndex = 15;
|
||||||
|
label2.Text = "平滑圆角";
|
||||||
|
//
|
||||||
|
// checkBoxSmoothStripe
|
||||||
|
//
|
||||||
|
checkBoxSmoothStripe.AutoSize = true;
|
||||||
|
checkBoxSmoothStripe.Location = new Point(255, 98);
|
||||||
|
checkBoxSmoothStripe.Name = "checkBoxSmoothStripe";
|
||||||
|
checkBoxSmoothStripe.Size = new Size(15, 14);
|
||||||
|
checkBoxSmoothStripe.TabIndex = 14;
|
||||||
|
checkBoxSmoothStripe.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkBoxBottomEdge
|
||||||
|
//
|
||||||
|
checkBoxBottomEdge.AutoSize = true;
|
||||||
|
checkBoxBottomEdge.Location = new Point(130, 98);
|
||||||
|
checkBoxBottomEdge.Name = "checkBoxBottomEdge";
|
||||||
|
checkBoxBottomEdge.Size = new Size(15, 14);
|
||||||
|
checkBoxBottomEdge.TabIndex = 13;
|
||||||
|
checkBoxBottomEdge.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkBoxRotundity
|
||||||
|
//
|
||||||
|
checkBoxRotundity.AutoSize = true;
|
||||||
|
checkBoxRotundity.Location = new Point(130, 72);
|
||||||
|
checkBoxRotundity.Name = "checkBoxRotundity";
|
||||||
|
checkBoxRotundity.Size = new Size(15, 14);
|
||||||
|
checkBoxRotundity.TabIndex = 12;
|
||||||
|
checkBoxRotundity.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkBoxFrame
|
||||||
|
//
|
||||||
|
checkBoxFrame.AutoSize = true;
|
||||||
|
checkBoxFrame.Location = new Point(130, 46);
|
||||||
|
checkBoxFrame.Name = "checkBoxFrame";
|
||||||
|
checkBoxFrame.Size = new Size(15, 14);
|
||||||
|
checkBoxFrame.TabIndex = 11;
|
||||||
|
checkBoxFrame.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkBoxWavyLine
|
||||||
|
//
|
||||||
|
checkBoxWavyLine.AutoSize = true;
|
||||||
|
checkBoxWavyLine.Location = new Point(130, 20);
|
||||||
|
checkBoxWavyLine.Name = "checkBoxWavyLine";
|
||||||
|
checkBoxWavyLine.Size = new Size(15, 14);
|
||||||
|
checkBoxWavyLine.TabIndex = 10;
|
||||||
|
checkBoxWavyLine.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// labelBottomEdge
|
||||||
|
//
|
||||||
|
labelBottomEdge.AutoSize = true;
|
||||||
|
labelBottomEdge.Location = new Point(16, 97);
|
||||||
|
labelBottomEdge.Name = "labelBottomEdge";
|
||||||
|
labelBottomEdge.Size = new Size(80, 17);
|
||||||
|
labelBottomEdge.TabIndex = 5;
|
||||||
|
labelBottomEdge.Text = "是否显示底边";
|
||||||
|
//
|
||||||
|
// labelRotundity
|
||||||
|
//
|
||||||
|
labelRotundity.AutoSize = true;
|
||||||
|
labelRotundity.Location = new Point(16, 71);
|
||||||
|
labelRotundity.Name = "labelRotundity";
|
||||||
|
labelRotundity.Size = new Size(80, 17);
|
||||||
|
labelRotundity.TabIndex = 4;
|
||||||
|
labelRotundity.Text = "是否显示圆形";
|
||||||
|
//
|
||||||
|
// labelFrame
|
||||||
|
//
|
||||||
|
labelFrame.AutoSize = true;
|
||||||
|
labelFrame.Location = new Point(16, 45);
|
||||||
|
labelFrame.Name = "labelFrame";
|
||||||
|
labelFrame.Size = new Size(80, 17);
|
||||||
|
labelFrame.TabIndex = 3;
|
||||||
|
labelFrame.Text = "是否显示边框";
|
||||||
|
//
|
||||||
|
// labelWaveLineDisplay
|
||||||
|
//
|
||||||
|
labelWaveLineDisplay.AutoSize = true;
|
||||||
|
labelWaveLineDisplay.Location = new Point(16, 19);
|
||||||
|
labelWaveLineDisplay.Name = "labelWaveLineDisplay";
|
||||||
|
labelWaveLineDisplay.Size = new Size(80, 17);
|
||||||
|
labelWaveLineDisplay.TabIndex = 2;
|
||||||
|
labelWaveLineDisplay.Text = "是否显示频谱";
|
||||||
|
//
|
||||||
|
// Effect
|
||||||
|
//
|
||||||
|
Effect.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
Effect.Controls.Add(labelWindowFuncText);
|
||||||
|
Effect.Controls.Add(selectWindowFunc);
|
||||||
|
Effect.Controls.Add(numericUpDownFourierVariation);
|
||||||
|
Effect.Controls.Add(labelFourierVariation);
|
||||||
|
Effect.Controls.Add(numericUpDownSpectralShift);
|
||||||
|
Effect.Controls.Add(numericUpDownRhythmicMagnification);
|
||||||
|
Effect.Controls.Add(labelSpectralShift);
|
||||||
|
Effect.Controls.Add(labelRhythmicMagnification);
|
||||||
|
Effect.Location = new Point(8, 6);
|
||||||
|
Effect.Name = "Effect";
|
||||||
|
Effect.Size = new Size(289, 135);
|
||||||
|
Effect.TabIndex = 0;
|
||||||
|
Effect.TabStop = false;
|
||||||
|
Effect.Text = "基础参数";
|
||||||
|
//
|
||||||
|
// labelWindowFuncText
|
||||||
|
//
|
||||||
|
labelWindowFuncText.AutoSize = true;
|
||||||
|
labelWindowFuncText.Location = new Point(13, 106);
|
||||||
|
labelWindowFuncText.Name = "labelWindowFuncText";
|
||||||
|
labelWindowFuncText.Size = new Size(80, 17);
|
||||||
|
labelWindowFuncText.TabIndex = 8;
|
||||||
|
labelWindowFuncText.Text = "选择窗口函数";
|
||||||
|
//
|
||||||
|
// selectWindowFunc
|
||||||
|
//
|
||||||
|
selectWindowFunc.DisplayMember = "0";
|
||||||
|
selectWindowFunc.FormattingEnabled = true;
|
||||||
|
selectWindowFunc.Location = new Point(99, 103);
|
||||||
|
selectWindowFunc.Name = "selectWindowFunc";
|
||||||
|
selectWindowFunc.Size = new Size(120, 25);
|
||||||
|
selectWindowFunc.TabIndex = 7;
|
||||||
|
selectWindowFunc.ValueMember = "0";
|
||||||
|
//
|
||||||
|
// numericUpDownFourierVariation
|
||||||
|
//
|
||||||
|
numericUpDownFourierVariation.Location = new Point(99, 74);
|
||||||
|
numericUpDownFourierVariation.Maximum = new decimal(new int[] { 999999999, 0, 0, 0 });
|
||||||
|
numericUpDownFourierVariation.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
numericUpDownFourierVariation.Name = "numericUpDownFourierVariation";
|
||||||
|
numericUpDownFourierVariation.Size = new Size(120, 23);
|
||||||
|
numericUpDownFourierVariation.TabIndex = 5;
|
||||||
|
numericUpDownFourierVariation.Value = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
//
|
||||||
|
// labelFourierVariation
|
||||||
|
//
|
||||||
|
labelFourierVariation.AutoSize = true;
|
||||||
|
labelFourierVariation.Location = new Point(16, 75);
|
||||||
|
labelFourierVariation.Name = "labelFourierVariation";
|
||||||
|
labelFourierVariation.Size = new Size(80, 17);
|
||||||
|
labelFourierVariation.TabIndex = 4;
|
||||||
|
labelFourierVariation.Text = "傅里叶变化量";
|
||||||
|
//
|
||||||
|
// numericUpDownSpectralShift
|
||||||
|
//
|
||||||
|
numericUpDownSpectralShift.DecimalPlaces = 2;
|
||||||
|
numericUpDownSpectralShift.Increment = new decimal(new int[] { 1, 0, 0, 131072 });
|
||||||
|
numericUpDownSpectralShift.Location = new Point(99, 45);
|
||||||
|
numericUpDownSpectralShift.Maximum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
numericUpDownSpectralShift.Minimum = new decimal(new int[] { 2, 0, 0, -2147418112 });
|
||||||
|
numericUpDownSpectralShift.Name = "numericUpDownSpectralShift";
|
||||||
|
numericUpDownSpectralShift.Size = new Size(120, 23);
|
||||||
|
numericUpDownSpectralShift.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// numericUpDownRhythmicMagnification
|
||||||
|
//
|
||||||
|
numericUpDownRhythmicMagnification.DecimalPlaces = 1;
|
||||||
|
numericUpDownRhythmicMagnification.Increment = new decimal(new int[] { 1, 0, 0, 65536 });
|
||||||
|
numericUpDownRhythmicMagnification.Location = new Point(99, 16);
|
||||||
|
numericUpDownRhythmicMagnification.Maximum = new decimal(new int[] { 9999, 0, 0, 0 });
|
||||||
|
numericUpDownRhythmicMagnification.Minimum = new decimal(new int[] { 9999, 0, 0, int.MinValue });
|
||||||
|
numericUpDownRhythmicMagnification.Name = "numericUpDownRhythmicMagnification";
|
||||||
|
numericUpDownRhythmicMagnification.Size = new Size(120, 23);
|
||||||
|
numericUpDownRhythmicMagnification.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// labelSpectralShift
|
||||||
|
//
|
||||||
|
labelSpectralShift.AutoSize = true;
|
||||||
|
labelSpectralShift.Location = new Point(16, 47);
|
||||||
|
labelSpectralShift.Name = "labelSpectralShift";
|
||||||
|
labelSpectralShift.Size = new Size(56, 17);
|
||||||
|
labelSpectralShift.TabIndex = 1;
|
||||||
|
labelSpectralShift.Text = "频谱偏移";
|
||||||
|
//
|
||||||
|
// labelRhythmicMagnification
|
||||||
|
//
|
||||||
|
labelRhythmicMagnification.AutoSize = true;
|
||||||
|
labelRhythmicMagnification.Location = new Point(16, 19);
|
||||||
|
labelRhythmicMagnification.Name = "labelRhythmicMagnification";
|
||||||
|
labelRhythmicMagnification.Size = new Size(56, 17);
|
||||||
|
labelRhythmicMagnification.TabIndex = 0;
|
||||||
|
labelRhythmicMagnification.Text = "律动倍率";
|
||||||
|
//
|
||||||
|
// Other
|
||||||
|
//
|
||||||
|
Other.Controls.Add(ThirdParty);
|
||||||
|
Other.Controls.Add(OtherResetBtn);
|
||||||
|
Other.Controls.Add(OtherSaveBtn);
|
||||||
|
Other.Location = new Point(4, 26);
|
||||||
|
Other.Name = "Other";
|
||||||
|
Other.Padding = new Padding(3);
|
||||||
|
Other.Size = new Size(305, 692);
|
||||||
|
Other.TabIndex = 1;
|
||||||
|
Other.Text = "其他";
|
||||||
|
Other.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// ThirdParty
|
||||||
|
//
|
||||||
|
ThirdParty.Controls.Add(CheckBoxAutoStop);
|
||||||
|
ThirdParty.Controls.Add(OtherDisplayName);
|
||||||
|
ThirdParty.Controls.Add(LabelAutoStop);
|
||||||
|
ThirdParty.Controls.Add(label3);
|
||||||
|
ThirdParty.Controls.Add(panelEx1);
|
||||||
|
ThirdParty.Controls.Add(VideoRateLabel);
|
||||||
|
ThirdParty.Controls.Add(trackBarVideoVolume);
|
||||||
|
ThirdParty.Controls.Add(VideoVolumeLabel);
|
||||||
|
ThirdParty.Controls.Add(trackBarVideoRate);
|
||||||
|
ThirdParty.Controls.Add(videoView1);
|
||||||
|
ThirdParty.Controls.Add(UseOtherWallpaper);
|
||||||
|
ThirdParty.Controls.Add(label1);
|
||||||
|
ThirdParty.Location = new Point(8, 6);
|
||||||
|
ThirdParty.Name = "ThirdParty";
|
||||||
|
ThirdParty.Size = new Size(289, 289);
|
||||||
|
ThirdParty.TabIndex = 6;
|
||||||
|
ThirdParty.TabStop = false;
|
||||||
|
ThirdParty.Text = "第三方壁纸";
|
||||||
|
//
|
||||||
|
// CheckBoxAutoStop
|
||||||
|
//
|
||||||
|
CheckBoxAutoStop.AutoSize = true;
|
||||||
|
CheckBoxAutoStop.Location = new Point(193, 246);
|
||||||
|
CheckBoxAutoStop.Name = "CheckBoxAutoStop";
|
||||||
|
CheckBoxAutoStop.Size = new Size(15, 14);
|
||||||
|
CheckBoxAutoStop.TabIndex = 18;
|
||||||
|
CheckBoxAutoStop.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// OtherDisplayName
|
||||||
|
//
|
||||||
|
OtherDisplayName.AutoSize = true;
|
||||||
|
OtherDisplayName.Location = new Point(140, 219);
|
||||||
|
OtherDisplayName.Name = "OtherDisplayName";
|
||||||
|
OtherDisplayName.Size = new Size(68, 17);
|
||||||
|
OtherDisplayName.TabIndex = 24;
|
||||||
|
OtherDisplayName.Text = "没有初始化";
|
||||||
|
//
|
||||||
|
// LabelAutoStop
|
||||||
|
//
|
||||||
|
LabelAutoStop.AutoSize = true;
|
||||||
|
LabelAutoStop.Location = new Point(16, 245);
|
||||||
|
LabelAutoStop.Name = "LabelAutoStop";
|
||||||
|
LabelAutoStop.Size = new Size(140, 17);
|
||||||
|
LabelAutoStop.TabIndex = 0;
|
||||||
|
LabelAutoStop.Text = "其它应用全屏时暂停壁纸";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
label3.AutoSize = true;
|
||||||
|
label3.Location = new Point(16, 219);
|
||||||
|
label3.Name = "label3";
|
||||||
|
label3.Size = new Size(80, 17);
|
||||||
|
label3.TabIndex = 23;
|
||||||
|
label3.Text = "显示器注册名";
|
||||||
|
//
|
||||||
|
// panelEx1
|
||||||
|
//
|
||||||
|
panelEx1.BackColor = Color.Transparent;
|
||||||
|
panelEx1.BorderThickness = 1F;
|
||||||
|
panelEx1.Cursor = Cursors.Hand;
|
||||||
|
panelEx1.Location = new Point(16, 40);
|
||||||
|
panelEx1.Name = "panelEx1";
|
||||||
|
panelEx1.Opacity = 0.5F;
|
||||||
|
panelEx1.RotateAngle = 0F;
|
||||||
|
panelEx1.Size = new Size(192, 108);
|
||||||
|
panelEx1.TabIndex = 22;
|
||||||
|
panelEx1.Click += videoView1_Click;
|
||||||
|
//
|
||||||
|
// VideoRateLabel
|
||||||
|
//
|
||||||
|
VideoRateLabel.AutoSize = true;
|
||||||
|
VideoRateLabel.Location = new Point(229, 182);
|
||||||
|
VideoRateLabel.Name = "VideoRateLabel";
|
||||||
|
VideoRateLabel.Size = new Size(15, 17);
|
||||||
|
VideoRateLabel.TabIndex = 21;
|
||||||
|
VideoRateLabel.Text = "1";
|
||||||
|
//
|
||||||
|
// trackBarVideoVolume
|
||||||
|
//
|
||||||
|
trackBarVideoVolume.Location = new Point(223, 40);
|
||||||
|
trackBarVideoVolume.Maximum = 100;
|
||||||
|
trackBarVideoVolume.Name = "trackBarVideoVolume";
|
||||||
|
trackBarVideoVolume.Orientation = Orientation.Vertical;
|
||||||
|
trackBarVideoVolume.Size = new Size(45, 104);
|
||||||
|
trackBarVideoVolume.TabIndex = 7;
|
||||||
|
trackBarVideoVolume.Value = 100;
|
||||||
|
trackBarVideoVolume.Scroll += trackBarVideoVolume_Scroll;
|
||||||
|
//
|
||||||
|
// VideoVolumeLabel
|
||||||
|
//
|
||||||
|
VideoVolumeLabel.AutoSize = true;
|
||||||
|
VideoVolumeLabel.Location = new Point(229, 154);
|
||||||
|
VideoVolumeLabel.Name = "VideoVolumeLabel";
|
||||||
|
VideoVolumeLabel.Size = new Size(29, 17);
|
||||||
|
VideoVolumeLabel.TabIndex = 20;
|
||||||
|
VideoVolumeLabel.Text = "100";
|
||||||
|
//
|
||||||
|
// trackBarVideoRate
|
||||||
|
//
|
||||||
|
trackBarVideoRate.Location = new Point(16, 154);
|
||||||
|
trackBarVideoRate.Maximum = 100;
|
||||||
|
trackBarVideoRate.Minimum = 5;
|
||||||
|
trackBarVideoRate.Name = "trackBarVideoRate";
|
||||||
|
trackBarVideoRate.Size = new Size(192, 45);
|
||||||
|
trackBarVideoRate.TabIndex = 19;
|
||||||
|
trackBarVideoRate.TickStyle = TickStyle.TopLeft;
|
||||||
|
trackBarVideoRate.Value = 10;
|
||||||
|
trackBarVideoRate.Scroll += trackBarVideoRate_Scroll;
|
||||||
|
//
|
||||||
|
// videoView1
|
||||||
|
//
|
||||||
|
videoView1.BackColor = Color.Black;
|
||||||
|
videoView1.Cursor = Cursors.Hand;
|
||||||
|
videoView1.Location = new Point(16, 40);
|
||||||
|
videoView1.MediaPlayer = null;
|
||||||
|
videoView1.Name = "videoView1";
|
||||||
|
videoView1.Size = new Size(192, 108);
|
||||||
|
videoView1.TabIndex = 18;
|
||||||
|
videoView1.Text = "videoView1";
|
||||||
|
//
|
||||||
|
// UseOtherWallpaper
|
||||||
|
//
|
||||||
|
UseOtherWallpaper.AutoSize = true;
|
||||||
|
UseOtherWallpaper.Location = new Point(193, 21);
|
||||||
|
UseOtherWallpaper.Name = "UseOtherWallpaper";
|
||||||
|
UseOtherWallpaper.Size = new Size(15, 14);
|
||||||
|
UseOtherWallpaper.TabIndex = 17;
|
||||||
|
UseOtherWallpaper.UseVisualStyleBackColor = true;
|
||||||
|
UseOtherWallpaper.CheckedChanged += UseOtherWallpaper_CheckedChanged;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.Location = new Point(16, 19);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(92, 17);
|
||||||
|
label1.TabIndex = 5;
|
||||||
|
label1.Text = "启用第三方壁纸";
|
||||||
|
//
|
||||||
|
// OtherResetBtn
|
||||||
|
//
|
||||||
|
OtherResetBtn.Location = new Point(8, 665);
|
||||||
|
OtherResetBtn.Name = "OtherResetBtn";
|
||||||
|
OtherResetBtn.Size = new Size(75, 23);
|
||||||
|
OtherResetBtn.TabIndex = 5;
|
||||||
|
OtherResetBtn.Text = "重置";
|
||||||
|
OtherResetBtn.UseVisualStyleBackColor = true;
|
||||||
|
OtherResetBtn.Click += OtherResetBtn_Click;
|
||||||
|
//
|
||||||
|
// OtherSaveBtn
|
||||||
|
//
|
||||||
|
OtherSaveBtn.Location = new Point(222, 665);
|
||||||
|
OtherSaveBtn.Name = "OtherSaveBtn";
|
||||||
|
OtherSaveBtn.Size = new Size(75, 23);
|
||||||
|
OtherSaveBtn.TabIndex = 4;
|
||||||
|
OtherSaveBtn.Text = "保存";
|
||||||
|
OtherSaveBtn.UseVisualStyleBackColor = true;
|
||||||
|
OtherSaveBtn.Click += OtherSaveBtn_Click;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
label4.AutoSize = true;
|
||||||
|
label4.Location = new Point(163, 71);
|
||||||
|
label4.Name = "label4";
|
||||||
|
label4.Size = new Size(56, 17);
|
||||||
|
label4.TabIndex = 16;
|
||||||
|
label4.Text = "条纹间隔";
|
||||||
|
//
|
||||||
|
// numericUpDownStripeSpacing
|
||||||
|
//
|
||||||
|
numericUpDownStripeSpacing.Location = new Point(225, 68);
|
||||||
|
numericUpDownStripeSpacing.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
|
||||||
|
numericUpDownStripeSpacing.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
numericUpDownStripeSpacing.Name = "numericUpDownStripeSpacing";
|
||||||
|
numericUpDownStripeSpacing.Size = new Size(45, 23);
|
||||||
|
numericUpDownStripeSpacing.TabIndex = 9;
|
||||||
|
numericUpDownStripeSpacing.Value = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
//
|
||||||
|
// SetFrom
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
ClientSize = new Size(313, 722);
|
||||||
|
Controls.Add(tabControl);
|
||||||
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
|
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||||
|
MaximizeBox = false;
|
||||||
|
Name = "SetFrom";
|
||||||
|
Text = "设置";
|
||||||
|
FormClosed += SetFrom_FormClosed;
|
||||||
|
Load += SetForm_Load;
|
||||||
|
LocationChanged += SetFrom_LocationChanged;
|
||||||
|
tabControl.ResumeLayout(false);
|
||||||
|
Routine.ResumeLayout(false);
|
||||||
|
MultiMonitorCompatibility.ResumeLayout(false);
|
||||||
|
MultiMonitorCompatibility.PerformLayout();
|
||||||
|
groupBoxColor.ResumeLayout(false);
|
||||||
|
groupBoxColor.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)BackgroundImage).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)BackgroundColor).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownNumberOfColors).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)StartColor).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)StopColor).EndInit();
|
||||||
|
Display.ResumeLayout(false);
|
||||||
|
Display.PerformLayout();
|
||||||
|
Effect.ResumeLayout(false);
|
||||||
|
Effect.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownFourierVariation).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownSpectralShift).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownRhythmicMagnification).EndInit();
|
||||||
|
Other.ResumeLayout(false);
|
||||||
|
ThirdParty.ResumeLayout(false);
|
||||||
|
ThirdParty.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackBarVideoVolume).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackBarVideoRate).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)videoView1).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownStripeSpacing).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private TabControl tabControl;
|
||||||
|
private TabPage Routine;
|
||||||
|
private TabPage Other;
|
||||||
|
private GroupBox Effect;
|
||||||
|
private Label labelRhythmicMagnification;
|
||||||
|
private Label labelSpectralShift;
|
||||||
|
private GroupBox Display;
|
||||||
|
private Label labelBottomEdge;
|
||||||
|
private Label labelRotundity;
|
||||||
|
private Label labelFrame;
|
||||||
|
private Label labelWaveLineDisplay;
|
||||||
|
private NumericUpDown numericUpDownSpectralShift;
|
||||||
|
private NumericUpDown numericUpDownRhythmicMagnification;
|
||||||
|
private Button buttonReset;
|
||||||
|
private Button buttonSave;
|
||||||
|
private CheckBox checkBoxBottomEdge;
|
||||||
|
private CheckBox checkBoxRotundity;
|
||||||
|
private CheckBox checkBoxFrame;
|
||||||
|
private CheckBox checkBoxWavyLine;
|
||||||
|
private NumericUpDown numericUpDownFourierVariation;
|
||||||
|
private Label labelFourierVariation;
|
||||||
|
private PictureBox StartColor;
|
||||||
|
private Label labelStopColor;
|
||||||
|
private Label labelStartColor;
|
||||||
|
private PictureBox StopColor;
|
||||||
|
private Label labelMonochrome;
|
||||||
|
private CheckBox checkBoxMonochrome;
|
||||||
|
private Label labelNumberOfColors;
|
||||||
|
private NumericUpDown numericUpDownNumberOfColors;
|
||||||
|
private GroupBox groupBoxColor;
|
||||||
|
private CheckBox checkBoxUseDefault;
|
||||||
|
private Label labelUseSystemColor;
|
||||||
|
private Label labelBackgroundCOlor;
|
||||||
|
private PictureBox BackgroundColor;
|
||||||
|
private Label labelBackgroundImg;
|
||||||
|
private PictureBox BackgroundImage;
|
||||||
|
private Label labelBackImgOrBackColor;
|
||||||
|
private CheckBox checkBoxImgOrColor;
|
||||||
|
private GroupBox MultiMonitorCompatibility;
|
||||||
|
private Label DisplayRegistrationName;
|
||||||
|
private Label DisplayName;
|
||||||
|
private CheckBox checkBoxIsShow;
|
||||||
|
private Label IsTheMonitorEnabled;
|
||||||
|
private Label LabelUsingUnifiedConfiguration;
|
||||||
|
private CheckBox checkBoxUsingUnifiedConfiguration;
|
||||||
|
private CheckBox RoutineCheckBoxAutoStop;
|
||||||
|
private Label LableRoutineAutoStop;
|
||||||
|
private Button OtherResetBtn;
|
||||||
|
private Button OtherSaveBtn;
|
||||||
|
private GroupBox ThirdParty;
|
||||||
|
private CheckBox UseOtherWallpaper;
|
||||||
|
private Label label1;
|
||||||
|
private LibVLCSharp.WinForms.VideoView videoView1;
|
||||||
|
private Label VideoRateLabel;
|
||||||
|
private TrackBar trackBarVideoVolume;
|
||||||
|
private Label VideoVolumeLabel;
|
||||||
|
private TrackBar trackBarVideoRate;
|
||||||
|
private PanelEx panelEx1;
|
||||||
|
private Label OtherDisplayName;
|
||||||
|
private Label label3;
|
||||||
|
private CheckBox CheckBoxAutoStop;
|
||||||
|
private Label LabelAutoStop;
|
||||||
|
private Label labelWindowFuncText;
|
||||||
|
private ComboBox selectWindowFunc;
|
||||||
|
private Label label2;
|
||||||
|
private CheckBox checkBoxSmoothStripe;
|
||||||
|
private NumericUpDown numericUpDownStripeSpacing;
|
||||||
|
private Label label4;
|
||||||
|
}
|
||||||
|
}
|
||||||
1049
AudioVisualizer/SetForm.Designer.cs.orig
Normal file
397
AudioVisualizer/SetForm.cs
Normal file
@@ -0,0 +1,397 @@
|
|||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using LibVLCSharp.Shared;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class SetFrom : Form {
|
||||||
|
public static String ConfigFilePath = Application.StartupPath + "\\config.ini";
|
||||||
|
public String? BackImagePath = null;
|
||||||
|
public String? OtherVideoPath = null;
|
||||||
|
private static SetFrom? setFrom = null;
|
||||||
|
private Screen NowWindowOnScrenn;
|
||||||
|
private System.Timers.Timer debounceTimer;
|
||||||
|
private const double DEBOUNCE_TIME = 150;
|
||||||
|
public static int FullScreenWindowCount = 0;
|
||||||
|
private LibVLC? libVLC = new LibVLC();
|
||||||
|
private MediaPlayer? mediaPlayer;
|
||||||
|
private Media? media;
|
||||||
|
private String[] windowFunc = new String[] { "RECTANGULAR", "HANNING", "HAMMING", "BLACKMAN", "BARTLETT" };
|
||||||
|
|
||||||
|
private SetFrom() {
|
||||||
|
debounceTimer = new System.Timers.Timer(DEBOUNCE_TIME);
|
||||||
|
debounceTimer.Elapsed += DebounceTimer_Tick;
|
||||||
|
debounceTimer.AutoReset = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
public delegate void ReLoadConfig(ConfigurationObject configurationObject);
|
||||||
|
public event ReLoadConfig ReloadConfig;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static SetFrom ShowSetFrom() {
|
||||||
|
if (setFrom == null) {
|
||||||
|
setFrom = new SetFrom();
|
||||||
|
setFrom.InitializeComponent();
|
||||||
|
setFrom.selectWindowFunc.Items.Clear();
|
||||||
|
foreach (string item in setFrom.windowFunc) {
|
||||||
|
setFrom.selectWindowFunc.Items.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return setFrom;
|
||||||
|
}
|
||||||
|
private void buttonSave_Click(object sender, EventArgs e) {
|
||||||
|
SavaConfig();
|
||||||
|
}
|
||||||
|
private void SavaConfig() {
|
||||||
|
//创建配置对象
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = new GeneralConfigurationObjects {
|
||||||
|
//为配置对象添加内容
|
||||||
|
DefaultRadical = (float)numericUpDownRhythmicMagnification.Value,
|
||||||
|
DefaultOffset = (float)numericUpDownSpectralShift.Value,
|
||||||
|
DefaultFourierVariation = (int)numericUpDownFourierVariation.Value,
|
||||||
|
ApplyWindowFunc = selectWindowFunc.SelectedItem != null ? selectWindowFunc.SelectedItem.ToString() : "",
|
||||||
|
DefaultColor = StartColor.BackColor,
|
||||||
|
DefaultStopColor = StopColor.BackColor,
|
||||||
|
UseDefaultColorOrNOt = checkBoxUseDefault.Checked,
|
||||||
|
NumberOfColors = (int)numericUpDownNumberOfColors.Value,
|
||||||
|
MonochromeOrNot = checkBoxMonochrome.Checked,
|
||||||
|
BackgroundColor = BackgroundColor.BackColor,
|
||||||
|
BackImgOrNot = checkBoxImgOrColor.Checked,
|
||||||
|
BackgroundImagePath = BackImagePath,
|
||||||
|
WavyLine = checkBoxWavyLine.Checked,
|
||||||
|
Frame = checkBoxFrame.Checked,
|
||||||
|
Rotundity = checkBoxRotundity.Checked,
|
||||||
|
Stripe = checkBoxBottomEdge.Checked,
|
||||||
|
SmoothStripe = checkBoxSmoothStripe.Checked,
|
||||||
|
StripeSpacing = (uint)numericUpDownStripeSpacing.Value,
|
||||||
|
SettingForScreenName = DisplayName.Text,
|
||||||
|
IsShow = checkBoxIsShow.Checked,
|
||||||
|
IsUsingUnifiedConfiguration = checkBoxUsingUnifiedConfiguration.Checked,
|
||||||
|
AutoStopWallPaper = RoutineCheckBoxAutoStop.Checked
|
||||||
|
};
|
||||||
|
//保存设置
|
||||||
|
generalConfigurationObjects.SaveConfig(ConfigFilePath);
|
||||||
|
//创建其他配置对象
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = new VideoWallpaperConfigObject {
|
||||||
|
Rate = trackBarVideoRate.Value,
|
||||||
|
Volume = trackBarVideoVolume.Value,
|
||||||
|
Url = OtherVideoPath,
|
||||||
|
SettingForScreenName = OtherDisplayName.Text,
|
||||||
|
IsShow = UseOtherWallpaper.Checked,
|
||||||
|
AutoStopWallPaper = CheckBoxAutoStop.Checked
|
||||||
|
};
|
||||||
|
videoWallpaperConfigObject.SaveConfig(ConfigFilePath);
|
||||||
|
|
||||||
|
|
||||||
|
ConfigurationObject configurationObject = new ConfigurationObject() {
|
||||||
|
GeneralConfigurationObjects = generalConfigurationObjects,
|
||||||
|
VideoWallpaperConfigObject = videoWallpaperConfigObject
|
||||||
|
};
|
||||||
|
|
||||||
|
if (ReloadConfig != null) {
|
||||||
|
ReloadConfig(configurationObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 设置窗体加载事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void SetForm_Load(object sender, EventArgs e) {
|
||||||
|
//appBarManager.RegisterCallbackMessage();
|
||||||
|
//appBarManage
|
||||||
|
ShowSetData();
|
||||||
|
ControlStatusUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowSetData() {
|
||||||
|
//获取当前显示器
|
||||||
|
NowWindowOnScrenn = GetThisWindowOnScreen();
|
||||||
|
DisplayName.Text = NowWindowOnScrenn.DeviceName;
|
||||||
|
OtherDisplayName.Text = NowWindowOnScrenn.DeviceName;
|
||||||
|
//创建配置对象
|
||||||
|
ConfigurationObject configurationObject = new ConfigurationObject();
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = configurationObject.GeneralConfigurationObjects.LoadConfiguration(ConfigFilePath, NowWindowOnScrenn.DeviceName);
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfig = configurationObject.VideoWallpaperConfigObject.LoadConfig(ConfigFilePath, NowWindowOnScrenn.DeviceName);
|
||||||
|
|
||||||
|
numericUpDownRhythmicMagnification.Value = (decimal)generalConfigurationObjects.DefaultRadical;
|
||||||
|
numericUpDownSpectralShift.Value = (decimal)generalConfigurationObjects.DefaultOffset;
|
||||||
|
numericUpDownFourierVariation.Value = generalConfigurationObjects.DefaultFourierVariation;
|
||||||
|
selectWindowFunc.SelectedIndex = Array.IndexOf(windowFunc, generalConfigurationObjects.ApplyWindowFunc) >= 0 ? Array.IndexOf(windowFunc, generalConfigurationObjects.ApplyWindowFunc) : 0;
|
||||||
|
StartColor.BackColor = generalConfigurationObjects.DefaultColor;
|
||||||
|
StopColor.BackColor = generalConfigurationObjects.DefaultStopColor;
|
||||||
|
checkBoxUseDefault.Checked = generalConfigurationObjects.UseDefaultColorOrNOt;
|
||||||
|
numericUpDownNumberOfColors.Value = generalConfigurationObjects.NumberOfColors;
|
||||||
|
checkBoxMonochrome.Checked = generalConfigurationObjects.MonochromeOrNot;
|
||||||
|
BackgroundColor.BackColor = generalConfigurationObjects.BackgroundColor;
|
||||||
|
checkBoxImgOrColor.Checked = generalConfigurationObjects.BackImgOrNot;
|
||||||
|
BackImagePath = generalConfigurationObjects.BackgroundImagePath;
|
||||||
|
if (generalConfigurationObjects.BackgroundImagePath != null) {
|
||||||
|
BackgroundImage.Image = Image.FromFile(generalConfigurationObjects.BackgroundImagePath);
|
||||||
|
} else {
|
||||||
|
BackgroundImage.Image = null;
|
||||||
|
}
|
||||||
|
checkBoxWavyLine.Checked = generalConfigurationObjects.WavyLine;
|
||||||
|
checkBoxFrame.Checked = generalConfigurationObjects.Frame;
|
||||||
|
checkBoxRotundity.Checked = generalConfigurationObjects.Rotundity;
|
||||||
|
checkBoxBottomEdge.Checked = generalConfigurationObjects.Stripe;
|
||||||
|
checkBoxSmoothStripe.Checked = generalConfigurationObjects.SmoothStripe;
|
||||||
|
numericUpDownStripeSpacing.Value = generalConfigurationObjects.StripeSpacing;
|
||||||
|
checkBoxIsShow.Checked = generalConfigurationObjects.IsShow;
|
||||||
|
checkBoxUsingUnifiedConfiguration.Checked = generalConfigurationObjects.IsUsingUnifiedConfiguration;
|
||||||
|
RoutineCheckBoxAutoStop.Checked = generalConfigurationObjects.AutoStopWallPaper;
|
||||||
|
|
||||||
|
UseOtherWallpaper.Checked = videoWallpaperConfig.IsShow;
|
||||||
|
OtherVideoPath = videoWallpaperConfig.Url;
|
||||||
|
trackBarVideoRate.Value = videoWallpaperConfig.Rate;
|
||||||
|
trackBarVideoVolume.Value = videoWallpaperConfig.Volume;
|
||||||
|
VideoRateLabel.Text = ((float)videoWallpaperConfig.Rate / 10f).ToString();
|
||||||
|
VideoVolumeLabel.Text = videoWallpaperConfig.Volume.ToString();
|
||||||
|
CheckBoxAutoStop.Checked = videoWallpaperConfig.AutoStopWallPaper;
|
||||||
|
videoViewPlayer(OtherVideoPath);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
private void ButtonReset_Click(object sender, EventArgs e) {
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = new GeneralConfigurationObjects();
|
||||||
|
generalConfigurationObjects.SettingForScreenName = NowWindowOnScrenn.DeviceName;
|
||||||
|
generalConfigurationObjects.SaveConfig(ConfigFilePath);
|
||||||
|
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
private void checkBoxMonochrome_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
ControlStatusUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartColor_Click(object sender, EventArgs e) {
|
||||||
|
//创建颜色选择器
|
||||||
|
ColorDialog startColorDialog = new ColorDialog();
|
||||||
|
if (startColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
StartColor.BackColor = startColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StopColor_Click(object sender, EventArgs e) {
|
||||||
|
ColorDialog stopColorDialog = new ColorDialog();
|
||||||
|
if (stopColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
StopColor.BackColor = stopColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BackgroundColor_Click(object sender, EventArgs e) {
|
||||||
|
ColorDialog backgroundColorDialog = new ColorDialog();
|
||||||
|
if (backgroundColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
BackgroundColor.BackColor = backgroundColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用系统默认颜色
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void checkBoxUseDefault_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
StartColor.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
StopColor.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
if (checkBoxUseDefault.Checked && checkBoxMonochrome.Checked) {
|
||||||
|
checkBoxMonochrome.Checked = false;
|
||||||
|
}
|
||||||
|
numericUpDownNumberOfColors.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
}
|
||||||
|
private void ImgOrColor_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
//选中时,背景颜色选项将不能被点击
|
||||||
|
BackgroundColor.Enabled = !checkBoxImgOrColor.Checked;
|
||||||
|
BackgroundImage.Enabled = checkBoxImgOrColor.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackgroundImage_Click(object sender, EventArgs e) {
|
||||||
|
//创建文件选择框,并显示,选择文件
|
||||||
|
OpenFileDialog dialog = new OpenFileDialog();
|
||||||
|
dialog.Filter = "图片文件(*.png;*.jpg;*.jpeg)|*.png;*.jpg;*.jpeg";
|
||||||
|
dialog.Title = "请选择一张图片作为背景";
|
||||||
|
if (dialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
BackImagePath = dialog.FileName;
|
||||||
|
BackgroundImage.Image = Image.FromFile(dialog.FileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFrom_FormClosed(object sender, FormClosedEventArgs e) {
|
||||||
|
DisposeVideo();
|
||||||
|
Visible = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取当期窗体所在屏幕
|
||||||
|
/// </summary>
|
||||||
|
private Screen GetThisWindowOnScreen() {
|
||||||
|
return Screen.FromControl(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFrom_LocationChanged(object sender, EventArgs e) {
|
||||||
|
//防抖,调用showsetdata函数
|
||||||
|
debounceTimer.Stop();
|
||||||
|
debounceTimer.Start();
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 防抖
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void DebounceTimer_Tick(object sender, EventArgs e) {
|
||||||
|
this.Invoke(new Action(() => {
|
||||||
|
if (GetThisWindowOnScreen().GetHashCode() != NowWindowOnScrenn.GetHashCode()) {
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
ControlStatusUpdates();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxUsingUnifiedConfiguration_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
if (checkBoxUsingUnifiedConfiguration.Checked) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxIsShow_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
ControlStatusUpdates();
|
||||||
|
if (checkBoxIsShow.Checked && UseOtherWallpaper.Checked) {
|
||||||
|
UseOtherWallpaper.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 统一更新控件状态
|
||||||
|
/// </summary>
|
||||||
|
private void ControlStatusUpdates() {
|
||||||
|
bool IsShow = checkBoxIsShow.Checked;
|
||||||
|
Display.Enabled = IsShow;
|
||||||
|
groupBoxColor.Enabled = IsShow;
|
||||||
|
Effect.Enabled = IsShow;
|
||||||
|
checkBoxUsingUnifiedConfiguration.Enabled = IsShow;
|
||||||
|
|
||||||
|
//是否单色 如果选中,禁用停止颜色选项卡
|
||||||
|
StopColor.Cursor = checkBoxMonochrome.Checked ? Cursors.No : Cursors.Hand;
|
||||||
|
StopColor.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
if (checkBoxMonochrome.Checked && checkBoxUseDefault.Checked) {
|
||||||
|
checkBoxUseDefault.Checked = false;
|
||||||
|
}
|
||||||
|
numericUpDownNumberOfColors.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用第三方壁纸
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void UseOtherWallpaper_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
if (UseOtherWallpaper.Checked && checkBoxIsShow.Checked) {
|
||||||
|
checkBoxIsShow.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 视频
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void videoView1_Click(object sender, EventArgs e) {
|
||||||
|
|
||||||
|
OpenFileDialog dialog = new OpenFileDialog();
|
||||||
|
dialog.Filter = "视频(*.MP4;*.AVI;*.MKV;*.MOV;*.WMV)|*.MP4;*.AVI;*.MKV;*.MOV;*.WMV";
|
||||||
|
dialog.Title = "请选择一个视频文件作为壁纸";
|
||||||
|
if (dialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
OtherVideoPath = dialog.FileName;
|
||||||
|
videoViewPlayer(OtherVideoPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 音量滑动条
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void trackBarVideoVolume_Scroll(object sender, EventArgs e) {
|
||||||
|
VideoVolumeLabel.Text = trackBarVideoVolume.Value.ToString();
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.Volume = trackBarVideoVolume.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 速率滑动条
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void trackBarVideoRate_Scroll(object sender, EventArgs e) {
|
||||||
|
VideoRateLabel.Text = ((float)trackBarVideoRate.Value / 10f).ToString();
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.SetRate((float)trackBarVideoRate.Value / 10f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void videoViewPlayer(String? url) {
|
||||||
|
if (url == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (libVLC == null) {
|
||||||
|
libVLC = new LibVLC();
|
||||||
|
}
|
||||||
|
Uri? uri = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
uri = new Uri(url);
|
||||||
|
} catch (Exception) {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
if (uri == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
media = new Media(libVLC, uri);
|
||||||
|
|
||||||
|
if (mediaPlayer == null) {
|
||||||
|
mediaPlayer = new MediaPlayer(libVLC);
|
||||||
|
mediaPlayer.TimeChanged += MediaPlayer_TimeChanged;
|
||||||
|
mediaPlayer.EndReached += MediaPlayer_EndReached;
|
||||||
|
}
|
||||||
|
videoView1.MediaPlayer = mediaPlayer;
|
||||||
|
System.GC.Collect();
|
||||||
|
mediaPlayer.SetRate((float)trackBarVideoRate.Value / 10f);
|
||||||
|
mediaPlayer.Mute = true;
|
||||||
|
mediaPlayer.Play(media);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MediaPlayer_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e) {
|
||||||
|
if (e.Time >= 3000 && mediaPlayer != null && media != null) {
|
||||||
|
mediaPlayer.Position = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void MediaPlayer_EndReached(object? sender, EventArgs e) {
|
||||||
|
if (media != null && mediaPlayer != null) {
|
||||||
|
ThreadPool.QueueUserWorkItem((p) => mediaPlayer.Play(media));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DisposeVideo() {
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.TimeChanged -= MediaPlayer_TimeChanged;
|
||||||
|
mediaPlayer.EndReached -= MediaPlayer_EndReached;
|
||||||
|
mediaPlayer.Stop();
|
||||||
|
mediaPlayer.Dispose();
|
||||||
|
mediaPlayer = null;
|
||||||
|
}
|
||||||
|
if (media != null) {
|
||||||
|
media.Dispose();
|
||||||
|
media = null;
|
||||||
|
}
|
||||||
|
GC.Collect();
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 其他配置保存按钮
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void OtherSaveBtn_Click(object sender, EventArgs e) {
|
||||||
|
SavaConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OtherResetBtn_Click(object sender, EventArgs e) {
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = new VideoWallpaperConfigObject();
|
||||||
|
videoWallpaperConfigObject.SettingForScreenName = NowWindowOnScrenn.DeviceName;
|
||||||
|
videoWallpaperConfigObject.SaveConfig(ConfigFilePath);
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
522
AudioVisualizer/SetForm.cs.orig
Normal file
@@ -0,0 +1,522 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using LibVLCSharp.Shared;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class SetFrom : Form {
|
||||||
|
public static String ConfigFilePath = Application.StartupPath + "\\config.ini";
|
||||||
|
public String? BackImagePath = null;
|
||||||
|
public String? OtherVideoPath = null;
|
||||||
|
private static SetFrom? setFrom = null;
|
||||||
|
private Screen NowWindowOnScrenn;
|
||||||
|
private System.Timers.Timer debounceTimer;
|
||||||
|
private const double DEBOUNCE_TIME = 150;
|
||||||
|
public static int FullScreenWindowCount = 0;
|
||||||
|
private LibVLC? libVLC = new LibVLC();
|
||||||
|
private MediaPlayer? mediaPlayer;
|
||||||
|
private Media? media;
|
||||||
|
private String[] windowFunc = new String[] { "RECTANGULAR", "HANNING", "HAMMING", "BLACKMAN", "BARTLETT" };
|
||||||
|
|
||||||
|
private SetFrom() {
|
||||||
|
debounceTimer = new System.Timers.Timer(DEBOUNCE_TIME);
|
||||||
|
debounceTimer.Elapsed += DebounceTimer_Tick;
|
||||||
|
debounceTimer.AutoReset = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
public delegate void ReLoadConfig(ConfigurationObject configurationObject);
|
||||||
|
public event ReLoadConfig ReloadConfig;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static SetFrom ShowSetFrom() {
|
||||||
|
if (setFrom == null) {
|
||||||
|
setFrom = new SetFrom();
|
||||||
|
setFrom.InitializeComponent();
|
||||||
|
setFrom.selectWindowFunc.Items.Clear();
|
||||||
|
foreach (string item in setFrom.windowFunc) {
|
||||||
|
setFrom.selectWindowFunc.Items.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return setFrom;
|
||||||
|
}
|
||||||
|
private void buttonSave_Click(object sender, EventArgs e) {
|
||||||
|
SavaConfig();
|
||||||
|
}
|
||||||
|
private void SavaConfig() {
|
||||||
|
//创建配置对象
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = new GeneralConfigurationObjects {
|
||||||
|
=======
|
||||||
|
using LibAudioVisualizer;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
public partial class SetFrom : Form {
|
||||||
|
String ConfigFilePath = Application.StartupPath + "\\config.ini";
|
||||||
|
public MainWindow MainWindowData;
|
||||||
|
public String? BackImagePath = null;
|
||||||
|
private static SetFrom? setFrom = null;
|
||||||
|
private SetFrom() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public static SetFrom ShowSetFrom(MainWindow mainWindow) {
|
||||||
|
if (setFrom == null) {
|
||||||
|
setFrom = new SetFrom();
|
||||||
|
}
|
||||||
|
setFrom.InitializeComponent();
|
||||||
|
setFrom.MainWindowData = mainWindow;
|
||||||
|
return setFrom;
|
||||||
|
}
|
||||||
|
private void buttonSave_Click(object sender, EventArgs e) {
|
||||||
|
//创建配置对象
|
||||||
|
ConfigurationObject configuration = new ConfigurationObject {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
//为配置对象添加内容
|
||||||
|
DefaultRadical = (float)numericUpDownRhythmicMagnification.Value,
|
||||||
|
DefaultOffset = (float)numericUpDownSpectralShift.Value,
|
||||||
|
DefaultFourierVariation = (int)numericUpDownFourierVariation.Value,
|
||||||
|
<<<<<<< HEAD
|
||||||
|
ApplyWindowFunc = selectWindowFunc.SelectedItem != null ? selectWindowFunc.SelectedItem.ToString() : "",
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
DefaultColor = StartColor.BackColor,
|
||||||
|
DefaultStopColor = StopColor.BackColor,
|
||||||
|
UseDefaultColorOrNOt = checkBoxUseDefault.Checked,
|
||||||
|
NumberOfColors = (int)numericUpDownNumberOfColors.Value,
|
||||||
|
MonochromeOrNot = checkBoxMonochrome.Checked,
|
||||||
|
BackgroundColor = BackgroundColor.BackColor,
|
||||||
|
BackImgOrNot = checkBoxImgOrColor.Checked,
|
||||||
|
BackgroundImagePath = BackImagePath,
|
||||||
|
WavyLine = checkBoxWavyLine.Checked,
|
||||||
|
Frame = checkBoxFrame.Checked,
|
||||||
|
Rotundity = checkBoxRotundity.Checked,
|
||||||
|
<<<<<<< HEAD
|
||||||
|
Stripe = checkBoxBottomEdge.Checked,
|
||||||
|
SmoothStripe = checkBoxSmoothStripe.Checked,
|
||||||
|
StripeSpacing = (uint)numericUpDownStripeSpacing.Value,
|
||||||
|
SettingForScreenName = DisplayName.Text,
|
||||||
|
IsShow = checkBoxIsShow.Checked,
|
||||||
|
IsUsingUnifiedConfiguration = checkBoxUsingUnifiedConfiguration.Checked,
|
||||||
|
AutoStopWallPaper = RoutineCheckBoxAutoStop.Checked
|
||||||
|
};
|
||||||
|
//保存设置
|
||||||
|
generalConfigurationObjects.SaveConfig(ConfigFilePath);
|
||||||
|
//创建其他配置对象
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = new VideoWallpaperConfigObject {
|
||||||
|
Rate = trackBarVideoRate.Value,
|
||||||
|
Volume = trackBarVideoVolume.Value,
|
||||||
|
Url = OtherVideoPath,
|
||||||
|
SettingForScreenName = OtherDisplayName.Text,
|
||||||
|
IsShow = UseOtherWallpaper.Checked,
|
||||||
|
AutoStopWallPaper = CheckBoxAutoStop.Checked
|
||||||
|
};
|
||||||
|
videoWallpaperConfigObject.SaveConfig(ConfigFilePath);
|
||||||
|
|
||||||
|
|
||||||
|
ConfigurationObject configurationObject = new ConfigurationObject() {
|
||||||
|
GeneralConfigurationObjects = generalConfigurationObjects,
|
||||||
|
VideoWallpaperConfigObject = videoWallpaperConfigObject
|
||||||
|
};
|
||||||
|
|
||||||
|
if (ReloadConfig != null) {
|
||||||
|
ReloadConfig(configurationObject);
|
||||||
|
}
|
||||||
|
=======
|
||||||
|
Stripe = checkBoxBottomEdge.Checked
|
||||||
|
};
|
||||||
|
//保存设置
|
||||||
|
configuration.SaveConfiguration(ConfigFilePath);
|
||||||
|
ReloadSet(configuration);
|
||||||
|
|
||||||
|
}
|
||||||
|
public void ReloadSet(ConfigurationObject configuration) {
|
||||||
|
MainWindow.configurationObject = configuration;
|
||||||
|
//重新生成颜色数组
|
||||||
|
MainWindow.allColors = MainWindow.GetAllHsvColors(configuration.NumberOfColors);
|
||||||
|
|
||||||
|
//MainWindowData.BackColor = Color.Red;
|
||||||
|
if (configuration.BackImgOrNot && configuration.BackgroundImagePath != null) {
|
||||||
|
//MainWindowData.BackColor = Color.Transparent;
|
||||||
|
//MainWindowData.BackgroundImage = Image.FromFile(configuration.BackgroundImagePath);
|
||||||
|
int iActulaWidth = Screen.PrimaryScreen.Bounds.Width;
|
||||||
|
|
||||||
|
int iActulaHeight = Screen.PrimaryScreen.Bounds.Height;
|
||||||
|
MainWindowData.backgroundImage = new Bitmap(iActulaWidth, iActulaHeight);
|
||||||
|
using (var graphics = Graphics.FromImage(MainWindowData.backgroundImage)) {
|
||||||
|
graphics.DrawImage(Image.FromFile(configuration.BackgroundImagePath), 0, 0, iActulaWidth, iActulaHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
MainWindowData.BackColor = configuration.BackgroundColor;
|
||||||
|
}
|
||||||
|
//修改傅里叶变化量
|
||||||
|
|
||||||
|
|
||||||
|
GC.Collect();
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 设置窗体加载事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void SetForm_Load(object sender, EventArgs e) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
//appBarManager.RegisterCallbackMessage();
|
||||||
|
//appBarManage
|
||||||
|
ShowSetData();
|
||||||
|
ControlStatusUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowSetData() {
|
||||||
|
//获取当前显示器
|
||||||
|
NowWindowOnScrenn = GetThisWindowOnScreen();
|
||||||
|
DisplayName.Text = NowWindowOnScrenn.DeviceName;
|
||||||
|
OtherDisplayName.Text = NowWindowOnScrenn.DeviceName;
|
||||||
|
//创建配置对象
|
||||||
|
ConfigurationObject configurationObject = new ConfigurationObject();
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = configurationObject.GeneralConfigurationObjects.LoadConfiguration(ConfigFilePath, NowWindowOnScrenn.DeviceName);
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfig = configurationObject.VideoWallpaperConfigObject.LoadConfig(ConfigFilePath, NowWindowOnScrenn.DeviceName);
|
||||||
|
|
||||||
|
numericUpDownRhythmicMagnification.Value = (decimal)generalConfigurationObjects.DefaultRadical;
|
||||||
|
numericUpDownSpectralShift.Value = (decimal)generalConfigurationObjects.DefaultOffset;
|
||||||
|
numericUpDownFourierVariation.Value = generalConfigurationObjects.DefaultFourierVariation;
|
||||||
|
selectWindowFunc.SelectedIndex = Array.IndexOf(windowFunc, generalConfigurationObjects.ApplyWindowFunc) >= 0 ? Array.IndexOf(windowFunc, generalConfigurationObjects.ApplyWindowFunc) : 0;
|
||||||
|
StartColor.BackColor = generalConfigurationObjects.DefaultColor;
|
||||||
|
StopColor.BackColor = generalConfigurationObjects.DefaultStopColor;
|
||||||
|
checkBoxUseDefault.Checked = generalConfigurationObjects.UseDefaultColorOrNOt;
|
||||||
|
numericUpDownNumberOfColors.Value = generalConfigurationObjects.NumberOfColors;
|
||||||
|
checkBoxMonochrome.Checked = generalConfigurationObjects.MonochromeOrNot;
|
||||||
|
BackgroundColor.BackColor = generalConfigurationObjects.BackgroundColor;
|
||||||
|
checkBoxImgOrColor.Checked = generalConfigurationObjects.BackImgOrNot;
|
||||||
|
BackImagePath = generalConfigurationObjects.BackgroundImagePath;
|
||||||
|
if (generalConfigurationObjects.BackgroundImagePath != null) {
|
||||||
|
BackgroundImage.Image = Image.FromFile(generalConfigurationObjects.BackgroundImagePath);
|
||||||
|
} else {
|
||||||
|
BackgroundImage.Image = null;
|
||||||
|
}
|
||||||
|
checkBoxWavyLine.Checked = generalConfigurationObjects.WavyLine;
|
||||||
|
checkBoxFrame.Checked = generalConfigurationObjects.Frame;
|
||||||
|
checkBoxRotundity.Checked = generalConfigurationObjects.Rotundity;
|
||||||
|
checkBoxBottomEdge.Checked = generalConfigurationObjects.Stripe;
|
||||||
|
checkBoxSmoothStripe.Checked = generalConfigurationObjects.SmoothStripe;
|
||||||
|
numericUpDownStripeSpacing.Value = generalConfigurationObjects.StripeSpacing;
|
||||||
|
checkBoxIsShow.Checked = generalConfigurationObjects.IsShow;
|
||||||
|
checkBoxUsingUnifiedConfiguration.Checked = generalConfigurationObjects.IsUsingUnifiedConfiguration;
|
||||||
|
RoutineCheckBoxAutoStop.Checked = generalConfigurationObjects.AutoStopWallPaper;
|
||||||
|
|
||||||
|
UseOtherWallpaper.Checked = videoWallpaperConfig.IsShow;
|
||||||
|
OtherVideoPath = videoWallpaperConfig.Url;
|
||||||
|
trackBarVideoRate.Value = videoWallpaperConfig.Rate;
|
||||||
|
trackBarVideoVolume.Value = videoWallpaperConfig.Volume;
|
||||||
|
VideoRateLabel.Text = ((float)videoWallpaperConfig.Rate / 10f).ToString();
|
||||||
|
VideoVolumeLabel.Text = videoWallpaperConfig.Volume.ToString();
|
||||||
|
CheckBoxAutoStop.Checked = videoWallpaperConfig.AutoStopWallPaper;
|
||||||
|
videoViewPlayer(OtherVideoPath);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
private void ButtonReset_Click(object sender, EventArgs e) {
|
||||||
|
GeneralConfigurationObjects generalConfigurationObjects = new GeneralConfigurationObjects();
|
||||||
|
generalConfigurationObjects.SettingForScreenName = NowWindowOnScrenn.DeviceName;
|
||||||
|
generalConfigurationObjects.SaveConfig(ConfigFilePath);
|
||||||
|
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
private void checkBoxMonochrome_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
ControlStatusUpdates();
|
||||||
|
=======
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowSetData() {
|
||||||
|
//创建配置对象
|
||||||
|
ConfigurationObject configuration = new ConfigurationObject().LoadConfiguration(ConfigFilePath);
|
||||||
|
numericUpDownRhythmicMagnification.Value = (decimal)configuration.DefaultRadical;
|
||||||
|
numericUpDownSpectralShift.Value = (decimal)configuration.DefaultOffset;
|
||||||
|
numericUpDownFourierVariation.Value = configuration.DefaultFourierVariation;
|
||||||
|
StartColor.BackColor = configuration.DefaultColor;
|
||||||
|
StopColor.BackColor = configuration.DefaultStopColor;
|
||||||
|
checkBoxUseDefault.Checked = configuration.UseDefaultColorOrNOt;
|
||||||
|
numericUpDownNumberOfColors.Value = configuration.NumberOfColors;
|
||||||
|
checkBoxMonochrome.Checked = configuration.MonochromeOrNot;
|
||||||
|
BackgroundColor.BackColor = configuration.BackgroundColor;
|
||||||
|
checkBoxImgOrColor.Checked = configuration.BackImgOrNot;
|
||||||
|
if (configuration.BackgroundImagePath != null) {
|
||||||
|
BackgroundImage.Image = Image.FromFile(configuration.BackgroundImagePath);
|
||||||
|
}
|
||||||
|
BackImagePath = configuration.BackgroundImagePath;
|
||||||
|
checkBoxWavyLine.Checked = configuration.WavyLine;
|
||||||
|
checkBoxFrame.Checked = configuration.Frame;
|
||||||
|
checkBoxRotundity.Checked = configuration.Rotundity;
|
||||||
|
checkBoxBottomEdge.Checked = configuration.Stripe;
|
||||||
|
MainWindow.configurationObject = configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonReset_Click(object sender, EventArgs e) {
|
||||||
|
new ConfigurationObject().SaveConfiguration(ConfigFilePath);
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxMonochrome_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
//如果选中,禁用停止颜色选项卡
|
||||||
|
StopColor.Cursor = checkBoxMonochrome.Checked ? Cursors.No : Cursors.Hand;
|
||||||
|
StopColor.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
if (checkBoxMonochrome.Checked && checkBoxUseDefault.Checked) {
|
||||||
|
checkBoxUseDefault.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
numericUpDownNumberOfColors.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartColor_Click(object sender, EventArgs e) {
|
||||||
|
//创建颜色选择器
|
||||||
|
ColorDialog startColorDialog = new ColorDialog();
|
||||||
|
if (startColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
StartColor.BackColor = startColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StopColor_Click(object sender, EventArgs e) {
|
||||||
|
ColorDialog stopColorDialog = new ColorDialog();
|
||||||
|
if (stopColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
StopColor.BackColor = stopColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BackgroundColor_Click(object sender, EventArgs e) {
|
||||||
|
ColorDialog backgroundColorDialog = new ColorDialog();
|
||||||
|
if (backgroundColorDialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
BackgroundColor.BackColor = backgroundColorDialog.Color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用系统默认颜色
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void checkBoxUseDefault_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
StartColor.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
StopColor.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
if (checkBoxUseDefault.Checked && checkBoxMonochrome.Checked) {
|
||||||
|
checkBoxMonochrome.Checked = false;
|
||||||
|
}
|
||||||
|
numericUpDownNumberOfColors.Enabled = !checkBoxUseDefault.Checked;
|
||||||
|
}
|
||||||
|
private void ImgOrColor_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
//选中时,背景颜色选项将不能被点击
|
||||||
|
BackgroundColor.Enabled = !checkBoxImgOrColor.Checked;
|
||||||
|
BackgroundImage.Enabled = checkBoxImgOrColor.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackgroundImage_Click(object sender, EventArgs e) {
|
||||||
|
//创建文件选择框,并显示,选择文件
|
||||||
|
OpenFileDialog dialog = new OpenFileDialog();
|
||||||
|
dialog.Filter = "图片文件(*.png;*.jpg;*.jpeg)|*.png;*.jpg;*.jpeg";
|
||||||
|
dialog.Title = "请选择一张图片作为背景";
|
||||||
|
if (dialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
BackImagePath = dialog.FileName;
|
||||||
|
BackgroundImage.Image = Image.FromFile(dialog.FileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFrom_FormClosed(object sender, FormClosedEventArgs e) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
DisposeVideo();
|
||||||
|
Visible = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取当期窗体所在屏幕
|
||||||
|
/// </summary>
|
||||||
|
private Screen GetThisWindowOnScreen() {
|
||||||
|
return Screen.FromControl(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFrom_LocationChanged(object sender, EventArgs e) {
|
||||||
|
//防抖,调用showsetdata函数
|
||||||
|
debounceTimer.Stop();
|
||||||
|
debounceTimer.Start();
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 防抖
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void DebounceTimer_Tick(object sender, EventArgs e) {
|
||||||
|
this.Invoke(new Action(() => {
|
||||||
|
if (GetThisWindowOnScreen().GetHashCode() != NowWindowOnScrenn.GetHashCode()) {
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
ControlStatusUpdates();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxUsingUnifiedConfiguration_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
if (checkBoxUsingUnifiedConfiguration.Checked) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkBoxIsShow_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
ControlStatusUpdates();
|
||||||
|
if (checkBoxIsShow.Checked && UseOtherWallpaper.Checked) {
|
||||||
|
UseOtherWallpaper.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 统一更新控件状态
|
||||||
|
/// </summary>
|
||||||
|
private void ControlStatusUpdates() {
|
||||||
|
bool IsShow = checkBoxIsShow.Checked;
|
||||||
|
Display.Enabled = IsShow;
|
||||||
|
groupBoxColor.Enabled = IsShow;
|
||||||
|
Effect.Enabled = IsShow;
|
||||||
|
checkBoxUsingUnifiedConfiguration.Enabled = IsShow;
|
||||||
|
|
||||||
|
//是否单色 如果选中,禁用停止颜色选项卡
|
||||||
|
StopColor.Cursor = checkBoxMonochrome.Checked ? Cursors.No : Cursors.Hand;
|
||||||
|
StopColor.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
if (checkBoxMonochrome.Checked && checkBoxUseDefault.Checked) {
|
||||||
|
checkBoxUseDefault.Checked = false;
|
||||||
|
}
|
||||||
|
numericUpDownNumberOfColors.Enabled = !checkBoxMonochrome.Checked;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 是否使用第三方壁纸
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void UseOtherWallpaper_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
if (UseOtherWallpaper.Checked && checkBoxIsShow.Checked) {
|
||||||
|
checkBoxIsShow.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 视频
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void videoView1_Click(object sender, EventArgs e) {
|
||||||
|
|
||||||
|
OpenFileDialog dialog = new OpenFileDialog();
|
||||||
|
dialog.Filter = "视频(*.MP4;*.AVI;*.MKV;*.MOV;*.WMV)|*.MP4;*.AVI;*.MKV;*.MOV;*.WMV";
|
||||||
|
dialog.Title = "请选择一个视频文件作为壁纸";
|
||||||
|
if (dialog.ShowDialog() == DialogResult.OK) {
|
||||||
|
OtherVideoPath = dialog.FileName;
|
||||||
|
videoViewPlayer(OtherVideoPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 音量滑动条
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void trackBarVideoVolume_Scroll(object sender, EventArgs e) {
|
||||||
|
VideoVolumeLabel.Text = trackBarVideoVolume.Value.ToString();
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.Volume = trackBarVideoVolume.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 速率滑动条
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void trackBarVideoRate_Scroll(object sender, EventArgs e) {
|
||||||
|
VideoRateLabel.Text = ((float)trackBarVideoRate.Value / 10f).ToString();
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.SetRate((float)trackBarVideoRate.Value / 10f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void videoViewPlayer(String? url) {
|
||||||
|
if (url == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (libVLC == null) {
|
||||||
|
libVLC = new LibVLC();
|
||||||
|
}
|
||||||
|
Uri? uri = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
uri = new Uri(url);
|
||||||
|
} catch (Exception) {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
if (uri == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
media = new Media(libVLC, uri);
|
||||||
|
|
||||||
|
if (mediaPlayer == null) {
|
||||||
|
mediaPlayer = new MediaPlayer(libVLC);
|
||||||
|
mediaPlayer.TimeChanged += MediaPlayer_TimeChanged;
|
||||||
|
mediaPlayer.EndReached += MediaPlayer_EndReached;
|
||||||
|
}
|
||||||
|
videoView1.MediaPlayer = mediaPlayer;
|
||||||
|
System.GC.Collect();
|
||||||
|
mediaPlayer.SetRate((float)trackBarVideoRate.Value / 10f);
|
||||||
|
mediaPlayer.Mute = true;
|
||||||
|
mediaPlayer.Play(media);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MediaPlayer_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e) {
|
||||||
|
if (e.Time >= 3000 && mediaPlayer != null && media != null) {
|
||||||
|
mediaPlayer.Position = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void MediaPlayer_EndReached(object? sender, EventArgs e) {
|
||||||
|
if (media != null && mediaPlayer != null) {
|
||||||
|
ThreadPool.QueueUserWorkItem((p) => mediaPlayer.Play(media));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DisposeVideo() {
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.TimeChanged -= MediaPlayer_TimeChanged;
|
||||||
|
mediaPlayer.EndReached -= MediaPlayer_EndReached;
|
||||||
|
mediaPlayer.Stop();
|
||||||
|
mediaPlayer.Dispose();
|
||||||
|
mediaPlayer = null;
|
||||||
|
}
|
||||||
|
if (media != null) {
|
||||||
|
media.Dispose();
|
||||||
|
media = null;
|
||||||
|
}
|
||||||
|
GC.Collect();
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 其他配置保存按钮
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void OtherSaveBtn_Click(object sender, EventArgs e) {
|
||||||
|
SavaConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OtherResetBtn_Click(object sender, EventArgs e) {
|
||||||
|
VideoWallpaperConfigObject videoWallpaperConfigObject = new VideoWallpaperConfigObject();
|
||||||
|
videoWallpaperConfigObject.SettingForScreenName = NowWindowOnScrenn.DeviceName;
|
||||||
|
videoWallpaperConfigObject.SaveConfig(ConfigFilePath);
|
||||||
|
ShowSetData();
|
||||||
|
}
|
||||||
|
=======
|
||||||
|
if (setFrom != null) {
|
||||||
|
setFrom.Dispose();
|
||||||
|
setFrom = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
}
|
||||||
|
}
|
||||||
210
AudioVisualizer/SetForm.resx
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAAAAAAAEAIADDEwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
|
||||||
|
SFlzAAAOxAAADsQBlSsOGwAAE3VJREFUeJzt3XuUJFV9B/Dvr+dR1cuywspDke3qXRAwAYnyxihgICcY
|
||||||
|
TESRqFE4RwWTg8h2zbKAIu6JSJZ1poZHkJz1eAI+IyBgApiokOhRBBVBMfFgkJ1qYBUFVhZ2u2pmun75
|
||||||
|
g1nZR1VPP253V8/9fv7sW/f270xPfbtefS9ARERERERERERERERERERERERERERERERERERERERERERE
|
||||||
|
RERERERERERERERERERERERERERERERERERERERE85F+F0C9ccCq5/epJyNfVOCU7K30U2FQvLR3VVG/
|
||||||
|
MQAWuP0runRI4o0AnKY7CT4TTrjnda8qygsGwALmVaIAgkq7/cPA5f/HAscPeIHy/Og5AEs6HYchsLDx
|
||||||
|
w12AjjhXR55eHE+bGo8hsHDxg12APD9SowOK/CCccI43OiblwnC/CyCzSmPxGdB59n+Vt4eTzm3b9blB
|
||||||
|
VM/O3l6PM1Yg5QqPABaYRt/+ClxQDdxr2unL04CFiR/qApO1ExdET9gwUfxuu/0BfDYM3HM7Ko5yh6cA
|
||||||
|
C0hpLLoe6bvvxmZ2fgCoq7x2SPRnKU3nAGAALDAMgAVEFKenvV6oz76+2TGemHQe9vzIXFGUawyAhWXf
|
||||||
|
tBc3XL34qRbH+T2APTovh/KOAUBpngEDwAoMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhi
|
||||||
|
DAAiizEAiCzGACCyGAOAyGIMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhiDAAiizEAumzZ
|
||||||
|
6i37DdWHj04Uh0Pxi/pI/d4n1y16ot915cX+FS0OIXqPihwlioNRwI8U8sPqhHNLv2uzAQOgCzy/dhIg
|
||||||
|
dwFwMQso9MU12AQYni3gpYU39CthUHxP/yrtn9JYdIEorgJiAPKHvw8UJwr0D38jAdZNBe5FfSx1QePa
|
||||||
|
gAYdeP7ze8+MjPwawFCLXYMwcMc6ff+sdf1aXdjT86NHARzQ6TiZ41fi+yB6TCt9FPq+alD8oon3p5fw
|
||||||
|
CMCQciX+6xnR29vs7pcq8f3VSecmo0XlzRoteJvjOjIWMGxEIF/w/GhNGLgHdqEyazEADChXamer6A2d
|
||||||
|
jCGiXy35sVYD52ZDZeVMIi/u/B05wPOjTWHg7mmkJGIAdMpbueWVKnKDibEEetOyVfFhj487PzcxXp54
|
||||||
|
/nRiaKg9PD96OAzcwwyNZzUGQKcKQxuNDpfow1hg12Y8P3rI8JCHLlsVH7oQg7LXGAAd8Pz44/Odz8rQ
|
||||||
|
7CunPr34Nzv0G4vWQXFhVp+yH125wK58H96gbWsYuLvt/KLnR/cAOCmr00IMyn7gH7ADWVfd51wbBu5H
|
||||||
|
shoPXq27R7Px5qz2dq645/EugFeJ7obgzWltCry1Grh3ZPVdvip+bZLoT7PaddRZWl0rm1qtiV7CI4Du
|
||||||
|
+GmjnR8AHlknz++7She7SfxCWnt5pe4xdZX8vjvl9VDWzq+6tjpZzNz5AWDDuPOz0tj0kaLJj1OHjuNb
|
||||||
|
0eAogebHAOiCMHD/pJntnhqXLZ4f3wvo8Tu3aSH+IIBx48X1VCLAdGpLdbJ4STMjVCdGH/D8aBrA6C6N
|
||||||
|
ghM7qY4YAH03XJg+fTYZeWrXFjkdAx4AyyuzR5m49C+KC1RwvYGhaCcMgDbNncOnNf1HK+P8anz33770
|
||||||
|
aPD2dj0qGDR1qR8iBi4zFep6V32Yl6u6gQHQptpMvLek/U8qUs/pbVSALG39mb9dPfZr90lvWWrYUocY
|
||||||
|
AEQWYwAQWYwBQGQxBgCRxRgARBZjABBZjAFAZDEGAJHFGABEFmMAEFmMAUBkMQYAkcUYAEQWYwAQWYwB
|
||||||
|
QGQxBgCRxRgARBZjABBZjAFAZDEGAJHFGABEFlswAXDg+bpkZiS+EcCbASzZ9roC3xWRq8MJ51aT7ydD
|
||||||
|
qkh2nRZYCmpqFVza5mapI3Xq9O4o+bX7BXL0H14QeQaafLNQKKzdMO78rGeF9MDAB0DJr50lkBtnkD5t
|
||||||
|
tABvguqbPD+CiP7D1ETxEybeV+siadOCayIFE+PTdt6pQ8j4fE1Z4UcH1YFHUhtVXw7Iu5NE3z23hsMd
|
||||||
|
YeC+tasF9cgAB0Aira45ryqXeX50abjEGcEa4Tc1AQA8P3q2DuzZQpfTPD/SoVn1HrumWO1aYT0wkAGw
|
||||||
|
bPWW/Qqz00+22b3gbY7r8KdfHwajDxotDABknvXCqXVdPAWYZ4XnhurDEpbHasaOKvth4ALgwPPVmZmN
|
||||||
|
2935t5P85FXnbd7ryeuWPNP5WNtRLrluXJdOATrZ+bdRlctKfvzzauDcbKKmXhu4AJgZiY19FQw7o08D
|
||||||
|
3GFt5Pk1Y8Ev0JvKK3XPQVzOfaACoOTX/rXJTb8vondrIkdA8JeNNvQq8X3hpHNsq7XwLkAPGT4F8Pza
|
||||||
|
SYAsbWLT2wD8CsApAA5vtKEW4k0YwC+TgQoAgfxNw/bESU3hUiU+U0S/mt5JjzFUHg0MuadRaxi4qTuy
|
||||||
|
V4nuhuDNWf28sfjtpm83d9vABIDnxx9D1vU1xRPhpLssq2910rlpv3P1jpHF8ZbUscdqXwkniu82Uynl
|
||||||
|
WfnCF16h9ez2rJ0fAMJJ9888PzoPwD+lbqD6NQzYUcDABACgl2e1NNr5t9m4XrZ6WYeRKu8C0FIA8DmA
|
||||||
|
HjJ5ETAZXp/ZVtAV83UPA/c6z49WAyiZKai/BigAMqWncRqVv4Xol7pYC+WcKrIe4EnC8eKGZsYIH3dW
|
||||||
|
eMvi2bQ2b2X8mvAq5xdtF9hjAx8AQyPOpc1uG046X/b8KDUADjxfnUevle4+bka5JcCHm9640UXJgp4K
|
||||||
|
gAHQK49dKc+ZGGdmpHYEgHub3Z53AXqoB78F0CR5yMg4kMNMjNMrAx8ApiQqQ61sz2sAPdSD3wJIwcwT
|
||||||
|
nDJg+9RAFUtEZjEAiCw2DAClseh6UfydgfE2SEHfPzVe/G8DY/VUq4eAvAbQQz2eD6ATAhj//A9Y9fw+
|
||||||
|
szq6FqrvwHZzXXQikcLRj0+M/mjY86ONULzSxKAAlmsi/zV3v/1X4RLnoEH52a0mrT3AwWsAPdSDawCm
|
||||||
|
KGDs8/f86LMAPjibzI1sUEGTH5b8+MxhwNjOv7MDXvzZbXRXGLgNn8cnopfsN7Z5rxEd/V2330egN/Xi
|
||||||
|
GsBbPL/2TBgUX96D92obTwFyzKJTgOWV6M8TxX+aqmc+PboIKEs9P9oQBu7y3rxf63gKkGOWnAKUKtHJ
|
||||||
|
ifRu5wcwM6wi7xTVXkxmUPb8aCIM3LEevFfLeASQYxYcAexf0aJI/C3T9TQiibPPcHXCuQWAlCvxuyDJ
|
||||||
|
Ie0Opip/DMEZ82zmA8hlABD105DEW5vY7AUBrgO0wzQs/GIqcL4KbHcKMDXpNDvZRkNlP75EoVdktef9
|
||||||
|
VICo17yx6NRGx58KPF4N3K78+tD4NYCpwPnH0sX6zzIdP5uxSdn0e/ZD5jUATXuVbKHtzAmpuCu7CV+v
|
||||||
|
Bu7bOiqqga5cBKyulU2lsdpZovL5tPaSX3tvNSh+sRvvTbSA1Lq58wNdvAtQnSh+wfOj1AAQLXwYQK4C
|
||||||
|
oNW7ANkDDdaMMANhgO4CQFr7/Murth6Tddl4a+TsY6KkRrp9G/B2ALsmGOfhIwIAJFo4NisxfvcZeaHb
|
||||||
|
79/VAFDIfQLt6iGMKbwNmGML+DagQI/t5zSCXQ2AAnTzoCyTwweBcmyATgFafhBIZe8uldIU/hyYyGIM
|
||||||
|
ACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgslhXAyAR1GVAngTik4A5NlBPAqrX0vaKkqY/gtb1OQGB
|
||||||
|
LgeAaPJzE5OklsZqf2p4UtRd8EnAHMvnk4APADhi5xcVeGMrg6jg1amvAw+2WVdLuhoAYbDo3qwluVd8
|
||||||
|
pFZ67JpitZlxJJGL+Rs7yhMRvVNVdgkAADjiXB15YL3MzDdGeY26ujkj2AR3dFZhc/p2DaA+LCGa/RWE
|
||||||
|
IGta8adN1WNqbThIt49VLJTDU4CpieInPD+6LK3t6cXxNJr439bNcS2rrTrhXttBeU3rRQBUAaROZ1T2
|
||||||
|
4xunAufsRp09P9qS3SomVjNqS0E1SZv8R8FrAPTi/20YuLs1aN/Uy3qydD0ApJCcqUnhvrQ2hZ7l+dFR
|
||||||
|
YeD+UVq750cNv03DwPmaiRrbocOQtB9+FlqcEIIGmMh7oZo1sc0iz49UgHVTgXvRthc9v3Y5IB9rNKyq
|
||||||
|
HGq0zga6HgBT44vuz7oOMOc1czv6YwC+ocCwACcAaDhDsaquNVgmUcvCCedLnh81nNlKgdWeH61uZdzq
|
||||||
|
pPM/nVXWvJ5cA9BRZ2mDSUK3WQHgvGa/PquTxUs6LGsHvAuQY/m8CwAAiArOYjeJjc3cEwZuT48gexIA
|
||||||
|
1bWyyRuLGx0utaQbfyReBMyxHF4E3OapcdniraqtQCKPdTqWjjpLTdTUip7dBZg7XDoGwPmdjCOJs6eh
|
||||||
|
kjqS+SCQKAPAMuF4ccN+Y5v37mRBz15/82/T09uAYeB+xPOn/wVIftJG9yQM3CHjRc3hKUCO5fgUYJuN
|
||||||
|
E0ueBiCeH90K4PQWut4eBm4r2xvV8+cAwmD0QQDiVaI7Gtzf34ECb60GblcfjOApQI7l+BRgZ2Hgvh0A
|
||||||
|
PD/+HKDvz95SLgsD55O9qitL3x4ECifd0wDA87ceDxSuwa6PVT4aBm7qY5J5wFMAaiQMnA8A+EC/65hP
|
||||||
|
338NGAaL7gVwZL/r4ClAjg3AKcCg6nsAEFH/MACILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhiDAAi
|
||||||
|
izEAiCzGACCyGAOAyGIMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhiDIA5rU4LnjkrcIGr
|
||||||
|
AxvXi2nBk+HBmHfcMAbAHEFhn5a2nx16mRZS9nWV35iqiXpn6qrRh/pdQz8wALZR/QsAtza9eaF+BlJn
|
||||||
|
EtcHzRVF8yn5tSuqQfGjzWy7zI/+qtv1DBoGwEvOAXBu85unr/E+PDN7p6F6qAkCuQRAUwFQAL7e5XIG
|
||||||
|
jnUBIIr1Kuk7uleJLw0nncvnG6M8Fr9NMxYAevTa3dteIJIaUPk4RFOX0lo+VvM2TBTDRt1LfvSdzKGB
|
||||||
|
b3Za3qCyLgCmJt0PeX6U/k0v+slyJX54atLJ/KYoj8WHqOptGc3G1omnHYWTzuWeH6UGQKIyVfLji6uB
|
||||||
|
c2Vau+dHzwLIXFW6OOycYajMgWNdAMzZAmC3tAYVvd3zo1+GgXvwzm3lSvRLVc1cr3BkZmaFwRppF3Iv
|
||||||
|
oMentkDXen60FoJvQ/V+qBwMwQkA9p5n0I2PrJPnzdc6GKwMgL1ecPZ8enE83WCTgzw/2uUYf577hM/x
|
||||||
|
8L+7wsB5Q9rnsgPFyYCc3OxKj+ESZ5mB0gaWlQHwwHqZKfnRVQKsNDVmGLh7mBqLshXqs69IhoaN3Got
|
||||||
|
1HEI1ojVz21YGQAAUA3ciudHb8Suy5K3rD6EgwyURE3YcPXip8r+1uMUhR90Mo5CT95wdfERU3UNKmsD
|
||||||
|
AADCwD3S8+PvZ51XNiMpyGFPfNr5P5N1UWNTwaL79q/ooiGJt7bTX0edpdW1ssl0XYPI6gAA5s4rx6JT
|
||||||
|
obir1b57veCMPrBeZrpRFzX2xKTUAEjZj65UYHVzvfSTYVC8rJt1DRrrAwAAwgn3GwDE86NVAD49bwfV
|
||||||
|
K8LJ4sca3nimnpgK3IsAXFT2o79XYBzAoh02UNwzO5Kc/eS6RU/0pcCcYwBsJwzccbz4TwTPj94C1TcA
|
||||||
|
cqwIfpyI/nt1ovi9PpdIGaYC93oA1/e7jkHDAMgQBu5dQOunBUSDhAFAZDEGAJHFGABEFmMAEFmMAUBk
|
||||||
|
MQYAkcUYAEQWYwAQWYwBQGQxBgCRxRgARBZjABBZjAFAZDEGAJHFGABEFmMAEFmMAUBkMQYAkcUYAEQW
|
||||||
|
YwAQWYwBQGkarZvYNIXsNu+KitRXDABK8z0Ar9n5xdJYdEp1wv1W88PoOw3WRF3AAMix5f704RuC0Z82
|
||||||
|
s225Ujvb1HetAv8mwDk7vy6KL2P+5ba3d3jG+I+3WxuZxQDIA8G3X1zWekcJkoeA5ha6VpEb0oeWj7Za
|
||||||
|
TjUYvdPzU88C9nrV6q37N7PKjufHn8s6/BcRY6syU2eaXEWduqm8Rl3dHNdSG0WeCSecvRr19/yoBsBN
|
||||||
|
awsDt63P2POjzAMKWeIUp9ZIlNVe8mtnCeTGrPZ2ayLzeASQA1NrJPL8jP1J9eWeH6kgOW4qWHTf9k2l
|
||||||
|
sdr7ROXzDYb+33ZrEpHTVfW21JI2x7WSH11QDdxrdm7z/GgrgGLWuAp8vd2ayDwmcU54fvRbtHZ+Pa9O
|
||||||
|
v2k9P5oGMGKoHAD89s8bHgHkRBiM7uv504mxAUXe0ekQIzPO7jMjceahfsuSwhHGxiIjmMY5UrpY95Tp
|
||||||
|
+FkTY5n6pt3/wujVQ3X8stNxRLF+atL9kImayBwGQM6Y2OHCJc4Q1oixo4nllemjE0nub7e/ClZWJ9yr
|
||||||
|
TdVD5jAAcmq+i2kZvhMG7oldKAdlP75EoVe02m92OFnWzG1D6g8GQI6VV+oeWoinALys4YaCh8IJ93U9
|
||||||
|
qakSXaWCC+bbTqFnV4NiozsUlAMMgAFRqkQrIDgN0OMLIosS1Vvigvu1p8ZlS/9qis+E6HECvE5V7kFB
|
||||||
|
7qxOjD7Qr3qIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
|
||||||
|
iIiIiIiIiIiIiIiIiIiIiIiIOvT/HA1VIVptAC8AAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
214
AudioVisualizer/SetForm.resx.orig
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
=======
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAAAAAAAEAIADDEwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
|
||||||
|
SFlzAAAOxAAADsQBlSsOGwAAE3VJREFUeJzt3XuUJFV9B/Dvr+dR1cuywspDke3qXRAwAYnyxihgICcY
|
||||||
|
TESRqFE4RwWTg8h2zbKAIu6JSJZ1poZHkJz1eAI+IyBgApiokOhRBBVBMfFgkJ1qYBUFVhZ2u2pmun75
|
||||||
|
g1nZR1VPP253V8/9fv7sW/f270xPfbtefS9ARERERERERERERERERERERERERERERERERERERERERERE
|
||||||
|
RERERERERERERERERERERERERERERERERERERERE85F+F0C9ccCq5/epJyNfVOCU7K30U2FQvLR3VVG/
|
||||||
|
MQAWuP0runRI4o0AnKY7CT4TTrjnda8qygsGwALmVaIAgkq7/cPA5f/HAscPeIHy/Og5AEs6HYchsLDx
|
||||||
|
w12AjjhXR55eHE+bGo8hsHDxg12APD9SowOK/CCccI43OiblwnC/CyCzSmPxGdB59n+Vt4eTzm3b9blB
|
||||||
|
VM/O3l6PM1Yg5QqPABaYRt/+ClxQDdxr2unL04CFiR/qApO1ExdET9gwUfxuu/0BfDYM3HM7Ko5yh6cA
|
||||||
|
C0hpLLoe6bvvxmZ2fgCoq7x2SPRnKU3nAGAALDAMgAVEFKenvV6oz76+2TGemHQe9vzIXFGUawyAhWXf
|
||||||
|
tBc3XL34qRbH+T2APTovh/KOAUBpngEDwAoMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhi
|
||||||
|
DAAiizEAiCzGACCyGAOAyGIMACKLMQCILMYAILIYA4DIYgwAIosxAIgsxgAgshgDgMhiDAAiizEAumzZ
|
||||||
|
6i37DdWHj04Uh0Pxi/pI/d4n1y16ot915cX+FS0OIXqPihwlioNRwI8U8sPqhHNLv2uzAQOgCzy/dhIg
|
||||||
|
dwFwMQso9MU12AQYni3gpYU39CthUHxP/yrtn9JYdIEorgJiAPKHvw8UJwr0D38jAdZNBe5FfSx1QePa
|
||||||
|
gAYdeP7ze8+MjPwawFCLXYMwcMc6ff+sdf1aXdjT86NHARzQ6TiZ41fi+yB6TCt9FPq+alD8oon3p5fw
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
182
AudioVisualizer/VersionInformationForm.Designer.cs
generated
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
namespace AudioWallpaper {
|
||||||
|
partial class VersionInformationForm {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VersionInformationForm));
|
||||||
|
linkLabelURLHome = new LinkLabel();
|
||||||
|
labelAuthor = new Label();
|
||||||
|
backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
backgroundWorker2 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
labelEdition = new Label();
|
||||||
|
backgroundWorker3 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
labelCopyright = new Label();
|
||||||
|
backgroundWorker4 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
pictureBoxCopyright = new PictureBox();
|
||||||
|
pictureBoxIcon = new PictureBox();
|
||||||
|
pictureBoxLogo = new PictureBox();
|
||||||
|
linkLabelSponsor = new LinkLabel();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxCopyright).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxIcon).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxLogo).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// linkLabelURLHome
|
||||||
|
//
|
||||||
|
linkLabelURLHome.AutoSize = true;
|
||||||
|
linkLabelURLHome.Font = new Font("宋体", 24F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
linkLabelURLHome.Location = new Point(82, 125);
|
||||||
|
linkLabelURLHome.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
linkLabelURLHome.Name = "linkLabelURLHome";
|
||||||
|
linkLabelURLHome.Size = new Size(412, 33);
|
||||||
|
linkLabelURLHome.TabIndex = 2;
|
||||||
|
linkLabelURLHome.TabStop = true;
|
||||||
|
linkLabelURLHome.Text = "律动壁纸——IT资源网产品";
|
||||||
|
linkLabelURLHome.LinkClicked += linkLabelURLHome_LinkClicked;
|
||||||
|
//
|
||||||
|
// labelAuthor
|
||||||
|
//
|
||||||
|
labelAuthor.AutoSize = true;
|
||||||
|
labelAuthor.Font = new Font("华文行楷", 18F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelAuthor.Location = new Point(222, 176);
|
||||||
|
labelAuthor.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelAuthor.Name = "labelAuthor";
|
||||||
|
labelAuthor.Size = new Size(132, 25);
|
||||||
|
labelAuthor.TabIndex = 3;
|
||||||
|
labelAuthor.Text = "李传玖开发";
|
||||||
|
//
|
||||||
|
// labelEdition
|
||||||
|
//
|
||||||
|
labelEdition.AutoSize = true;
|
||||||
|
labelEdition.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelEdition.Location = new Point(186, 206);
|
||||||
|
labelEdition.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelEdition.Name = "labelEdition";
|
||||||
|
labelEdition.Size = new Size(77, 12);
|
||||||
|
labelEdition.TabIndex = 4;
|
||||||
|
labelEdition.Text = "版本号:1.2.3";
|
||||||
|
//
|
||||||
|
// labelCopyright
|
||||||
|
//
|
||||||
|
labelCopyright.AutoSize = true;
|
||||||
|
labelCopyright.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelCopyright.Location = new Point(336, 206);
|
||||||
|
labelCopyright.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelCopyright.Name = "labelCopyright";
|
||||||
|
labelCopyright.Size = new Size(41, 12);
|
||||||
|
labelCopyright.TabIndex = 5;
|
||||||
|
labelCopyright.Text = "李传玖";
|
||||||
|
//
|
||||||
|
// pictureBoxCopyright
|
||||||
|
//
|
||||||
|
pictureBoxCopyright.Image = (Image)resources.GetObject("pictureBoxCopyright.Image");
|
||||||
|
pictureBoxCopyright.Location = new Point(321, 206);
|
||||||
|
pictureBoxCopyright.Name = "pictureBoxCopyright";
|
||||||
|
pictureBoxCopyright.Size = new Size(12, 12);
|
||||||
|
pictureBoxCopyright.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxCopyright.TabIndex = 6;
|
||||||
|
pictureBoxCopyright.TabStop = false;
|
||||||
|
//
|
||||||
|
// pictureBoxIcon
|
||||||
|
//
|
||||||
|
pictureBoxIcon.Cursor = Cursors.Hand;
|
||||||
|
pictureBoxIcon.Image = (Image)resources.GetObject("pictureBoxIcon.Image");
|
||||||
|
pictureBoxIcon.Location = new Point(-1, 116);
|
||||||
|
pictureBoxIcon.Margin = new Padding(4, 3, 4, 3);
|
||||||
|
pictureBoxIcon.Name = "pictureBoxIcon";
|
||||||
|
pictureBoxIcon.Size = new Size(69, 50);
|
||||||
|
pictureBoxIcon.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxIcon.TabIndex = 1;
|
||||||
|
pictureBoxIcon.TabStop = false;
|
||||||
|
//
|
||||||
|
// pictureBoxLogo
|
||||||
|
//
|
||||||
|
pictureBoxLogo.Cursor = Cursors.Hand;
|
||||||
|
pictureBoxLogo.Image = (Image)resources.GetObject("pictureBoxLogo.Image");
|
||||||
|
pictureBoxLogo.Location = new Point(-1, 1);
|
||||||
|
pictureBoxLogo.Margin = new Padding(4, 3, 4, 3);
|
||||||
|
pictureBoxLogo.Name = "pictureBoxLogo";
|
||||||
|
pictureBoxLogo.Size = new Size(519, 104);
|
||||||
|
pictureBoxLogo.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxLogo.TabIndex = 0;
|
||||||
|
pictureBoxLogo.TabStop = false;
|
||||||
|
pictureBoxLogo.Click += pictureBoxLogo_Click;
|
||||||
|
//
|
||||||
|
// linkLabelSponsor
|
||||||
|
//
|
||||||
|
linkLabelSponsor.AutoSize = true;
|
||||||
|
linkLabelSponsor.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
linkLabelSponsor.Location = new Point(247, 228);
|
||||||
|
linkLabelSponsor.Name = "linkLabelSponsor";
|
||||||
|
linkLabelSponsor.Size = new Size(53, 12);
|
||||||
|
linkLabelSponsor.TabIndex = 7;
|
||||||
|
linkLabelSponsor.TabStop = true;
|
||||||
|
linkLabelSponsor.Text = "赞助开发";
|
||||||
|
linkLabelSponsor.LinkClicked += linkLabelSponsor_LinkClicked;
|
||||||
|
//
|
||||||
|
// VersionInformationForm
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 12F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
AutoSize = true;
|
||||||
|
ClientSize = new Size(518, 246);
|
||||||
|
Controls.Add(linkLabelSponsor);
|
||||||
|
Controls.Add(pictureBoxCopyright);
|
||||||
|
Controls.Add(labelCopyright);
|
||||||
|
Controls.Add(labelEdition);
|
||||||
|
Controls.Add(labelAuthor);
|
||||||
|
Controls.Add(linkLabelURLHome);
|
||||||
|
Controls.Add(pictureBoxIcon);
|
||||||
|
Controls.Add(pictureBoxLogo);
|
||||||
|
Font = new Font("宋体", 9F, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point);
|
||||||
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
|
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||||
|
Margin = new Padding(4, 3, 4, 3);
|
||||||
|
MaximizeBox = false;
|
||||||
|
MinimizeBox = false;
|
||||||
|
Name = "VersionInformationForm";
|
||||||
|
StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
Text = "关于我们";
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxCopyright).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxIcon).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxLogo).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private PictureBox pictureBoxLogo;
|
||||||
|
private PictureBox pictureBoxIcon;
|
||||||
|
private LinkLabel linkLabelURLHome;
|
||||||
|
private Label labelAuthor;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker1;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker2;
|
||||||
|
private Label labelEdition;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker3;
|
||||||
|
private Label labelCopyright;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker4;
|
||||||
|
private PictureBox pictureBoxCopyright;
|
||||||
|
private LinkLabel linkLabelSponsor;
|
||||||
|
}
|
||||||
|
}
|
||||||
193
AudioVisualizer/VersionInformationForm.Designer.cs.orig
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
=======
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
partial class VersionInformationForm {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VersionInformationForm));
|
||||||
|
linkLabelURLHome = new LinkLabel();
|
||||||
|
labelAuthor = new Label();
|
||||||
|
backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
backgroundWorker2 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
labelEdition = new Label();
|
||||||
|
backgroundWorker3 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
labelCopyright = new Label();
|
||||||
|
backgroundWorker4 = new System.ComponentModel.BackgroundWorker();
|
||||||
|
pictureBoxCopyright = new PictureBox();
|
||||||
|
pictureBoxIcon = new PictureBox();
|
||||||
|
pictureBoxLogo = new PictureBox();
|
||||||
|
linkLabelSponsor = new LinkLabel();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxCopyright).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxIcon).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxLogo).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// linkLabelURLHome
|
||||||
|
//
|
||||||
|
linkLabelURLHome.AutoSize = true;
|
||||||
|
linkLabelURLHome.Font = new Font("宋体", 24F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
linkLabelURLHome.Location = new Point(82, 125);
|
||||||
|
linkLabelURLHome.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
linkLabelURLHome.Name = "linkLabelURLHome";
|
||||||
|
linkLabelURLHome.Size = new Size(412, 33);
|
||||||
|
linkLabelURLHome.TabIndex = 2;
|
||||||
|
linkLabelURLHome.TabStop = true;
|
||||||
|
linkLabelURLHome.Text = "律动壁纸——IT资源网产品";
|
||||||
|
linkLabelURLHome.LinkClicked += linkLabelURLHome_LinkClicked;
|
||||||
|
//
|
||||||
|
// labelAuthor
|
||||||
|
//
|
||||||
|
labelAuthor.AutoSize = true;
|
||||||
|
labelAuthor.Font = new Font("华文行楷", 18F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelAuthor.Location = new Point(222, 176);
|
||||||
|
labelAuthor.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelAuthor.Name = "labelAuthor";
|
||||||
|
labelAuthor.Size = new Size(132, 25);
|
||||||
|
labelAuthor.TabIndex = 3;
|
||||||
|
labelAuthor.Text = "李传玖开发";
|
||||||
|
//
|
||||||
|
// labelEdition
|
||||||
|
//
|
||||||
|
labelEdition.AutoSize = true;
|
||||||
|
labelEdition.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelEdition.Location = new Point(186, 206);
|
||||||
|
labelEdition.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelEdition.Name = "labelEdition";
|
||||||
|
labelEdition.Size = new Size(77, 12);
|
||||||
|
labelEdition.TabIndex = 4;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
labelEdition.Text = "版本号:1.2.3";
|
||||||
|
=======
|
||||||
|
labelEdition.Text = "版本号:1.0.1";
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
//
|
||||||
|
// labelCopyright
|
||||||
|
//
|
||||||
|
labelCopyright.AutoSize = true;
|
||||||
|
labelCopyright.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
labelCopyright.Location = new Point(336, 206);
|
||||||
|
labelCopyright.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelCopyright.Name = "labelCopyright";
|
||||||
|
labelCopyright.Size = new Size(41, 12);
|
||||||
|
labelCopyright.TabIndex = 5;
|
||||||
|
labelCopyright.Text = "李传玖";
|
||||||
|
//
|
||||||
|
// pictureBoxCopyright
|
||||||
|
//
|
||||||
|
pictureBoxCopyright.Image = (Image)resources.GetObject("pictureBoxCopyright.Image");
|
||||||
|
pictureBoxCopyright.Location = new Point(321, 206);
|
||||||
|
pictureBoxCopyright.Name = "pictureBoxCopyright";
|
||||||
|
pictureBoxCopyright.Size = new Size(12, 12);
|
||||||
|
pictureBoxCopyright.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxCopyright.TabIndex = 6;
|
||||||
|
pictureBoxCopyright.TabStop = false;
|
||||||
|
//
|
||||||
|
// pictureBoxIcon
|
||||||
|
//
|
||||||
|
pictureBoxIcon.Cursor = Cursors.Hand;
|
||||||
|
pictureBoxIcon.Image = (Image)resources.GetObject("pictureBoxIcon.Image");
|
||||||
|
pictureBoxIcon.Location = new Point(-1, 116);
|
||||||
|
pictureBoxIcon.Margin = new Padding(4, 3, 4, 3);
|
||||||
|
pictureBoxIcon.Name = "pictureBoxIcon";
|
||||||
|
pictureBoxIcon.Size = new Size(69, 50);
|
||||||
|
pictureBoxIcon.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxIcon.TabIndex = 1;
|
||||||
|
pictureBoxIcon.TabStop = false;
|
||||||
|
//
|
||||||
|
// pictureBoxLogo
|
||||||
|
//
|
||||||
|
pictureBoxLogo.Cursor = Cursors.Hand;
|
||||||
|
pictureBoxLogo.Image = (Image)resources.GetObject("pictureBoxLogo.Image");
|
||||||
|
pictureBoxLogo.Location = new Point(-1, 1);
|
||||||
|
pictureBoxLogo.Margin = new Padding(4, 3, 4, 3);
|
||||||
|
pictureBoxLogo.Name = "pictureBoxLogo";
|
||||||
|
pictureBoxLogo.Size = new Size(519, 104);
|
||||||
|
pictureBoxLogo.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
|
pictureBoxLogo.TabIndex = 0;
|
||||||
|
pictureBoxLogo.TabStop = false;
|
||||||
|
pictureBoxLogo.Click += pictureBoxLogo_Click;
|
||||||
|
//
|
||||||
|
// linkLabelSponsor
|
||||||
|
//
|
||||||
|
linkLabelSponsor.AutoSize = true;
|
||||||
|
linkLabelSponsor.Font = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
linkLabelSponsor.Location = new Point(247, 228);
|
||||||
|
linkLabelSponsor.Name = "linkLabelSponsor";
|
||||||
|
linkLabelSponsor.Size = new Size(53, 12);
|
||||||
|
linkLabelSponsor.TabIndex = 7;
|
||||||
|
linkLabelSponsor.TabStop = true;
|
||||||
|
linkLabelSponsor.Text = "赞助开发";
|
||||||
|
linkLabelSponsor.LinkClicked += linkLabelSponsor_LinkClicked;
|
||||||
|
//
|
||||||
|
// VersionInformationForm
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 12F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
AutoSize = true;
|
||||||
|
=======
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
ClientSize = new Size(518, 246);
|
||||||
|
Controls.Add(linkLabelSponsor);
|
||||||
|
Controls.Add(pictureBoxCopyright);
|
||||||
|
Controls.Add(labelCopyright);
|
||||||
|
Controls.Add(labelEdition);
|
||||||
|
Controls.Add(labelAuthor);
|
||||||
|
Controls.Add(linkLabelURLHome);
|
||||||
|
Controls.Add(pictureBoxIcon);
|
||||||
|
Controls.Add(pictureBoxLogo);
|
||||||
|
Font = new Font("宋体", 9F, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point);
|
||||||
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
|
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||||
|
Margin = new Padding(4, 3, 4, 3);
|
||||||
|
MaximizeBox = false;
|
||||||
|
MinimizeBox = false;
|
||||||
|
Name = "VersionInformationForm";
|
||||||
|
StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
Text = "关于我们";
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxCopyright).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxIcon).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBoxLogo).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private PictureBox pictureBoxLogo;
|
||||||
|
private PictureBox pictureBoxIcon;
|
||||||
|
private LinkLabel linkLabelURLHome;
|
||||||
|
private Label labelAuthor;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker1;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker2;
|
||||||
|
private Label labelEdition;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker3;
|
||||||
|
private Label labelCopyright;
|
||||||
|
private System.ComponentModel.BackgroundWorker backgroundWorker4;
|
||||||
|
private PictureBox pictureBoxCopyright;
|
||||||
|
private LinkLabel linkLabelSponsor;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
AudioVisualizer/VersionInformationForm.cs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class VersionInformationForm : Form {
|
||||||
|
public VersionInformationForm() {
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxLogo_Click(object sender, EventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabelURLHome_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabelSponsor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/supportOur.php");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
AudioVisualizer/VersionInformationForm.cs.orig
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
=======
|
||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AudioVisualizer {
|
||||||
|
>>>>>>> 5cb18e9cc33bf9825472ca3181da76afddd9de36
|
||||||
|
public partial class VersionInformationForm : Form {
|
||||||
|
public VersionInformationForm() {
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxLogo_Click(object sender, EventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabelURLHome_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void linkLabelSponsor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", "https://www.itziyuanwang.top/supportOur.php");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1853
AudioVisualizer/VersionInformationForm.resx
Normal file
1861
AudioVisualizer/VersionInformationForm.resx.orig
Normal file
61
AudioVisualizer/VideoWallpaperWindow.Designer.cs
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
partial class VideoWallpaperWindow {
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing) {
|
||||||
|
if (disposing && (components != null)) {
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent() {
|
||||||
|
videoView1 = new LibVLCSharp.WinForms.VideoView();
|
||||||
|
((System.ComponentModel.ISupportInitialize)videoView1).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// videoView1
|
||||||
|
//
|
||||||
|
videoView1.BackColor = Color.Black;
|
||||||
|
videoView1.Dock = DockStyle.Fill;
|
||||||
|
videoView1.Location = new Point(0, 0);
|
||||||
|
videoView1.MediaPlayer = null;
|
||||||
|
videoView1.Name = "videoView1";
|
||||||
|
videoView1.Size = new Size(800, 450);
|
||||||
|
videoView1.TabIndex = 0;
|
||||||
|
videoView1.Text = "videoView1";
|
||||||
|
//
|
||||||
|
// VideoWallpaperWindow
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
ClientSize = new Size(800, 450);
|
||||||
|
Controls.Add(videoView1);
|
||||||
|
FormBorderStyle = FormBorderStyle.None;
|
||||||
|
Name = "VideoWallpaperWindow";
|
||||||
|
Text = "VideoWallpaperWindow";
|
||||||
|
FormClosing += VideoWallpaperWindow_FormClosing;
|
||||||
|
((System.ComponentModel.ISupportInitialize)videoView1).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
private LibVLCSharp.WinForms.VideoView videoView1;
|
||||||
|
}
|
||||||
|
}
|
||||||
157
AudioVisualizer/VideoWallpaperWindow.cs
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
|
||||||
|
using AudioWallpaper.Entity;
|
||||||
|
using LibVLCSharp.Shared;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public partial class VideoWallpaperWindow : Form {
|
||||||
|
private IntPtr programIntPtr = IntPtr.Zero;
|
||||||
|
|
||||||
|
private LibVLC? libVLC = new LibVLC();
|
||||||
|
private MediaPlayer? mediaPlayer;
|
||||||
|
private Media? media;
|
||||||
|
private VideoWallpaperConfigObject videoWallpaperConfig;
|
||||||
|
private AppBarManager appBarManager;
|
||||||
|
public delegate void FullScreenDetected(bool status);
|
||||||
|
public event FullScreenDetected FullScreenDetectedEvent;
|
||||||
|
|
||||||
|
public VideoWallpaperWindow(VideoWallpaperConfigObject videoWallpaperConfigObject) {
|
||||||
|
videoWallpaperConfig = videoWallpaperConfigObject;
|
||||||
|
appBarManager = new AppBarManager(Handle);
|
||||||
|
InitializeComponent();
|
||||||
|
Init();
|
||||||
|
Win32.SetParent(Handle, programIntPtr);
|
||||||
|
PlayerWallPaper();
|
||||||
|
}
|
||||||
|
protected override void WndProc(ref Message m) {
|
||||||
|
if (appBarManager != null && m.Msg == appBarManager.uCallbackMessage) {
|
||||||
|
switch ((int)m.WParam) {
|
||||||
|
case AppBarManager.ABN_FULLSCREENAPP:
|
||||||
|
bool isFullScreen = m.LParam != IntPtr.Zero;
|
||||||
|
if (isFullScreen) {
|
||||||
|
SetFrom.FullScreenWindowCount++;
|
||||||
|
} else {
|
||||||
|
SetFrom.FullScreenWindowCount--;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChangeVideoPlayerStatus(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
|
||||||
|
//通知其它窗体停止渲染
|
||||||
|
FullScreenDetectedEvent(SetFrom.FullScreenWindowCount <= 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
base.WndProc(ref m);
|
||||||
|
}
|
||||||
|
public void DisposeAppBarManager() {
|
||||||
|
appBarManager.Dispose();
|
||||||
|
}
|
||||||
|
public void PlayerWallPaper() {
|
||||||
|
if (mediaPlayer == null && libVLC != null) {
|
||||||
|
mediaPlayer = new MediaPlayer(libVLC);
|
||||||
|
videoView1.MediaPlayer = mediaPlayer;
|
||||||
|
mediaPlayer.EndReached += MediaPlayer_EndReached;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
mediaPlayer.SetRate((float)videoWallpaperConfig.Rate / 10f);
|
||||||
|
mediaPlayer.Volume = videoWallpaperConfig.Volume;
|
||||||
|
media = new Media(libVLC, new Uri(videoWallpaperConfig.Url));
|
||||||
|
|
||||||
|
mediaPlayer.Play(media);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Console.WriteLine(e.StackTrace);
|
||||||
|
}
|
||||||
|
GC.Collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 监听视频播放结束事件,重复播放
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void MediaPlayer_EndReached(object? sender, EventArgs e) {
|
||||||
|
if (media != null && mediaPlayer != null) {
|
||||||
|
ThreadPool.QueueUserWorkItem((p) => { mediaPlayer.Play(media); GC.Collect(); });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void ReShow(int x, int y, int width, int height) {
|
||||||
|
SetBounds(x, y, width, height);
|
||||||
|
}
|
||||||
|
public void ReShow(VideoWallpaperConfigObject videoWallpaperConfigObject) {
|
||||||
|
if (videoWallpaperConfig.Url != null && videoWallpaperConfig.Url.Equals(videoWallpaperConfigObject.Url) && media != null && mediaPlayer != null) {
|
||||||
|
|
||||||
|
mediaPlayer.SetRate((float)videoWallpaperConfigObject.Rate / 10f);
|
||||||
|
mediaPlayer.Volume = videoWallpaperConfigObject.Volume;
|
||||||
|
videoWallpaperConfig = videoWallpaperConfigObject;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
videoWallpaperConfig = videoWallpaperConfigObject;
|
||||||
|
PlayerWallPaper();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 窗体被关闭时,关闭视频播放相关
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void VideoWallpaperWindow_FormClosing(object sender, FormClosingEventArgs e) {
|
||||||
|
VideoDispose();
|
||||||
|
}
|
||||||
|
public void VideoDispose() {
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.EndReached -= MediaPlayer_EndReached;
|
||||||
|
mediaPlayer.Stop();
|
||||||
|
mediaPlayer.Dispose();
|
||||||
|
mediaPlayer = null;
|
||||||
|
}
|
||||||
|
if (media != null) {
|
||||||
|
media.Dispose();
|
||||||
|
media = null;
|
||||||
|
}
|
||||||
|
if (libVLC != null) {
|
||||||
|
libVLC.Dispose();
|
||||||
|
libVLC = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void ChangeVideoPlayerStatus(bool status) {
|
||||||
|
if (!videoWallpaperConfig.AutoStopWallPaper) {
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.SetPause(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mediaPlayer != null) {
|
||||||
|
mediaPlayer.SetPause(!status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void Init() {
|
||||||
|
// 通过类名查找一个窗口,返回窗口句柄。
|
||||||
|
programIntPtr = Win32.FindWindow("Progman", null);
|
||||||
|
|
||||||
|
// 窗口句柄有效
|
||||||
|
if (programIntPtr != IntPtr.Zero) {
|
||||||
|
|
||||||
|
IntPtr result = IntPtr.Zero;
|
||||||
|
|
||||||
|
// 向 Program Manager 窗口发送 0x52c 的一个消息,超时设置为0x3e8(1秒)。
|
||||||
|
Win32.SendMessageTimeout(programIntPtr, 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 0x3e8, result);
|
||||||
|
|
||||||
|
// 遍历顶级窗口
|
||||||
|
Win32.EnumWindows((hwnd, lParam) => {
|
||||||
|
// 找到包含 SHELLDLL_DefView 这个窗口句柄的 WorkerW
|
||||||
|
if (Win32.FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero) {
|
||||||
|
// 找到当前 WorkerW 窗口的,后一个 WorkerW 窗口。
|
||||||
|
IntPtr tempHwnd = Win32.FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null);
|
||||||
|
Win32.ShowWindow(tempHwnd, 0);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
120
AudioVisualizer/VideoWallpaperWindow.resx
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
45
AudioVisualizer/Win32.cs
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace AudioWallpaper {
|
||||||
|
public static class Win32 {
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr FindWindow(string className, string winName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr SendMessageTimeout(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam, uint fuFlage, uint timeout, IntPtr result);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam);
|
||||||
|
public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string winName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr SetParent(IntPtr hwnd, IntPtr parentHwnd);
|
||||||
|
[DllImport("shell32.dll")]
|
||||||
|
public static extern uint SHAppBarMessage(uint dwMessage, ref APPBARDATA pData);
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
||||||
|
public static extern uint RegisterWindowMessage(string lpString);
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct APPBARDATA {
|
||||||
|
public int cbSize;
|
||||||
|
public IntPtr hWnd;
|
||||||
|
public uint uCallbackMessage;
|
||||||
|
public uint uEdge;
|
||||||
|
public RECT rc;
|
||||||
|
public int lParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct RECT {
|
||||||
|
public int left;
|
||||||
|
public int top;
|
||||||
|
public int right;
|
||||||
|
public int bottom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
77
AudioVisualizer/app.manifest
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||||
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||||
|
<security>
|
||||||
|
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<!-- UAC 清单选项
|
||||||
|
如果想要更改 Windows 用户帐户控制级别,请使用
|
||||||
|
以下节点之一替换 requestedExecutionLevel 节点。
|
||||||
|
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||||
|
|
||||||
|
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
|
||||||
|
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
|
||||||
|
元素。
|
||||||
|
-->
|
||||||
|
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
|
||||||
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
|
<application>
|
||||||
|
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
|
||||||
|
Windows 版本的列表。取消评论适当的元素,
|
||||||
|
Windows 将自动选择最兼容的环境。 -->
|
||||||
|
|
||||||
|
<!-- Windows Vista -->
|
||||||
|
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||||
|
|
||||||
|
<!-- Windows 7 -->
|
||||||
|
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||||
|
|
||||||
|
<!-- Windows 8 -->
|
||||||
|
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||||
|
|
||||||
|
<!-- Windows 8.1 -->
|
||||||
|
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||||
|
|
||||||
|
<!-- Windows 10 -->
|
||||||
|
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||||
|
</application>
|
||||||
|
</compatibility>
|
||||||
|
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
|
||||||
|
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
||||||
|
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
|
||||||
|
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
|
||||||
|
|
||||||
|
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
|
||||||
|
|
||||||
|
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<windowsSettings>
|
||||||
|
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
|
||||||
|
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">false</longPathAware>
|
||||||
|
</windowsSettings>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity
|
||||||
|
type="win32"
|
||||||
|
name="Microsoft.Windows.Common-Controls"
|
||||||
|
version="6.0.0.0"
|
||||||
|
processorArchitecture="*"
|
||||||
|
publicKeyToken="6595b64144ccf1df"
|
||||||
|
language="*"
|
||||||
|
/>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
</assembly>
|
||||||
BIN
AudioVisualizer/bin/Debug/AudioVisualizer.1.0.0.nupkg
Normal file
BIN
AudioVisualizer/bin/Debug/AudioWallpaperManager.1.2.1.nupkg
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v6.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v6.0": {
|
||||||
|
"AudioWallpaper/1.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"LibAudioVisualizer": "1.0.0",
|
||||||
|
"LibVLCSharp.WinForms": "3.8.2",
|
||||||
|
"NAudio": "2.2.1",
|
||||||
|
"System.Management": "8.0.0",
|
||||||
|
"VideoLAN.LibVLC.Windows": "3.0.20"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"AudioWallpaper.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FftSharp/1.1.6": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net5.0/FftSharp.dll": {
|
||||||
|
"assemblyVersion": "1.1.6.0",
|
||||||
|
"fileVersion": "1.1.6.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibVLCSharp/3.8.2": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/LibVLCSharp.dll": {
|
||||||
|
"assemblyVersion": "3.8.2.0",
|
||||||
|
"fileVersion": "3.8.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibVLCSharp.WinForms/3.8.2": {
|
||||||
|
"dependencies": {
|
||||||
|
"LibVLCSharp": "3.8.2"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0-windows7.0/LibVLCSharp.WinForms.dll": {
|
||||||
|
"assemblyVersion": "3.8.2.0",
|
||||||
|
"fileVersion": "3.8.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/3.1.0": {},
|
||||||
|
"Microsoft.Win32.Registry/4.7.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Security.AccessControl": "4.7.0",
|
||||||
|
"System.Security.Principal.Windows": "4.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Asio": "2.2.1",
|
||||||
|
"NAudio.Core": "2.2.1",
|
||||||
|
"NAudio.Midi": "2.2.1",
|
||||||
|
"NAudio.Wasapi": "2.2.1",
|
||||||
|
"NAudio.WinForms": "2.2.1",
|
||||||
|
"NAudio.WinMM": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0-windows7.0/NAudio.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Asio/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.Registry": "4.7.0",
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Asio.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Core/2.2.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Core.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Midi/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Midi.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Wasapi/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Wasapi.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.WinForms/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.WinMM": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.WinMM/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.Registry": "4.7.0",
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.WinMM.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.CodeDom/8.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/System.CodeDom.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Management/8.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.CodeDom": "8.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/System.Management.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/net6.0/System.Management.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/4.7.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "3.1.0",
|
||||||
|
"System.Security.Principal.Windows": "4.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/4.7.0": {},
|
||||||
|
"VideoLAN.LibVLC.Windows/3.0.20": {},
|
||||||
|
"LibAudioVisualizer/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"FftSharp": "1.1.6",
|
||||||
|
"LibDynamics": "1.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"LibAudioVisualizer.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibDynamics/1.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"LibDynamics.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"AudioWallpaper/1.2.1": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"FftSharp/1.1.6": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-dGUkHaYB2huawqtMWOsqtqspYHVFIux70LDjI/2I08ZkYZ5nLS3NP9AbWxrI+tdw6oLPs8Q/dv8CJzpmoAvj/w==",
|
||||||
|
"path": "fftsharp/1.1.6",
|
||||||
|
"hashPath": "fftsharp.1.1.6.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"LibVLCSharp/3.8.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-P61Pkc+2GgX9PGJmm0MTVYKh0zPbak25rkyb5MU8Vq7x/VgFV/0h3L2bP7H4Oz5sfmm03H8T010cqEKQVA4Jew==",
|
||||||
|
"path": "libvlcsharp/3.8.2",
|
||||||
|
"hashPath": "libvlcsharp.3.8.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"LibVLCSharp.WinForms/3.8.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-3wL7lthadR9MvpmSBTjY7WIlnwWRrFS2YpnFaaSnOzT3NZJngujlfuvfrf+1ge7uUE3CL/6Il6P4eN9fNNa0SA==",
|
||||||
|
"path": "libvlcsharp.winforms/3.8.2",
|
||||||
|
"hashPath": "libvlcsharp.winforms.3.8.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/3.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==",
|
||||||
|
"path": "microsoft.netcore.platforms/3.1.0",
|
||||||
|
"hashPath": "microsoft.netcore.platforms.3.1.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Win32.Registry/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
|
||||||
|
"path": "microsoft.win32.registry/4.7.0",
|
||||||
|
"hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-c0DzwiyyklM0TP39Y7RObwO3QkWecgM6H60ikiEnsV/aEAJPbj5MFCLaD8BSfKuZe0HGuh9GRGWWlJmSxDc9MA==",
|
||||||
|
"path": "naudio/2.2.1",
|
||||||
|
"hashPath": "naudio.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Asio/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-hQglyOT5iT3XuGpBP8ZG0+aoqwRfidHjTNehpoWwX0g6KJEgtH2VaqM2nuJ2mheKZa/IBqB4YQTZVvrIapzfOA==",
|
||||||
|
"path": "naudio.asio/2.2.1",
|
||||||
|
"hashPath": "naudio.asio.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Core/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-GgkdP6K/7FqXFo7uHvoqGZTJvW4z8g2IffhOO4JHaLzKCdDOUEzVKtveoZkCuUX8eV2HAINqi7VFqlFndrnz/g==",
|
||||||
|
"path": "naudio.core/2.2.1",
|
||||||
|
"hashPath": "naudio.core.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Midi/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-6r23ylGo5aeP02WFXsPquz0T0hFJWyh+7t++tz19tc3Kr38NHm+Z9j+FiAv+xkH8tZqXJqus9Q8p6u7bidIgbw==",
|
||||||
|
"path": "naudio.midi/2.2.1",
|
||||||
|
"hashPath": "naudio.midi.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Wasapi/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-lFfXoqacZZe0WqNChJgGYI+XV/n/61LzPHT3C1CJp4khoxeo2sziyX5wzNYWeCMNbsWxFvT3b3iXeY1UYjBhZw==",
|
||||||
|
"path": "naudio.wasapi/2.2.1",
|
||||||
|
"hashPath": "naudio.wasapi.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.WinForms/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-DlDkewY1myY0A+3NrYRJD+MZhZV0yy1mNF6dckB27IQ9XCs/My5Ip8BZcoSHOsaPSe2GAjvoaDnk6N9w8xTv7w==",
|
||||||
|
"path": "naudio.winforms/2.2.1",
|
||||||
|
"hashPath": "naudio.winforms.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.WinMM/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-xFHRFwH4x6aq3IxRbewvO33ugJRvZFEOfO62i7uQJRUNW2cnu6BeBTHUS0JD5KBucZbHZaYqxQG8dwZ47ezQuQ==",
|
||||||
|
"path": "naudio.winmm/2.2.1",
|
||||||
|
"hashPath": "naudio.winmm.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.CodeDom/8.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
|
||||||
|
"path": "system.codedom/8.0.0",
|
||||||
|
"hashPath": "system.codedom.8.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Management/8.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-jrK22i5LRzxZCfGb+tGmke2VH7oE0DvcDlJ1HAKYU8cPmD8XnpUT0bYn2Gy98GEhGjtfbR/sxKTVb+dE770pfA==",
|
||||||
|
"path": "system.management/8.0.0",
|
||||||
|
"hashPath": "system.management.8.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
|
||||||
|
"path": "system.security.accesscontrol/4.7.0",
|
||||||
|
"hashPath": "system.security.accesscontrol.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==",
|
||||||
|
"path": "system.security.principal.windows/4.7.0",
|
||||||
|
"hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"VideoLAN.LibVLC.Windows/3.0.20": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ahujCn2kTPJSLEpwXu2BHIyv9Ke/iahd367hFwMMHSP9UkSOYC5QekOGFrSxKz22yZP67arcfCgNgDIcV31DpQ==",
|
||||||
|
"path": "videolan.libvlc.windows/3.0.20",
|
||||||
|
"hashPath": "videolan.libvlc.windows.3.0.20.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"LibAudioVisualizer/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"LibDynamics/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
AudioVisualizer/bin/Debug/net6.0-windows/AudioWallpaper.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/AudioWallpaper.exe
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/AudioWallpaper.pdb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net6.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.WindowsDesktop.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,336 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v6.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v6.0": {
|
||||||
|
"AudioWallpaperManager/1.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"AudioWallpaper": "1.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"AudioWallpaperManager.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FftSharp/1.1.6": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net5.0/FftSharp.dll": {
|
||||||
|
"assemblyVersion": "1.1.6.0",
|
||||||
|
"fileVersion": "1.1.6.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibVLCSharp/3.8.2": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/LibVLCSharp.dll": {
|
||||||
|
"assemblyVersion": "3.8.2.0",
|
||||||
|
"fileVersion": "3.8.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibVLCSharp.WinForms/3.8.2": {
|
||||||
|
"dependencies": {
|
||||||
|
"LibVLCSharp": "3.8.2"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0-windows7.0/LibVLCSharp.WinForms.dll": {
|
||||||
|
"assemblyVersion": "3.8.2.0",
|
||||||
|
"fileVersion": "3.8.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/3.1.0": {},
|
||||||
|
"Microsoft.Win32.Registry/4.7.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Security.AccessControl": "4.7.0",
|
||||||
|
"System.Security.Principal.Windows": "4.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Asio": "2.2.1",
|
||||||
|
"NAudio.Core": "2.2.1",
|
||||||
|
"NAudio.Midi": "2.2.1",
|
||||||
|
"NAudio.Wasapi": "2.2.1",
|
||||||
|
"NAudio.WinForms": "2.2.1",
|
||||||
|
"NAudio.WinMM": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0-windows7.0/NAudio.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Asio/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.Registry": "4.7.0",
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Asio.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Core/2.2.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Core.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Midi/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Midi.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.Wasapi/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.Wasapi.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.WinForms/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"NAudio.WinMM": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"NAudio.WinMM/2.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Win32.Registry": "4.7.0",
|
||||||
|
"NAudio.Core": "2.2.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/NAudio.WinMM.dll": {
|
||||||
|
"assemblyVersion": "2.2.1.0",
|
||||||
|
"fileVersion": "2.2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.CodeDom/8.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/System.CodeDom.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Management/8.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.CodeDom": "8.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/System.Management.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/net6.0/System.Management.dll": {
|
||||||
|
"rid": "win",
|
||||||
|
"assetType": "runtime",
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.23.53103"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/4.7.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.NETCore.Platforms": "3.1.0",
|
||||||
|
"System.Security.Principal.Windows": "4.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/4.7.0": {},
|
||||||
|
"VideoLAN.LibVLC.Windows/3.0.20": {},
|
||||||
|
"AudioWallpaper/1.2.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"LibAudioVisualizer": "1.0.0",
|
||||||
|
"LibVLCSharp.WinForms": "3.8.2",
|
||||||
|
"NAudio": "2.2.1",
|
||||||
|
"System.Management": "8.0.0",
|
||||||
|
"VideoLAN.LibVLC.Windows": "3.0.20"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"AudioWallpaper.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibAudioVisualizer/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"FftSharp": "1.1.6",
|
||||||
|
"LibDynamics": "1.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"LibAudioVisualizer.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LibDynamics/1.0.0": {
|
||||||
|
"runtime": {
|
||||||
|
"LibDynamics.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"AudioWallpaperManager/1.2.1": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"FftSharp/1.1.6": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-dGUkHaYB2huawqtMWOsqtqspYHVFIux70LDjI/2I08ZkYZ5nLS3NP9AbWxrI+tdw6oLPs8Q/dv8CJzpmoAvj/w==",
|
||||||
|
"path": "fftsharp/1.1.6",
|
||||||
|
"hashPath": "fftsharp.1.1.6.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"LibVLCSharp/3.8.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-P61Pkc+2GgX9PGJmm0MTVYKh0zPbak25rkyb5MU8Vq7x/VgFV/0h3L2bP7H4Oz5sfmm03H8T010cqEKQVA4Jew==",
|
||||||
|
"path": "libvlcsharp/3.8.2",
|
||||||
|
"hashPath": "libvlcsharp.3.8.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"LibVLCSharp.WinForms/3.8.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-3wL7lthadR9MvpmSBTjY7WIlnwWRrFS2YpnFaaSnOzT3NZJngujlfuvfrf+1ge7uUE3CL/6Il6P4eN9fNNa0SA==",
|
||||||
|
"path": "libvlcsharp.winforms/3.8.2",
|
||||||
|
"hashPath": "libvlcsharp.winforms.3.8.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.Platforms/3.1.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==",
|
||||||
|
"path": "microsoft.netcore.platforms/3.1.0",
|
||||||
|
"hashPath": "microsoft.netcore.platforms.3.1.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Win32.Registry/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
|
||||||
|
"path": "microsoft.win32.registry/4.7.0",
|
||||||
|
"hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-c0DzwiyyklM0TP39Y7RObwO3QkWecgM6H60ikiEnsV/aEAJPbj5MFCLaD8BSfKuZe0HGuh9GRGWWlJmSxDc9MA==",
|
||||||
|
"path": "naudio/2.2.1",
|
||||||
|
"hashPath": "naudio.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Asio/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-hQglyOT5iT3XuGpBP8ZG0+aoqwRfidHjTNehpoWwX0g6KJEgtH2VaqM2nuJ2mheKZa/IBqB4YQTZVvrIapzfOA==",
|
||||||
|
"path": "naudio.asio/2.2.1",
|
||||||
|
"hashPath": "naudio.asio.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Core/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-GgkdP6K/7FqXFo7uHvoqGZTJvW4z8g2IffhOO4JHaLzKCdDOUEzVKtveoZkCuUX8eV2HAINqi7VFqlFndrnz/g==",
|
||||||
|
"path": "naudio.core/2.2.1",
|
||||||
|
"hashPath": "naudio.core.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Midi/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-6r23ylGo5aeP02WFXsPquz0T0hFJWyh+7t++tz19tc3Kr38NHm+Z9j+FiAv+xkH8tZqXJqus9Q8p6u7bidIgbw==",
|
||||||
|
"path": "naudio.midi/2.2.1",
|
||||||
|
"hashPath": "naudio.midi.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.Wasapi/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-lFfXoqacZZe0WqNChJgGYI+XV/n/61LzPHT3C1CJp4khoxeo2sziyX5wzNYWeCMNbsWxFvT3b3iXeY1UYjBhZw==",
|
||||||
|
"path": "naudio.wasapi/2.2.1",
|
||||||
|
"hashPath": "naudio.wasapi.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.WinForms/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-DlDkewY1myY0A+3NrYRJD+MZhZV0yy1mNF6dckB27IQ9XCs/My5Ip8BZcoSHOsaPSe2GAjvoaDnk6N9w8xTv7w==",
|
||||||
|
"path": "naudio.winforms/2.2.1",
|
||||||
|
"hashPath": "naudio.winforms.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"NAudio.WinMM/2.2.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-xFHRFwH4x6aq3IxRbewvO33ugJRvZFEOfO62i7uQJRUNW2cnu6BeBTHUS0JD5KBucZbHZaYqxQG8dwZ47ezQuQ==",
|
||||||
|
"path": "naudio.winmm/2.2.1",
|
||||||
|
"hashPath": "naudio.winmm.2.2.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.CodeDom/8.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
|
||||||
|
"path": "system.codedom/8.0.0",
|
||||||
|
"hashPath": "system.codedom.8.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Management/8.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-jrK22i5LRzxZCfGb+tGmke2VH7oE0DvcDlJ1HAKYU8cPmD8XnpUT0bYn2Gy98GEhGjtfbR/sxKTVb+dE770pfA==",
|
||||||
|
"path": "system.management/8.0.0",
|
||||||
|
"hashPath": "system.management.8.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.AccessControl/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
|
||||||
|
"path": "system.security.accesscontrol/4.7.0",
|
||||||
|
"hashPath": "system.security.accesscontrol.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Principal.Windows/4.7.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==",
|
||||||
|
"path": "system.security.principal.windows/4.7.0",
|
||||||
|
"hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"VideoLAN.LibVLC.Windows/3.0.20": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ahujCn2kTPJSLEpwXu2BHIyv9Ke/iahd367hFwMMHSP9UkSOYC5QekOGFrSxKz22yZP67arcfCgNgDIcV31DpQ==",
|
||||||
|
"path": "videolan.libvlc.windows/3.0.20",
|
||||||
|
"hashPath": "videolan.libvlc.windows.3.0.20.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"AudioWallpaper/1.2.1": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"LibAudioVisualizer/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"LibDynamics/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net6.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.WindowsDesktop.App",
|
||||||
|
"version": "6.0.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
AudioVisualizer/bin/Debug/net6.0-windows/FftSharp.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/LibAudioVisualizer.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/LibAudioVisualizer.pdb
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/LibDynamics.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/LibDynamics.pdb
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/LibVLCSharp.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.Asio.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.Core.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.Midi.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.Wasapi.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.WinForms.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.WinMM.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/NAudio.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/System.CodeDom.dll
Normal file
BIN
AudioVisualizer/bin/Debug/net6.0-windows/System.Management.dll
Normal file
66
AudioVisualizer/bin/Debug/net6.0-windows/config.ini
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
[\\.\DISPLAY1_DEFAULTCONFIGURATION]
|
||||||
|
BACKIMGORNOT=TRUE
|
||||||
|
NUMBEROFCOLORS=256
|
||||||
|
SMOOTHSTRIPE=TRUE
|
||||||
|
DEFAULTOFFSET=0.4
|
||||||
|
ROTUNDITY=TRUE
|
||||||
|
ISSHOW=TRUE
|
||||||
|
STRIPESPACING=15
|
||||||
|
STRIPE=TRUE
|
||||||
|
BACKGROUNDIMAGEPATH=C:\USERS\ADMINISTRATOR\DOWNLOADS\2023092515484127868.JPG
|
||||||
|
USEDEFAULTCOLORORNOT=TRUE
|
||||||
|
DEFAULTRADICAL=2
|
||||||
|
APPLYWINDOWFUNC=BLACKMAN
|
||||||
|
DEFAULTSTOPCOLOR=SILVER
|
||||||
|
BACKGROUNDCOLOR=BLACK
|
||||||
|
FRAME=TRUE
|
||||||
|
AUTOSTOPWALLPAPER=FALSE
|
||||||
|
MONOCHROMEORNOT=FALSE
|
||||||
|
SETTINGFORSCREENNAME=\\.\DISPLAY1
|
||||||
|
WAVYLINE=FALSE
|
||||||
|
ISUSINGUNIFIEDCONFIGURATION=FALSE
|
||||||
|
SMOOTHROTUNDITY=TRUE
|
||||||
|
DEFAULTCOLOR=BLACK
|
||||||
|
ROTUNDITYSPACING=3
|
||||||
|
DEFAULTFOURIERVARIATION=512
|
||||||
|
|
||||||
|
[\\.\DISPLAY1_VIDEOWALLPAPERCONFIG]
|
||||||
|
VIDEORATE=10
|
||||||
|
ISSHOW=FALSE
|
||||||
|
VIDEOURL=C:\USERS\ADMINISTRATOR\VIDEOS\2023-09-25 14-37-02.MP4
|
||||||
|
AUTOSTOPWALLPAPER=FALSE
|
||||||
|
VIDEOVOLUME=100
|
||||||
|
|
||||||
|
[\\.\DISPLAY5_DEFAULTCONFIGURATION]
|
||||||
|
ISSHOW=TRUE
|
||||||
|
DEFAULTCOLOR=BLUE
|
||||||
|
MONOCHROMEORNOT=FALSE
|
||||||
|
STRIPESPACING=3
|
||||||
|
WAVYLINE=TRUE
|
||||||
|
APPLYWINDOWFUNC=BARTLETT
|
||||||
|
BACKGROUNDCOLOR=BLACK
|
||||||
|
AUTOSTOPWALLPAPER=FALSE
|
||||||
|
BACKGROUNDIMAGEPATH
|
||||||
|
BACKIMGORNOT=FALSE
|
||||||
|
DEFAULTRADICAL=2
|
||||||
|
STRIPE=TRUE
|
||||||
|
DEFAULTOFFSET=0.4
|
||||||
|
DEFAULTFOURIERVARIATION=512
|
||||||
|
ISUSINGUNIFIEDCONFIGURATION=FALSE
|
||||||
|
FRAME=TRUE
|
||||||
|
SMOOTHSTRIPE=TRUE
|
||||||
|
USEDEFAULTCOLORORNOT=TRUE
|
||||||
|
ROTUNDITYSPACING=3
|
||||||
|
NUMBEROFCOLORS=256
|
||||||
|
SMOOTHROTUNDITY=TRUE
|
||||||
|
DEFAULTSTOPCOLOR=RED
|
||||||
|
ROTUNDITY=TRUE
|
||||||
|
SETTINGFORSCREENNAME=\\.\DISPLAY5
|
||||||
|
|
||||||
|
[\\.\DISPLAY5_VIDEOWALLPAPERCONFIG]
|
||||||
|
ISSHOW=False
|
||||||
|
AUTOSTOPWALLPAPER=False
|
||||||
|
VIDEOURL=C:\USERS\ADMINISTRATOR\VIDEOS\《打黑》4K.MKV
|
||||||
|
VIDEORATE=10
|
||||||
|
VIDEOVOLUME=100
|
||||||
|
|
||||||
@@ -0,0 +1,260 @@
|
|||||||
|
root {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
}
|
||||||
|
#mainContainer{
|
||||||
|
text-align: center;
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
#controlContainer{
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
#libraryContainer{
|
||||||
|
width: 800px;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
#libraryTree{
|
||||||
|
height: 300px;
|
||||||
|
overflow: auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
#viewContainer{
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
#mediaViewer{
|
||||||
|
min-height: 500px;
|
||||||
|
background-color:#222;
|
||||||
|
}
|
||||||
|
#player{
|
||||||
|
top:0px;
|
||||||
|
height: 500px;
|
||||||
|
width: 500px;
|
||||||
|
background-color:#222;
|
||||||
|
}
|
||||||
|
#seekSlider{
|
||||||
|
width: 98%;
|
||||||
|
margin-left:5px;
|
||||||
|
}
|
||||||
|
#volumeSlider{
|
||||||
|
width: 100px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
#currentVolume{
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
#mediaTitle{
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 10px;
|
||||||
|
width: 600px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#currentTime{
|
||||||
|
margin-top:-40px;
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#totalTime{
|
||||||
|
margin-top:-40px;
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controlTable{
|
||||||
|
position:relative;
|
||||||
|
height: 150px;
|
||||||
|
}
|
||||||
|
#controlButtons{
|
||||||
|
position: absolute;
|
||||||
|
top: 80px;
|
||||||
|
left: 10px;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonszone{
|
||||||
|
position:absolute;
|
||||||
|
width: 20px;
|
||||||
|
margin-left:-20px;
|
||||||
|
vertical-align:top;
|
||||||
|
padding:0px;
|
||||||
|
font-size:0px;
|
||||||
|
line-height:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#buttonszone1 {
|
||||||
|
top: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#buttonszone2 {
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonszone li{
|
||||||
|
float:left;
|
||||||
|
clear:left;
|
||||||
|
font-size:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonszone li span{
|
||||||
|
float:left
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonszone_active {
|
||||||
|
margin-top: 0px;
|
||||||
|
width: 120px;
|
||||||
|
margin-left:-122px;
|
||||||
|
font-size:10px;
|
||||||
|
line-height:16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonszone_active li {
|
||||||
|
width:120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#volumesliderzone{
|
||||||
|
position: absolute;
|
||||||
|
top: 105px;
|
||||||
|
left: 410px;
|
||||||
|
width: 210px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#volumeSlider{
|
||||||
|
width: 208px;
|
||||||
|
}
|
||||||
|
#libraryTree ul li a {
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
#artszone{
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
right: 10px;
|
||||||
|
width: 150px;
|
||||||
|
height: 150px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#seekContainer{
|
||||||
|
position:absolute;
|
||||||
|
left: 5px;
|
||||||
|
top: 55px;
|
||||||
|
width: 79%;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button48{
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
margin: 5px 0px 5px 2px;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
display: inline-block;
|
||||||
|
list-style: none;
|
||||||
|
float:left;
|
||||||
|
cursor: pointer;
|
||||||
|
background-image: url("../images/buttons.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
.button48:hover{
|
||||||
|
filter: alpha(opacity:0.5);
|
||||||
|
-ms-filter: "alpha(opacity=50)";
|
||||||
|
-khtml-opacity: 0.50;
|
||||||
|
-moz-opacity: 0.5;
|
||||||
|
filter: alpha(opacity=50);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button{
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
#buttonOpen{
|
||||||
|
background-position: 0px 0px;
|
||||||
|
}
|
||||||
|
#buttonStop{
|
||||||
|
background-position: -576px 0px;
|
||||||
|
}
|
||||||
|
.playing {
|
||||||
|
background-position: -336px 0px;
|
||||||
|
}
|
||||||
|
.paused {
|
||||||
|
background-position: -384px 0px;
|
||||||
|
}
|
||||||
|
#buttonPrev{
|
||||||
|
background-position: -144px 0px;
|
||||||
|
}
|
||||||
|
#buttonNext{
|
||||||
|
background-position: -288px 0px;
|
||||||
|
}
|
||||||
|
#buttonFull{
|
||||||
|
background-position: -192px 0px;
|
||||||
|
}
|
||||||
|
#buttonSout{
|
||||||
|
background-position: -624px 0px;
|
||||||
|
}
|
||||||
|
#buttonEQ{
|
||||||
|
background-position: -48px 0px;
|
||||||
|
}
|
||||||
|
#window_browse ol{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
#window_browse ol li{
|
||||||
|
list-style-type: none;
|
||||||
|
float: left;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
.system_icon{
|
||||||
|
width:80px;
|
||||||
|
text-align:center;
|
||||||
|
vertical-align:top;
|
||||||
|
display: inline-block;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 2px;
|
||||||
|
border: 1px solid #823D0A;
|
||||||
|
margin: 2px;
|
||||||
|
height: 92px;
|
||||||
|
background-color: #E1E1E1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
#window_create_stream table tr td{
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window_equalizer div div{
|
||||||
|
text-align: center;
|
||||||
|
font-size: 11px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window_equalizer {
|
||||||
|
height:80px !important ;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eqBand{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
height: 400px;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
.footer{
|
||||||
|
margin-top: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.centered{
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden{
|
||||||
|
visibility: hidden;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||