添加项目文件。
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
|
||||
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
|
||||
</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;
|
||||
}
|
||||