-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rebuilt communication with wcf / pipes
- Added Steps for Intensities - Cleanup - Version Bump 0.0.1.2
- Loading branch information
Showing
25 changed files
with
497 additions
and
348 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
using System.ServiceModel; | ||
|
||
namespace sfx_100_streamdeck_plugin | ||
{ | ||
[ServiceContract] | ||
interface PipeContract | ||
{ | ||
[OperationContract] | ||
bool CheckConnection(); | ||
|
||
[OperationContract] | ||
bool IsRunning(); | ||
|
||
[OperationContract] | ||
bool StartMotion(); | ||
|
||
[OperationContract] | ||
bool StopMotion(); | ||
|
||
[OperationContract] | ||
bool EnableAllEffects(); | ||
|
||
[OperationContract] | ||
bool DisableAllEffects(); | ||
|
||
[OperationContract] | ||
bool IncrementOverallIntensity(int steps); | ||
|
||
[OperationContract] | ||
bool DecrementOverallIntensity(int steps); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.ServiceModel; | ||
using System.Text; | ||
using System.Threading.Tasks; | ||
|
||
namespace sfx_100_streamdeck_plugin | ||
{ | ||
class PipeServerConnection | ||
{ | ||
#region Singleton | ||
private static volatile PipeServerConnection instance; | ||
private static object syncRoot = new Object(); | ||
public PipeContract Channel; | ||
|
||
private PipeServerConnection() | ||
{ | ||
string address = "net.pipe://localhost/ashnet/StreamDeckExtension"; | ||
NetNamedPipeBinding binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); | ||
EndpointAddress ep = new EndpointAddress(address); | ||
Channel = ChannelFactory<PipeContract>.CreateChannel(binding, ep); | ||
} | ||
|
||
public static PipeServerConnection Instance | ||
{ | ||
get | ||
{ | ||
if (instance == null) | ||
{ | ||
lock (syncRoot) | ||
{ | ||
if (instance == null) | ||
{ | ||
instance = new PipeServerConnection(); | ||
} | ||
return instance; | ||
|
||
|
||
} | ||
} | ||
return instance; | ||
} | ||
} | ||
#endregion | ||
} | ||
} |
68 changes: 60 additions & 8 deletions
68
sfx-100-streamdeck-plugin/PluginActions/DecrementOverallIntensity.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,80 @@ | ||
using BarRaider.SdTools; | ||
using NPCommunication; | ||
using System; | ||
using System.Threading.Tasks; | ||
using BarRaider.SdTools; | ||
using Newtonsoft.Json; | ||
using Newtonsoft.Json.Linq; | ||
|
||
|
||
namespace sfx_100_streamdeck_plugin.PluginActions | ||
{ | ||
[PluginActionId("sfx-100-streamdeck-plugin.decrementoverallintensity")] | ||
public class DecrementOverallIntensity : PluginBase | ||
{ | ||
public DecrementOverallIntensity(SDConnection connection, InitialPayload payload) : base(connection, payload) { } | ||
private class PluginSettings | ||
{ | ||
public static PluginSettings CreateDefaultSettings() | ||
{ | ||
PluginSettings instance = new PluginSettings(); | ||
instance.Steps = "1"; | ||
return instance; | ||
} | ||
|
||
[JsonProperty(PropertyName = "Steps")] | ||
public string Steps { get; set; } | ||
} | ||
|
||
#region Private Members | ||
|
||
private PluginSettings settings; | ||
|
||
public override void Dispose() { } | ||
#endregion | ||
public DecrementOverallIntensity(SDConnection connection, InitialPayload payload) : base(connection, payload) | ||
{ | ||
if (payload.Settings == null || payload.Settings.Count == 0) | ||
{ | ||
settings = PluginSettings.CreateDefaultSettings(); | ||
} | ||
else | ||
{ | ||
settings = payload.Settings.ToObject<PluginSettings>(); | ||
} | ||
} | ||
|
||
public override void KeyPressed(KeyPayload payload) { } | ||
public override void Dispose() | ||
{ | ||
Logger.Instance.LogMessage(TracingLevel.INFO, $"Destructor called"); | ||
} | ||
|
||
public override void KeyPressed(KeyPayload payload) | ||
{ | ||
Logger.Instance.LogMessage(TracingLevel.INFO, "Key Pressed"); | ||
} | ||
|
||
public override void KeyReleased(KeyPayload payload) | ||
{ | ||
var client = new NPClient("sfx100streamdeck", "sfx100streamdeck"); | ||
client.Get("DecrementOverallIntensity"); | ||
if (PipeServerConnection.Instance.Channel.CheckConnection()) | ||
{ | ||
PipeServerConnection.Instance.Channel.DecrementOverallIntensity(Convert.ToInt32(settings.Steps)); | ||
} | ||
} | ||
|
||
public override void OnTick() { } | ||
|
||
public override void ReceivedSettings(ReceivedSettingsPayload payload) { } | ||
public override void ReceivedSettings(ReceivedSettingsPayload payload) | ||
{ | ||
Tools.AutoPopulateSettings(settings, payload.Settings); | ||
SaveSettings(); | ||
} | ||
|
||
public override void ReceivedGlobalSettings(ReceivedGlobalSettingsPayload payload) { } | ||
|
||
#region Private Methods | ||
|
||
private Task SaveSettings() | ||
{ | ||
return Connection.SetSettingsAsync(JObject.FromObject(settings)); | ||
} | ||
|
||
#endregion | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,86 +1,30 @@ | ||
using System; | ||
using System.IO; | ||
using System.IO.Pipes; | ||
using System.Threading.Tasks; | ||
using BarRaider.SdTools; | ||
using Newtonsoft.Json; | ||
using Newtonsoft.Json.Linq; | ||
using NPCommunication; | ||
using BarRaider.SdTools; | ||
|
||
|
||
namespace sfx_100_streamdeck_plugin.PluginActions | ||
{ | ||
[PluginActionId("sfx-100-streamdeck-plugin.startmotion")] | ||
public class StartMotion : PluginBase | ||
{ | ||
private class PluginSettings | ||
{ | ||
public static PluginSettings CreateDefaultSettings() | ||
{ | ||
PluginSettings instance = new PluginSettings(); | ||
instance.OutputFileName = String.Empty; | ||
instance.InputString = String.Empty; | ||
return instance; | ||
} | ||
public StartMotion(SDConnection connection, InitialPayload payload) : base(connection, payload) { } | ||
|
||
[FilenameProperty] | ||
[JsonProperty(PropertyName = "outputFileName")] | ||
public string OutputFileName { get; set; } | ||
public override void Dispose() { } | ||
|
||
[JsonProperty(PropertyName = "inputString")] | ||
public string InputString { get; set; } | ||
} | ||
public override void KeyPressed(KeyPayload payload) { } | ||
|
||
#region Private Members | ||
|
||
private PluginSettings settings; | ||
|
||
#endregion | ||
public StartMotion(SDConnection connection, InitialPayload payload) : base(connection, payload) | ||
public override void KeyReleased(KeyPayload payload) | ||
{ | ||
if (payload.Settings == null || payload.Settings.Count == 0) | ||
if (PipeServerConnection.Instance.Channel.CheckConnection()) | ||
{ | ||
settings = PluginSettings.CreateDefaultSettings(); | ||
PipeServerConnection.Instance.Channel.StartMotion(); | ||
} | ||
else | ||
{ | ||
settings = payload.Settings.ToObject<PluginSettings>(); | ||
} | ||
} | ||
|
||
public override void Dispose() | ||
{ | ||
Logger.Instance.LogMessage(TracingLevel.INFO, $"Destructor called"); | ||
} | ||
|
||
public override void KeyPressed(KeyPayload payload) | ||
{ | ||
Logger.Instance.LogMessage(TracingLevel.INFO, "Key Pressed"); | ||
} | ||
|
||
public override void KeyReleased(KeyPayload payload) | ||
{ | ||
var client = new NPClient("sfx100streamdeck", "sfx100streamdeck"); | ||
client.Get("Start"); | ||
} | ||
|
||
public override void OnTick() { } | ||
|
||
public override void ReceivedSettings(ReceivedSettingsPayload payload) | ||
{ | ||
Tools.AutoPopulateSettings(settings, payload.Settings); | ||
SaveSettings(); | ||
} | ||
public override void ReceivedSettings(ReceivedSettingsPayload payload) { } | ||
|
||
public override void ReceivedGlobalSettings(ReceivedGlobalSettingsPayload payload) { } | ||
|
||
#region Private Methods | ||
|
||
private Task SaveSettings() | ||
{ | ||
return Connection.SetSettingsAsync(JObject.FromObject(settings)); | ||
} | ||
|
||
#endregion | ||
} | ||
} |
Oops, something went wrong.