WingMan

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 34  →  ?path2? @ 35
/trunk/WingMan/Bindings/KeyBindingsSynchronizer.cs
@@ -5,7 +5,6 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MQTTnet;
using WingMan.Communication;
 
namespace WingMan.Bindings
@@ -46,13 +45,15 @@
public event MouseKeyBindingsSynchronized OnMouseKeyBindingsSynchronized;
 
private async void MqttCommunicationOnMessageReceived(object sender,
MqttApplicationMessageReceivedEventArgs e)
MqttCommunicationMessageReceivedEventArgs e)
{
if (e.ApplicationMessage.Topic != "exchange")
if (e.Topic != "exchange")
return;
 
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload))
using (var memoryStream = new MemoryStream())
{
await e.PayloadStream.CopyToAsync(memoryStream);
 
memoryStream.Position = 0L;
 
var mouseKeyBindingsExchange =
@@ -100,4 +101,4 @@
} while (!CancellationToken.IsCancellationRequested);
}
}
}
}
/trunk/WingMan/Bindings/KeySimulator.cs
@@ -4,7 +4,6 @@
using System.Threading.Tasks;
using WindowsInput;
using WindowsInput.Native;
using MQTTnet;
using WingMan.Communication;
using WingMan.Utilities;
 
@@ -41,13 +40,17 @@
 
public event MouseKeyBindingExecuting OnMouseKeyBindingExecuting;
 
private async void OnMqttMessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e)
private async void OnMqttMessageReceived(object sender, MqttCommunicationMessageReceivedEventArgs e)
{
if (e.ApplicationMessage.Topic != "execute")
if (e.Topic != "execute")
return;
 
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload))
using (var memoryStream = new MemoryStream())
{
await e.PayloadStream.CopyToAsync(memoryStream);
 
memoryStream.Position = 0L;
 
var executeMouseKeyBinding =
(ExecuteKeyBinding) ExecuteKeyBinding.XmlSerializer.Deserialize(memoryStream);
 
@@ -100,4 +103,4 @@
}
}
}
}
}
/trunk/WingMan/Communication/MqttCommunication.cs
@@ -30,7 +30,7 @@
 
public delegate void ClientUnsubscribed(object sender, MqttClientUnsubscribedTopicEventArgs e);
 
public delegate void MessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e);
public delegate void MessageReceived(object sender, MqttCommunicationMessageReceivedEventArgs e);
 
public delegate void ServerAuthenticationFailed(object sender, MqttAuthenticationFailureEventArgs e);
 
@@ -190,20 +190,19 @@
{
using (var lz4Decompress = new LZ4Stream(decryptedStream, CompressionMode.Decompress))
{
using (var outpuStream = new MemoryStream())
{
await lz4Decompress.CopyToAsync(outpuStream);
var outpuStream = new MemoryStream();
await lz4Decompress.CopyToAsync(outpuStream);
 
outpuStream.Position = 0L;
outpuStream.Position = 0L;
 
e.ApplicationMessage.Payload = outpuStream.ToArray();
}
await Task.Delay(0, CancellationToken).ContinueWith(
_ => OnMessageReceived?.Invoke(sender,
new MqttCommunicationMessageReceivedEventArgs(e.ApplicationMessage.Topic,
outpuStream)),
CancellationToken, TaskContinuationOptions.None, TaskScheduler);
}
}
}
 
await Task.Delay(0, CancellationToken).ContinueWith(_ => OnMessageReceived?.Invoke(sender, e),
CancellationToken, TaskContinuationOptions.None, TaskScheduler);
}
catch (Exception ex)
{
@@ -292,20 +291,19 @@
{
using (var lz4Decompress = new LZ4Stream(decryptedStream, CompressionMode.Decompress))
{
using (var outpuStream = new MemoryStream())
{
await lz4Decompress.CopyToAsync(outpuStream);
var outpuStream = new MemoryStream();
await lz4Decompress.CopyToAsync(outpuStream);
 
outpuStream.Position = 0L;
outpuStream.Position = 0L;
 
e.ApplicationMessage.Payload = outpuStream.ToArray();
}
await Task.Delay(0, CancellationToken).ContinueWith(
_ => OnMessageReceived?.Invoke(sender,
new MqttCommunicationMessageReceivedEventArgs(e.ApplicationMessage.Topic,
outpuStream)),
CancellationToken, TaskContinuationOptions.None, TaskScheduler);
}
}
}
 
await Task.Delay(0, CancellationToken).ContinueWith(_ => OnMessageReceived?.Invoke(sender, e),
CancellationToken, TaskContinuationOptions.None, TaskScheduler);
}
catch (Exception ex)
{
/trunk/WingMan/Communication/MqttCommunicationMessageReceivedEventArgs.cs
@@ -0,0 +1,17 @@
using System;
using System.IO;
 
namespace WingMan.Communication
{
public class MqttCommunicationMessageReceivedEventArgs : EventArgs
{
public MqttCommunicationMessageReceivedEventArgs(string topic, Stream payloadStream)
{
Topic = topic;
PayloadStream = payloadStream;
}
 
public string Topic { get; set; }
public Stream PayloadStream { get; set; }
}
}
/trunk/WingMan/Lobby/LobbyMessageSynchronizer.cs
@@ -2,7 +2,6 @@
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using MQTTnet;
using WingMan.Communication;
 
namespace WingMan.Lobby
@@ -34,13 +33,17 @@
public event LobbyMessageReceived OnLobbyMessageReceived;
 
private async void MqttCommunicationOnOnMessageReceived(object sender,
MqttApplicationMessageReceivedEventArgs e)
MqttCommunicationMessageReceivedEventArgs e)
{
if (e.ApplicationMessage.Topic != "lobby")
if (e.Topic != "lobby")
return;
 
using (var memoryStream = new MemoryStream(e.ApplicationMessage.Payload))
using (var memoryStream = new MemoryStream())
{
await e.PayloadStream.CopyToAsync(memoryStream);
 
memoryStream.Position = 0L;
 
var lobbyMessage = (LobbyMessage) LobbyMessage.XmlSerializer.Deserialize(memoryStream);
 
await Task.Delay(0)
@@ -67,4 +70,4 @@
}
}
}
}
}
/trunk/WingMan/WingMan.csproj
@@ -87,6 +87,7 @@
<Compile Include="AutoCompletion\AutoCompletionFailedEventArgs.cs" />
<Compile Include="AutoCompletion\AutoCompletionFailedType.cs" />
<Compile Include="Communication\MqttAuthenticationFailureEventArgs.cs" />
<Compile Include="Communication\MqttCommunicationMessageReceivedEventArgs.cs" />
<Compile Include="Discovery\Discovery.cs" />
<Compile Include="Discovery\DiscoveryFailedEventArgs.cs" />
<Compile Include="Discovery\DiscoveryType.cs" />