/trunk/WingMan/MouseKey/MouseKeyBindingsSynchronizer.cs |
@@ -13,17 +13,17 @@ |
{ |
public delegate void MouseKeyBindingsSynchronized(object sender, MouseKeyBindingsSynchronizedEventArgs e); |
|
public MouseKeyBindingsSynchronizer(MouseKeyBindings mouseKeyBindings, MQTTCommunication MQTTCommunication, |
public MouseKeyBindingsSynchronizer(MouseKeyBindings mouseKeyBindings, MqttCommunication mqttCommunication, |
TaskScheduler taskScheduler, CancellationToken cancellationToken) |
{ |
MouseKeyBindings = mouseKeyBindings; |
this.MQTTCommunication = MQTTCommunication; |
MqttCommunication = mqttCommunication; |
CancellationToken = cancellationToken; |
TaskScheduler = taskScheduler; |
|
SynchronizedMouseKeyBindings = new ConcurrentDictionary<string, List<MouseKeyBinding>>(); |
|
MQTTCommunication.OnMessageReceived += MqttCommunicationOnOnMessageReceived; |
mqttCommunication.OnMessageReceived += MqttCommunicationOnOnMessageReceived; |
|
Task.Run(Synchronize, CancellationToken); |
} |
@@ -32,7 +32,7 @@ |
|
private ConcurrentDictionary<string, List<MouseKeyBinding>> SynchronizedMouseKeyBindings { get; } |
|
private MQTTCommunication MQTTCommunication { get; } |
private MqttCommunication MqttCommunication { get; } |
|
private CancellationToken CancellationToken { get; } |
private TaskScheduler TaskScheduler { get; } |
@@ -74,17 +74,17 @@ |
{ |
await Task.Delay(1000, CancellationToken).ConfigureAwait(false); |
|
if (!MQTTCommunication.Running) |
if (!MqttCommunication.Running) |
continue; |
|
using (var memoryStream = new MemoryStream()) |
{ |
MouseKeyBindingExchange.XmlSerializer.Serialize(memoryStream, |
new MouseKeyBindingExchange(MQTTCommunication.Nick, MouseKeyBindings.Bindings)); |
new MouseKeyBindingExchange(MqttCommunication.Nick, MouseKeyBindings.Bindings)); |
|
memoryStream.Position = 0L; |
|
await MQTTCommunication.Broadcast("exchange", memoryStream.ToArray()).ConfigureAwait(false); |
await MqttCommunication.Broadcast("exchange", memoryStream.ToArray()).ConfigureAwait(false); |
} |
} while (!CancellationToken.IsCancellationRequested); |
} |