refactor: rename ParsecVDisplay to ParsecDisplay and update project files

This commit is contained in:
Nguyen Duy
2026-05-15 11:49:48 +07:00
parent 25403d938d
commit 765806b7ec
34 changed files with 59 additions and 59 deletions
+6 -6
View File
@@ -43,7 +43,7 @@ jobs:
- name: Target .NET 4.8
if: ${{ inputs.net480 }}
run: |
(Get-Content app\ParsecVDisplay.csproj) -replace "TargetFramework>net472", "TargetFramework>net480" | Out-File app\ParsecVDisplay.csproj
(Get-Content app\ParsecDisplay.csproj) -replace "TargetFramework>net472", "TargetFramework>net480" | Out-File app\ParsecDisplay.csproj
(Get-Content app\App.config) -replace "Version=v4.7.2", "Version=v4.8" | Out-File app\App.config
- name: Setup msbuild
@@ -52,14 +52,14 @@ jobs:
- name: Build app
run: |
cd app
msbuild ParsecVDisplay.csproj /t:Restore
msbuild ParsecVDisplay.csproj /t:Build /p:Configuration=${{ inputs.debug && 'Debug' || 'Release' }} /p:Platform=AnyCPU
msbuild ParsecDisplay.csproj /t:Restore
msbuild ParsecDisplay.csproj /t:Build /p:Configuration=${{ inputs.debug && 'Debug' || 'Release' }} /p:Platform=AnyCPU
- name: Prepare build output
id: prepare-output-step
run: |
echo "${{ env.APP_VERSION }}+${{ env.SHORT_SHA }}" >> app\bin\version
echo "artifact-name=ParsecVDisplay-v${{ env.APP_VERSION }}-${{ env.SHORT_SHA }}" >> $env:GITHUB_OUTPUT
echo "artifact-name=ParsecDisplay-v${{ env.APP_VERSION }}-${{ env.SHORT_SHA }}" >> $env:GITHUB_OUTPUT
- name: Upload build output
uses: actions/upload-artifact@v4
@@ -69,5 +69,5 @@ jobs:
path: |
app/bin/version
app/bin/vdd.cmd
app/bin/ParsecVDisplay.exe
app/bin/ParsecVDisplay.exe.config
app/bin/ParsecDisplay.exe
app/bin/ParsecDisplay.exe.config
+3 -3
View File
@@ -40,9 +40,9 @@ including up to 4K and 240 Hz. This capability makes it a versatile tool for
gaming, streaming, or remote work, allowing users to simulate multiple screens
for an enhanced, flexible visual experience.
## 📺 ParsecVDisplay App
## 📺 ParsecDisplay App
ParsecVDisplay is a comprehensive virtual display manager for Parsec VDD, built
ParsecDisplay is a comprehensive virtual display manager for Parsec VDD, built
with C# and WPF. The app provides an intuitive interface to manage virtual
displays, showing the number of active displays and allowing users to add or
remove specific virtual displays. It also supports features like changing
@@ -67,7 +67,7 @@ its index to be used for unplugging, the maximum number of displays could be
added up to 16 per adapter. You have to ping the driver periodically to keep
added displays alive, otherwise all of them will be unplugged after a second.
There's no direct way to manipulate added displays, you should call Win32
Display API to change their display mode (see the ParsecVDisplay source).
Display API to change their display mode (see the ParsecDisplay source).
```mermaid
flowchart LR
+2 -2
View File
@@ -1,8 +1,8 @@
<Application
x:Class="ParsecVDisplay.App"
x:Class="ParsecDisplay.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ParsecVDisplay"
xmlns:local="clr-namespace:ParsecDisplay"
>
<Application.Resources>
<ResourceDictionary>
+1 -1
View File
@@ -11,7 +11,7 @@ using System.Windows.Interop;
using System.Windows.Markup;
using System.Windows.Media;
namespace ParsecVDisplay
namespace ParsecDisplay
{
public partial class App : Application
{
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Threading;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static class CLI
{
+2 -2
View File
@@ -1,10 +1,10 @@
<UserControl
x:Class="ParsecVDisplay.Components.Button"
x:Class="ParsecDisplay.Components.Button"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ParsecVDisplay.Components"
xmlns:local="clr-namespace:ParsecDisplay.Components"
mc:Ignorable="d"
d:DesignHeight="40" d:DesignWidth="120"
>
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Windows;
using System.Windows.Controls;
namespace ParsecVDisplay.Components
namespace ParsecDisplay.Components
{
public partial class Button : UserControl
{
+2 -2
View File
@@ -1,10 +1,10 @@
<UserControl
x:Class="ParsecVDisplay.Components.CloseButton"
x:Class="ParsecDisplay.Components.CloseButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ParsecVDisplay.Components"
xmlns:local="clr-namespace:ParsecDisplay.Components"
mc:Ignorable="d"
d:DesignHeight="40" d:DesignWidth="60"
d:Background="Black"
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Windows;
using System.Windows.Controls;
namespace ParsecVDisplay.Components
namespace ParsecDisplay.Components
{
public partial class CloseButton : UserControl
{
+2 -2
View File
@@ -1,10 +1,10 @@
<Page
x:Class="ParsecVDisplay.Components.CustomPage"
x:Class="ParsecDisplay.Components.CustomPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ParsecVDisplay.Components"
xmlns:local="clr-namespace:ParsecDisplay.Components"
mc:Ignorable="d"
Loaded="Page_Loaded"
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace ParsecVDisplay.Components
namespace ParsecDisplay.Components
{
public partial class CustomPage : Page
{
+2 -2
View File
@@ -1,10 +1,10 @@
<UserControl
x:Class="ParsecVDisplay.Components.DisplayItem"
x:Class="ParsecDisplay.Components.DisplayItem"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ParsecVDisplay.Components"
xmlns:local="clr-namespace:ParsecDisplay.Components"
mc:Ignorable="d"
Width="180" Height="110"
d:Background="Black"
+1 -1
View File
@@ -6,7 +6,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace ParsecVDisplay.Components
namespace ParsecDisplay.Components
{
public partial class DisplayItem : UserControl
{
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Reflection;
using Microsoft.Win32;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static class Config
{
+1 -1
View File
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static unsafe class Device
{
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal class Display
{
+1 -1
View File
@@ -8,7 +8,7 @@ using System.Text;
using System.Windows;
using System.Windows.Interop;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static class Helper
{
+1 -1
View File
@@ -3,7 +3,7 @@ using System.Diagnostics;
using System.IO;
using System.Reflection;
namespace ParsecVDisplay
namespace ParsecDisplay
{
/// <summary>
/// Lightweight diagnostic logger. Appends to &lt;exe-dir&gt;\debug.log on each
+3 -3
View File
@@ -1,11 +1,11 @@
<Window
x:Class="ParsecVDisplay.MainWindow"
x:Class="ParsecDisplay.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ParsecVDisplay"
xmlns:components="clr-namespace:ParsecVDisplay.Components"
xmlns:local="clr-namespace:ParsecDisplay"
xmlns:components="clr-namespace:ParsecDisplay.Components"
mc:Ignorable="d"
Icon="./Resources/icon.ico"
+1 -1
View File
@@ -6,7 +6,7 @@ using System.Windows.Interop;
using System.Windows.Navigation;
using Microsoft.Win32;
namespace ParsecVDisplay
namespace ParsecDisplay
{
public partial class MainWindow : Window
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ParsecVDisplay
namespace ParsecDisplay
{
public class MirrorWindow : Form
{
@@ -15,9 +15,9 @@
<PropertyGroup>
<OutputPath>bin\</OutputPath>
<AssemblyName>ParsecVDisplay</AssemblyName>
<RootNamespace>ParsecVDisplay</RootNamespace>
<StartupObject>ParsecVDisplay.Program</StartupObject>
<AssemblyName>ParsecDisplay</AssemblyName>
<RootNamespace>ParsecDisplay</RootNamespace>
<StartupObject>ParsecDisplay.Program</StartupObject>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
@@ -64,15 +64,15 @@
@echo off
setlocal
set app_exe=%~dp0ParsecVDisplay.exe
set parent_exe=%~dp0..\ParsecVDisplay.exe
set app_exe=%~dp0ParsecDisplay.exe
set parent_exe=%~dp0..\ParsecDisplay.exe
if exist "%app_exe%" (
start /b /wait "" "%app_exe%" -cli %*
) else if exist "%parent_exe%" (
start /b /wait "" "%parent_exe%" -cli %*
) else (
echo ParsecVDisplay.exe does not exist.
echo ParsecDisplay.exe does not exist.
)
endlocal
+1 -1
View File
@@ -1,7 +1,7 @@
using System;
using System.Runtime.InteropServices;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static class PowerEvents
{
+2 -2
View File
@@ -4,12 +4,12 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ParsecVDisplay
namespace ParsecDisplay
{
public static class Program
{
public const string AppId = "QpHOX8IBUHBznGtqk9xm1";
public const string AppName = "ParsecVDisplay";
public const string AppName = nameof(ParsecDisplay);
public const string AppVersion = "1.0.2";
public const string GitHubRepo = "nomi-san/parsec-vdd";
+4 -4
View File
@@ -7,11 +7,11 @@ using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle(ParsecVDisplay.Program.AppName)]
[assembly: AssemblyTitle(ParsecDisplay.Program.AppName)]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct(ParsecVDisplay.Program.AppName)]
[assembly: AssemblyProduct(ParsecDisplay.Program.AppName)]
[assembly: AssemblyCopyright("Copyright (c) 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion(ParsecVDisplay.Program.AppVersion)]
[assembly: AssemblyFileVersion(ParsecVDisplay.Program.AppVersion)]
[assembly: AssemblyVersion(ParsecDisplay.Program.AppVersion)]
[assembly: AssemblyFileVersion(ParsecDisplay.Program.AppVersion)]
+2 -2
View File
@@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace ParsecVDisplay.Properties {
namespace ParsecDisplay.Properties {
using System;
@@ -39,7 +39,7 @@ namespace ParsecVDisplay.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ParsecVDisplay.Properties.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ParsecDisplay.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
+2 -2
View File
@@ -6,7 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.Win32;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal class Tray : ApplicationContext
{
@@ -47,7 +47,7 @@ namespace ParsecVDisplay
System.Threading.Timer FallbackTimer;
const int FallbackEvaluateDelayMs = 1000;
// ParsecVDisplay v{version}
// ParsecDisplay v{version}
// ______________
// Add display
// Remove last display
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Net.Http.Headers;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace ParsecVDisplay
namespace ParsecDisplay
{
internal static class Updater
{
+1 -1
View File
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Threading;
namespace ParsecVDisplay.Vdd
namespace ParsecDisplay.Vdd
{
internal static class Controller
{
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace ParsecVDisplay.Vdd
namespace ParsecDisplay.Vdd
{
internal static unsafe class Core
{
+1 -1
View File
@@ -1,6 +1,6 @@
using System;
namespace ParsecVDisplay.Vdd
namespace ParsecDisplay.Vdd
{
internal class ErrorDriverStatus : Exception
{
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using Microsoft.Win32;
namespace ParsecVDisplay.Vdd
namespace ParsecDisplay.Vdd
{
internal static class Utils
{
+1 -1
View File
@@ -1,6 +1,6 @@
# Command Line Interface
This is detailed help for CLI mode of the ParsecVDisplay app. The CLI executable
This is detailed help for CLI mode of the ParsecDisplay app. The CLI executable
(`vdd`) can be installed via setup installer and can be invoked via command line
environment.
+1 -1
View File
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35327.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParsecVDisplay", "app\ParsecVDisplay.csproj", "{2D44934F-B4CF-4F2C-BD03-AE60B71AD045}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParsecDisplay", "app\ParsecDisplay.csproj", "{2D44934F-B4CF-4F2C-BD03-AE60B71AD045}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{9B03AE1C-BE49-45A8-9B89-11CE21AD1BF8}"
ProjectSection(SolutionItems) = preProject