diff --git a/App.config b/App.config index 8d234373..ecdcf8a5 100644 --- a/App.config +++ b/App.config @@ -1,6 +1,6 @@ - + diff --git a/AppApi.cs b/AppApi.cs index 93180c00..80f7a659 100644 --- a/AppApi.cs +++ b/AppApi.cs @@ -17,8 +17,8 @@ using System.Net; using Windows.UI.Notifications; using Windows.Data.Xml.Dom; using librsync.net; -using XSNotifications; -using XSNotifications.Enum; +using System.Net.Sockets; +using System.Text.Json.Serialization; namespace VRCX { @@ -245,6 +245,22 @@ namespace VRCX ToastNotificationManager.CreateToastNotifier("VRCX").Show(toast); } + private struct XSOMessage + { + public int messageType { get; set; } + public int index { get; set; } + public float volume { get; set; } + public string audioPath { get; set; } + public float timeout { get; set; } + public string title { get; set; } + public string content { get; set; } + public string icon { get; set; } + public float height { get; set; } + public float opacity { get; set; } + public bool useBase64Icon { get; set; } + public string sourceApp { get; set; } + } + public void XSNotification(string Title, string Content, int Timeout, bool Image) { bool UseBase64Icon = true; @@ -254,17 +270,24 @@ namespace VRCX UseBase64Icon = false; Icon = Path.Combine(Program.BaseDirectory, "cache\\toast"); } - new XSNotifier().SendNotification(new XSNotification() - { - Height = 110.0f, - SourceApp = "VRCX", - AudioPath = "", - Title = Title, - Content = Content, - Timeout = Timeout, - UseBase64Icon = UseBase64Icon, - Icon = Icon - }); + + IPAddress broadcastIP = IPAddress.Parse("127.0.0.1"); + Socket broadcastSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + IPEndPoint endPoint = new IPEndPoint(broadcastIP, 42069); + + XSOMessage msg = new XSOMessage(); + msg.messageType = 1; + msg.title = Title; + msg.content = Content; + msg.height = 110f; + msg.sourceApp = "VRCX"; + msg.timeout = Timeout; + msg.audioPath = ""; + msg.useBase64Icon = UseBase64Icon; + msg.icon = Icon; + + byte[] byteBuffer = System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(msg); + broadcastSocket.SendTo(byteBuffer, endPoint); } public void SetStartup(bool enabled) diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 3b18c84d..ee915eda 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -1,69 +1,61 @@ //------------------------------------------------------------------------------ // -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ -namespace VRCX.Properties -{ - - +namespace VRCX.Properties { + using System; + + /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// A strongly-typed resource class, for looking up localized strings, etc. /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 - // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + 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() - { + internal Resources() { } - + /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VRCX.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index 4a0f300f..81d5072f 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -8,21 +8,17 @@ // //------------------------------------------------------------------------------ -namespace VRCX.Properties -{ - - +namespace VRCX.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/VRCX.csproj b/VRCX.csproj index 74924a87..fcd5cac0 100644 --- a/VRCX.csproj +++ b/VRCX.csproj @@ -1,4 +1,4 @@ - + @@ -8,13 +8,14 @@ WinExe VRCX VRCX - v4.6.2 + v4.7.2 512 true true false + publish\ true Disk @@ -29,7 +30,6 @@ 1.0.0.%2a false true - AnyCPU @@ -80,8 +80,7 @@ librsync.net\Blake2Sharp.dll - - False + librsync.net\librsync.net.dll @@ -166,7 +165,7 @@ False - Microsoft .NET Framework 4.5.2%28x86 및 x64%29 + Microsoft .NET Framework 4.5.2 %28x86 and x64%29 true @@ -177,19 +176,19 @@ - 86.0.241 + 89.0.170 - 86.0.241 + 89.0.170 - 1.0.169 + 1.0.175 - 6.1.1 + 7.0.1 - 12.0.3 + 13.0.1 4.2.0 @@ -209,8 +208,8 @@ 1.0.113.7 - - 0.1.1 + + 5.0.2