Compare commits
2 Commits
b82f1db469
...
43fed6839d
| Author | SHA1 | Date |
|---|---|---|
|
|
43fed6839d | |
|
|
44d99724b1 |
|
|
@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28010.2019
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VDash", "VDash\VDash.csproj", "{C12CDA63-DDBB-427B-B66A-72FA42291B04}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VRDash", "VRDash\VRDash.csproj", "{C12CDA63-DDBB-427B-B66A-72FA42291B04}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
<ToolBar Grid.Row="0">
|
||||
<Button x:Name="btnAdd" Click="btnAdd_Click">Add</Button>
|
||||
<Button x:Name="btnRemove" Click="btnRemove_Click">Remove</Button>
|
||||
<Button x:Name="btnLoad" Click="btnLoad_Click">Load...</Button>
|
||||
<!--<Button x:Name="btnLoad" Click="btnLoad_Click">Load...</Button>-->
|
||||
</ToolBar>
|
||||
<ListView x:Name="lvOverlays" Grid.Row="1" SelectionChanged="lvOverlays_SelectionChanged">
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
|
@ -33,6 +35,7 @@ namespace VRDash
|
|||
{
|
||||
Logger.Setup();
|
||||
this.GetLogger().Info("VDash is starting up...");
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
InitializeComponent();
|
||||
|
||||
//Connect to VR runtime...
|
||||
|
|
@ -63,6 +66,34 @@ namespace VRDash
|
|||
}
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
if (File.Exists(ProfileManager.ConfigLocation))
|
||||
{
|
||||
var profile = ProfileManager.LoadProfile();
|
||||
LoadProfile(profile);
|
||||
this.GetLogger().Info($"Default profile loaded. {profile.OverlayConfigs.Count()} overlays loaded from disk.");
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
this.GetLogger().Error($"Unable to load profile from disk. Profile location: {ProfileManager.ConfigLocation}", ex);
|
||||
MessageBox.Show($"There was an error while trying to load the default profile: {ex.Message}.", "Error Loading Default Profile", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
|
||||
Task saveTask = Task.Factory.StartNew(() =>
|
||||
{
|
||||
//Update profile on disk every ten seconds. Shitty way of doing things, but it is what it is.
|
||||
while (true)
|
||||
{
|
||||
if (!ProfileManager.IsProfileSaveUpToDate())
|
||||
{
|
||||
ProfileManager.SaveProfile();
|
||||
this.GetLogger().Info("Updated profile saved to disk.");
|
||||
}
|
||||
Thread.Sleep(10000);
|
||||
}
|
||||
});
|
||||
#region Debug
|
||||
|
||||
|
||||
|
|
@ -92,6 +123,11 @@ namespace VRDash
|
|||
#endregion
|
||||
}
|
||||
|
||||
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
this.GetLogger().Fatal("Unhandled AppDomain exception.", (Exception)e.ExceptionObject);
|
||||
}
|
||||
|
||||
private void LoadProfile(Profile profile)
|
||||
{
|
||||
//Dispose of all overlays and clear list.
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace VRDash.Overlay.Actions
|
|||
if (!Enabled) { return; }
|
||||
if (!intOverlay.GetType().IsAssignableFrom(typeof(WindowOverlay)))
|
||||
{
|
||||
Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
//Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace VRDash.Overlay.Actions
|
|||
if (!Enabled) { return; }
|
||||
if (!intOverlay.GetType().IsAssignableFrom(typeof(WindowOverlay)))
|
||||
{
|
||||
Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
//Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace VRDash.Overlay.Actions
|
|||
if (!Enabled) { return; }
|
||||
if (!intOverlay.GetType().IsAssignableFrom(typeof(WindowOverlay)))
|
||||
{
|
||||
Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
//Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace VRDash.Overlay.Actions
|
|||
if (!Enabled) { return; }
|
||||
if (!intOverlay.GetType().IsAssignableFrom(typeof(WindowOverlay)))
|
||||
{
|
||||
Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
//Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace VRDash.Overlay.Actions
|
|||
if (!Enabled) { return; }
|
||||
if (!intOverlay.GetType().IsAssignableFrom(typeof(WindowOverlay)))
|
||||
{
|
||||
Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
//Console.WriteLine("This action cannot be performed on a non-WindowOverlay overlay.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ namespace VRDash.Overlay
|
|||
|
||||
if (!succ)
|
||||
{
|
||||
Console.WriteLine("SetCursorPos failed.");
|
||||
this.GetLogger().Warn($"[{Config.Name}] SetCursorPos failed.");
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
@ -381,13 +381,13 @@ namespace VRDash.Overlay
|
|||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Error getting coords to draw cursor.");
|
||||
this.GetLogger().Warn($"[{Config.Name}] Error getting coords to draw cursor.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).Message;
|
||||
Console.WriteLine($"Error getting cursor info: {errorMessage}");
|
||||
this.GetLogger().Warn($"[{Config.Name}] Error getting cursor info: {errorMessage}");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
@ -428,7 +428,7 @@ namespace VRDash.Overlay
|
|||
|
||||
HmdVector2_t vecWindowSize = new HmdVector2_t() { v0 = data.Width, v1 = data.Height };
|
||||
OpenVR.Overlay.SetOverlayMouseScale(m_OverlayHandle, ref vecWindowSize);
|
||||
Console.WriteLine("Updated!");
|
||||
this.GetLogger().Info($"[{Config.Name}] Monitor resized, texture updated.");
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -488,7 +488,7 @@ namespace VRDash.Overlay
|
|||
if (result != EVROverlayError.None)
|
||||
{
|
||||
|
||||
Console.WriteLine($"Error rendering: {result}");
|
||||
this.GetLogger().Warn($"Error rendering: {result}");
|
||||
}
|
||||
|
||||
device.ImmediateContext.UnmapSubresource(screenTexture, 0);
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ namespace VRDash.Overlay
|
|||
if (IsCreated())
|
||||
{
|
||||
destroyInternal();
|
||||
Console.WriteLine($"Destroyed {Config.Key} because it's window does not exist.");
|
||||
this.GetLogger().Info($"Destroyed {Config.Key} because it's window does not exist.");
|
||||
}
|
||||
|
||||
Thread.Sleep(100);
|
||||
|
|
@ -265,7 +265,7 @@ namespace VRDash.Overlay
|
|||
|
||||
if (!succ)
|
||||
{
|
||||
Console.WriteLine("ClientToScreen failed.");
|
||||
this.GetLogger().Warn($"[{Config.Name}] ClientToScreen failed.");
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -273,7 +273,7 @@ namespace VRDash.Overlay
|
|||
|
||||
if (!succ)
|
||||
{
|
||||
Console.WriteLine("SetCursorPos failed.");
|
||||
this.GetLogger().Warn($"[{Config.Name}] SetCursorPos failed.");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -460,13 +460,13 @@ namespace VRDash.Overlay
|
|||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Error getting coords to draw cursor.");
|
||||
this.GetLogger().Warn($"[{Config.Name}] Error getting coords to draw cursor.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).Message;
|
||||
Console.WriteLine($"Error getting cursor info: {errorMessage}");
|
||||
this.GetLogger().Warn($"[{Config.Name}] Error getting cursor info: {errorMessage}");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
@ -507,7 +507,7 @@ namespace VRDash.Overlay
|
|||
|
||||
HmdVector2_t vecWindowSize = new HmdVector2_t() { v0 = data.Width, v1 = data.Height };
|
||||
OpenVR.Overlay.SetOverlayMouseScale(m_OverlayHandle, ref vecWindowSize);
|
||||
Console.WriteLine("Updated!");
|
||||
this.GetLogger().Info($"[{Config.Name}] Window resized, texture updated.");
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -567,7 +567,7 @@ namespace VRDash.Overlay
|
|||
if (result != EVROverlayError.None)
|
||||
{
|
||||
|
||||
Console.WriteLine($"Error rendering: {result}");
|
||||
this.GetLogger().Warn($"[{Config.Name}] Error rendering: {result}");
|
||||
}
|
||||
|
||||
device.ImmediateContext.UnmapSubresource(screenTexture, 0);
|
||||
|
|
|
|||
|
|
@ -36,14 +36,31 @@ namespace VRDash
|
|||
SaveProfile(ConfigLocation);
|
||||
}
|
||||
|
||||
public string GetLoadedProfileJson()
|
||||
{
|
||||
IOverlayConfig[] selection = MainWindow.OverlayManager.Overlays.Select(x => x.Overlay.OverlayConfig).ToArray();
|
||||
var profile = new Profile(selection);
|
||||
var json = JsonConvert.SerializeObject(profile, m_Settings);
|
||||
return json;
|
||||
}
|
||||
|
||||
public string GetDefaultProfileJson()
|
||||
{
|
||||
var json = File.ReadAllText(ConfigLocation);
|
||||
return json;
|
||||
}
|
||||
|
||||
public bool IsProfileSaveUpToDate()
|
||||
{
|
||||
return GetLoadedProfileJson() == GetDefaultProfileJson();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saves config to ConfigLocation
|
||||
/// </summary>
|
||||
public void SaveProfile(string location)
|
||||
{
|
||||
IOverlayConfig[] selection = MainWindow.OverlayManager.Overlays.Select(x => x.Overlay.OverlayConfig).ToArray();
|
||||
var profile = new Profile(selection);
|
||||
var json = JsonConvert.SerializeObject(profile, m_Settings);
|
||||
var json = GetLoadedProfileJson();
|
||||
File.WriteAllText(location, json);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{C12CDA63-DDBB-427B-B66A-72FA42291B04}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>VDash</RootNamespace>
|
||||
<AssemblyName>VDash</AssemblyName>
|
||||
<RootNamespace>VRDash</RootNamespace>
|
||||
<AssemblyName>VRDash</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
|
|
|
|||
Loading…
Reference in New Issue