From 2d95d7d212373a2d792cc305b40ba74aee0555e5 Mon Sep 17 00:00:00 2001 From: "Jeffrey T. Fritz" Date: Tue, 26 Feb 2019 21:00:17 -0500 Subject: [PATCH 01/10] Adding today's cheers --- src/StreamDeckLib/ConnectionManager.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/StreamDeckLib/ConnectionManager.cs b/src/StreamDeckLib/ConnectionManager.cs index 8dc2cd1..9bd3846 100644 --- a/src/StreamDeckLib/ConnectionManager.cs +++ b/src/StreamDeckLib/ConnectionManager.cs @@ -24,6 +24,17 @@ public partial class ConnectionManager : IDisposable private string _RegisterEvent; private IStreamDeckProxy _Proxy; + // Cheer 225 cpayette 26/2/19 + // Cheer 10700 roberttables 26/2/19 + // Cheer 840 auth0bobby 26/2/19 + // Cheer 13629 themichaeljolley 26/2/19 + // Cheer 182 sqlmistermagoo 26/2/19 + // Cheer 100 acrophobicpixie 26/2/19 + // Cheer 492 danerd 26/2/19 + // Cheer 500 tealoldman 26/2/19 + // Cheer 500 kittishomestead 26/2/19 + // Cheer 5500 electrichavoc 26/2/19 + private ConnectionManager() { this._ActionManager = new ActionManager(this, _Logger); From 09707a21b8867097de763d3ffe649af4e6dc4eda Mon Sep 17 00:00:00 2001 From: Hugo Dahl Date: Sat, 2 Mar 2019 01:58:42 -0600 Subject: [PATCH 02/10] Mark registration scripts as executable. Add #! for .sh --- .gitattributes | 1 + .../content/RegisterPluginAndStartStreamDeck.ps1 | 0 .../content/RegisterPluginAndStartStreamDeck.sh | 2 ++ scripts/registration/RegisterPluginAndStartStreamDeck.ps1 | 0 scripts/registration/RegisterPluginAndStartStreamDeck.sh | 2 ++ 5 files changed, 5 insertions(+) mode change 100644 => 100755 Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.ps1 mode change 100644 => 100755 Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.sh mode change 100644 => 100755 scripts/registration/RegisterPluginAndStartStreamDeck.ps1 mode change 100644 => 100755 scripts/registration/RegisterPluginAndStartStreamDeck.sh diff --git a/.gitattributes b/.gitattributes index c2ad9a4..737dd8a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -82,6 +82,7 @@ *.filters text eol=crlf *.vcxitems text eol=crlf +*.sh text eol=lf #*.sln merge=binary #*.csproj merge=binary diff --git a/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.ps1 b/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.ps1 old mode 100644 new mode 100755 diff --git a/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.sh b/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.sh old mode 100644 new mode 100755 index 4a14a65..bc4d130 --- a/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.sh +++ b/Templates/StreamDeck.PluginTemplate.Csharp/content/RegisterPluginAndStartStreamDeck.sh @@ -1,3 +1,5 @@ +#!/bin/sh + #Notify user we are killing the process echo 'Killing the Stream Deck process' diff --git a/scripts/registration/RegisterPluginAndStartStreamDeck.ps1 b/scripts/registration/RegisterPluginAndStartStreamDeck.ps1 old mode 100644 new mode 100755 diff --git a/scripts/registration/RegisterPluginAndStartStreamDeck.sh b/scripts/registration/RegisterPluginAndStartStreamDeck.sh old mode 100644 new mode 100755 index 4a14a65..bc4d130 --- a/scripts/registration/RegisterPluginAndStartStreamDeck.sh +++ b/scripts/registration/RegisterPluginAndStartStreamDeck.sh @@ -1,3 +1,5 @@ +#!/bin/sh + #Notify user we are killing the process echo 'Killing the Stream Deck process' From d42ca3f7bb8ca937ec465f13451d4a6af67a27ff Mon Sep 17 00:00:00 2001 From: Carey Payette Date: Sun, 10 Mar 2019 17:28:14 -0400 Subject: [PATCH 03/10] very quick start for additional documentation --- README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 195d497..b5a2473 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,25 @@ To uninstall, run the following command from the root of the respository. ## Using the Template -Once the template is installed, open a terminal and create a new project. +Once the template is installed, open a terminal in the folder of your choice and create a new project. - dotnet new streamdeck-plugin -n FirstPlugin + dotnet new streamdeck-plugin --plugin-name FirstPlugin --uuid com.yourcompany.pluginname.actionname --skipRestore false -Or create a directory in a location of your choice, change to that directory and run the command, which will inherit the directory name as the project name. +Or create a directory in a location of your choice, change to that directory and run the command, which will inherit the directory name as the project name with default values. dotnet new streamdeck-plugin +## Creating a Plugin Action +The Stream Deck Toolkit provides the functionality that communicates directly with the Stream Deck software. When creating a plugin, you are responsible for creating actions for the Stream Deck buttons to perform. There are two base classes that you can inherit from when creating your action: + + 1. BaseStreamDeckAction - this class contains all the integrations necessary to communicate with the Stream Deck at the 'barebones' level. Inheriting from this class will give you the greatest control over how your action sends and receives data from the software. + + 2. BaseStreamDeckActionWithSettingsModel - this class inherits from BaseStreamDeckAction, this class will automate the population of model properties, where type T is defined as the data that is stored when issuing a 'setSettings' event to the Stream Deck software. The property **SettingsModel** will automatically instantiate an instance of class T, so it is best to assign default values when defining your class T. Also, when using the Property Inspector and passing data back and forth, ensure that the properties defined in the settingsModel in JavaScript matches those that you have defined in T for the automatic mapping to occur between both environments. + +Your project may contain any number of actions, inheriting from one of the classes above. In order for the Action to be automatically registered on start up, it must bear the **[ActionUuid(Uuid="com.fritzanfriends.pluginname.anotheraction")]** attribute. + +Actions must also be manually registered in the **manifest.json** file, with the Uuid that matches ActionUuid attribute. + [Dotnet Core]: https://dotnet.microsoft.com/ "Free, cross-platform application framework" From c72e65f1f023faf6b40e2b636ca2ea1322041bdc Mon Sep 17 00:00:00 2001 From: Carey Payette Date: Mon, 25 Mar 2019 14:37:22 -0400 Subject: [PATCH 04/10] initial implementation of global settings --- .../ConnectionManager_UnitTests.cs | 28 ++++++++++++++ src/StreamDeckLib.Test/Stubs/StubAction.cs | 13 ++++++- src/StreamDeckLib/ActionManager.cs | 5 +++ src/StreamDeckLib/ConnectionManager.cs | 37 ++++++++++++++----- .../ConnectionManager_Actions.cs | 17 ++++++++- src/StreamDeckLib/IGlobalSettings.cs | 6 +++ 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 src/StreamDeckLib/IGlobalSettings.cs diff --git a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs index 47b56ed..53c8650 100644 --- a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs +++ b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs @@ -4,6 +4,7 @@ using System.Threading; using System.Diagnostics; using System.Threading.Tasks; +using StreamDeckLib.Messages; namespace StreamDeckLib.Test { @@ -146,6 +147,33 @@ public async Task ShouldNotThrowAnyExceptions_WhenRegistringMultipleUniqueAction .NotThrow("registering multiple unique actions is valid"); } + + [Fact] + public async Task ActionsShouldReceiveGlobalSetting_WhenGlobalSettingsAreBroadcast() + { + //make sure the global settings are accessible in the actions + var mgr = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) + .RegisterActionType("com.csharpfritz.samplePlugin.action", typeof(StubAction)) + .RegisterActionType("com.csharpfritz.samplePlugin.action2", typeof(StubAction)); + + var dummyPayload = new StreamDeckEventPayload(); + dummyPayload.Event = "didReceiveGlobalSettings"; + dummyPayload.payload = new StreamDeckEventPayload.Payload(); + dummyPayload.payload.settings = new { Counter = 1 }; + + mgr.Invoking(x => x.BroadcastGlobalSettings(dummyPayload)); + var actions = mgr.GetAllActions(); + + var result = true; + + foreach (var entry in actions) + { + + result = result && (entry.Value as StubAction).Counter==1; + } + Assert.True(result); + } + } } diff --git a/src/StreamDeckLib.Test/Stubs/StubAction.cs b/src/StreamDeckLib.Test/Stubs/StubAction.cs index cb1c694..7ba28b2 100644 --- a/src/StreamDeckLib.Test/Stubs/StubAction.cs +++ b/src/StreamDeckLib.Test/Stubs/StubAction.cs @@ -1,4 +1,6 @@ using System; +using System.Threading.Tasks; +using StreamDeckLib.Messages; namespace StreamDeckLib.Test { @@ -6,10 +8,19 @@ namespace StreamDeckLib.Test [ActionUuid(Uuid = "Test UUID")] public class StubAction : BaseStreamDeckAction { + public int Counter = 0; + internal ConnectionManager GetConnectionManager() { return this.Manager; } - } + + public override Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args) + { + Counter = 1; + return Task.CompletedTask; + } + + } } diff --git a/src/StreamDeckLib/ActionManager.cs b/src/StreamDeckLib/ActionManager.cs index 0c1a616..456c683 100644 --- a/src/StreamDeckLib/ActionManager.cs +++ b/src/StreamDeckLib/ActionManager.cs @@ -274,6 +274,11 @@ internal BaseStreamDeckAction GetActionForContext(string context, string actionU return actionInstance; } + public Dictionary GetAllActions() + { + return _ActionInstances; + } + #endregion diff --git a/src/StreamDeckLib/ConnectionManager.cs b/src/StreamDeckLib/ConnectionManager.cs index 9bd3846..680343e 100644 --- a/src/StreamDeckLib/ConnectionManager.cs +++ b/src/StreamDeckLib/ConnectionManager.cs @@ -4,6 +4,7 @@ using Newtonsoft.Json; using StreamDeckLib.Messages; using System; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; @@ -23,6 +24,7 @@ public partial class ConnectionManager : IDisposable private string _Uuid; private string _RegisterEvent; private IStreamDeckProxy _Proxy; + private IGlobalSettings _GlobalSettings; // Cheer 225 cpayette 26/2/19 // Cheer 10700 roberttables 26/2/19 @@ -104,6 +106,12 @@ private static ConnectionManager Initialize(int port, string uuid, return manager; } + public ConnectionManager RegisterGlobalSettings(IGlobalSettings settings) + { + _GlobalSettings = settings; + return this; + } + public async Task StartAsync(CancellationToken token) { @@ -165,22 +173,29 @@ private async Task Run(CancellationToken token) continue; } - - if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) + + if (msg.Event.Equals("didReceiveGlobalSettings")) { - _Logger.LogInformation($"System event received: ${msg.Event}"); - continue; + this.BroadcastGlobalSettings(msg); } - var action = GetInstanceOfAction(msg.context, msg.action); - if (action == null) + else { + + if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) + { + _Logger.LogInformation($"System event received: ${msg.Event}"); + continue; + } + var action = GetInstanceOfAction(msg.context, msg.action); + if (action == null) + { _Logger.LogWarning($"The action requested (\"{msg.action}\") was not found as being registered with the plugin"); continue; - } + } - if (!_EventDictionary.ContainsKey(msg.Event)) - { + if (!_EventDictionary.ContainsKey(msg.Event)) + { _Logger.LogWarning($"Plugin does not handle the event '{msg.Event}'"); continue; @@ -188,6 +203,9 @@ private async Task Run(CancellationToken token) _EventDictionary[msg.Event]?.Invoke(action, msg); + } + + } catch (Exception ex) { @@ -339,6 +357,7 @@ public async Task GetGlobalSettingsAsync(string context) await _Proxy.SendStreamDeckEvent(args); } + #endregion #region IDisposable Support diff --git a/src/StreamDeckLib/ConnectionManager_Actions.cs b/src/StreamDeckLib/ConnectionManager_Actions.cs index 4bc4ec3..1f82ea1 100644 --- a/src/StreamDeckLib/ConnectionManager_Actions.cs +++ b/src/StreamDeckLib/ConnectionManager_Actions.cs @@ -1,3 +1,4 @@ +using StreamDeckLib.Messages; using System; using System.Collections.Generic; using System.Linq; @@ -27,5 +28,19 @@ public ConnectionManager RegisterAllActions(Assembly assembly) return this; } - } + public void BroadcastGlobalSettings(StreamDeckEventPayload msg) + { + var actions = GetAllActions(); + foreach (var entry in actions) + { + _EventDictionary[msg.Event]?.Invoke(entry.Value, msg); + } + } + + public Dictionary GetAllActions() + { + return this._ActionManager.GetAllActions(); + } + + } } diff --git a/src/StreamDeckLib/IGlobalSettings.cs b/src/StreamDeckLib/IGlobalSettings.cs new file mode 100644 index 0000000..c07fea8 --- /dev/null +++ b/src/StreamDeckLib/IGlobalSettings.cs @@ -0,0 +1,6 @@ +namespace StreamDeckLib +{ + public interface IGlobalSettings + { + } +} From c613b9477fec1fda0edca9ebab4101af08a7e79d Mon Sep 17 00:00:00 2001 From: Carey Payette Date: Mon, 25 Mar 2019 14:39:26 -0400 Subject: [PATCH 05/10] ran format document on all changed files --- .../ConnectionManager_UnitTests.cs | 117 ++-- src/StreamDeckLib.Test/Stubs/StubAction.cs | 29 +- src/StreamDeckLib/ConnectionManager.cs | 600 +++++++++--------- .../ConnectionManager_Actions.cs | 61 +- 4 files changed, 401 insertions(+), 406 deletions(-) diff --git a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs index 53c8650..7aad75b 100644 --- a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs +++ b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs @@ -1,52 +1,51 @@ -using System; -using Xunit; using FluentAssertions; +using StreamDeckLib.Messages; +using System; using System.Threading; -using System.Diagnostics; using System.Threading.Tasks; -using StreamDeckLib.Messages; +using Xunit; namespace StreamDeckLib.Test { - public class ConnectionManagerShould + public class ConnectionManagerShould + { + [Fact] + public void ThrowAnArgumentException_WhenInitializedWithEmptyArgs() { - [Fact] - public void ThrowAnArgumentException_WhenInitializedWithEmptyArgs() - { - // Arrange - var commandLineArgs = new string[0]; - - // Act - Func action = () => ConnectionManager.Initialize(commandLineArgs); - - // Assert - action.Should().Throw(); - } - - [Fact] - public async Task ShouldRegisterEvent_WhenInitializedWithCorrectArgs() - { - // Arrange - var stub = new StubProxy() - { - InspectRegister = (e, uuid) => - { - Assert.Equal(StubProxy.TEST_EVENT, e); - Assert.Equal(uuid, uuid); - } - }; - - // Act - var tokenSource = new CancellationTokenSource(); - var task = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments, null, stub) - .StartAsync(tokenSource.Token); - - // Assert - Assert.Null(task.Exception); - tokenSource.Cancel(); - - } + // Arrange + var commandLineArgs = new string[0]; + + // Act + Func action = () => ConnectionManager.Initialize(commandLineArgs); + + // Assert + action.Should().Throw(); + } + + [Fact] + public async Task ShouldRegisterEvent_WhenInitializedWithCorrectArgs() + { + // Arrange + var stub = new StubProxy() + { + InspectRegister = (e, uuid) => + { + Assert.Equal(StubProxy.TEST_EVENT, e); + Assert.Equal(uuid, uuid); + } + }; + + // Act + var tokenSource = new CancellationTokenSource(); + var task = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments, null, stub) + .StartAsync(tokenSource.Token); + + // Assert + Assert.Null(task.Exception); + tokenSource.Cancel(); + + } [Fact] @@ -128,39 +127,39 @@ public async Task ShouldThrowDuplicateActionRegistrationException_WhenRegisterin [Fact] public async Task ShouldNotThrowAnyExceptions_WhenRegistringMultipleUniqueActions() { - // - // Arrange - // + // + // Arrange + // - Func action = () => ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) - .RegisterActionType("com.csharpfritz.samplePlugin.action", typeof(StubAction)) - .RegisterActionType("com.csharpfritz.samplePlugin.action2", typeof(StubAction)); + Func action = () => ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) + .RegisterActionType("com.csharpfritz.samplePlugin.action", typeof(StubAction)) + .RegisterActionType("com.csharpfritz.samplePlugin.action2", typeof(StubAction)); - // - // Assert - // + // + // Assert + // - //TODO: Wording? "unique UUID" is like saying "PIN number". It's "just" a test, but still syntactically incorrect. - action.Should() - .NotThrow("registering multiple unique actions is valid"); + //TODO: Wording? "unique UUID" is like saying "PIN number". It's "just" a test, but still syntactically incorrect. + action.Should() + .NotThrow("registering multiple unique actions is valid"); } [Fact] public async Task ActionsShouldReceiveGlobalSetting_WhenGlobalSettingsAreBroadcast() - { - //make sure the global settings are accessible in the actions + { + //make sure the global settings are accessible in the actions var mgr = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) .RegisterActionType("com.csharpfritz.samplePlugin.action", typeof(StubAction)) .RegisterActionType("com.csharpfritz.samplePlugin.action2", typeof(StubAction)); - + var dummyPayload = new StreamDeckEventPayload(); dummyPayload.Event = "didReceiveGlobalSettings"; dummyPayload.payload = new StreamDeckEventPayload.Payload(); dummyPayload.payload.settings = new { Counter = 1 }; - + mgr.Invoking(x => x.BroadcastGlobalSettings(dummyPayload)); var actions = mgr.GetAllActions(); @@ -168,8 +167,8 @@ public async Task ActionsShouldReceiveGlobalSetting_WhenGlobalSettingsAreBroadca foreach (var entry in actions) { - - result = result && (entry.Value as StubAction).Counter==1; + + result = result && (entry.Value as StubAction).Counter == 1; } Assert.True(result); } diff --git a/src/StreamDeckLib.Test/Stubs/StubAction.cs b/src/StreamDeckLib.Test/Stubs/StubAction.cs index 7ba28b2..14b046a 100644 --- a/src/StreamDeckLib.Test/Stubs/StubAction.cs +++ b/src/StreamDeckLib.Test/Stubs/StubAction.cs @@ -1,25 +1,24 @@ -using System; -using System.Threading.Tasks; using StreamDeckLib.Messages; +using System.Threading.Tasks; namespace StreamDeckLib.Test { - [ActionUuid(Uuid = "Test UUID")] - public class StubAction : BaseStreamDeckAction - { - public int Counter = 0; + [ActionUuid(Uuid = "Test UUID")] + public class StubAction : BaseStreamDeckAction + { + public int Counter = 0; - internal ConnectionManager GetConnectionManager() - { - return this.Manager; - } + internal ConnectionManager GetConnectionManager() + { + return this.Manager; + } - public override Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args) - { - Counter = 1; - return Task.CompletedTask; - } + public override Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args) + { + Counter = 1; + return Task.CompletedTask; + } } diff --git a/src/StreamDeckLib/ConnectionManager.cs b/src/StreamDeckLib/ConnectionManager.cs index 680343e..b95202e 100644 --- a/src/StreamDeckLib/ConnectionManager.cs +++ b/src/StreamDeckLib/ConnectionManager.cs @@ -4,10 +4,8 @@ using Newtonsoft.Json; using StreamDeckLib.Messages; using System; -using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Linq; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; @@ -15,380 +13,380 @@ namespace StreamDeckLib { - /// - /// This class manages the connection to the StreamDeck hardware - /// - public partial class ConnectionManager : IDisposable + /// + /// This class manages the connection to the StreamDeck hardware + /// + public partial class ConnectionManager : IDisposable + { + private int _Port; + private string _Uuid; + private string _RegisterEvent; + private IStreamDeckProxy _Proxy; + private IGlobalSettings _GlobalSettings; + + // Cheer 225 cpayette 26/2/19 + // Cheer 10700 roberttables 26/2/19 + // Cheer 840 auth0bobby 26/2/19 + // Cheer 13629 themichaeljolley 26/2/19 + // Cheer 182 sqlmistermagoo 26/2/19 + // Cheer 100 acrophobicpixie 26/2/19 + // Cheer 492 danerd 26/2/19 + // Cheer 500 tealoldman 26/2/19 + // Cheer 500 kittishomestead 26/2/19 + // Cheer 5500 electrichavoc 26/2/19 + + private ConnectionManager() { - private int _Port; - private string _Uuid; - private string _RegisterEvent; - private IStreamDeckProxy _Proxy; - private IGlobalSettings _GlobalSettings; - - // Cheer 225 cpayette 26/2/19 - // Cheer 10700 roberttables 26/2/19 - // Cheer 840 auth0bobby 26/2/19 - // Cheer 13629 themichaeljolley 26/2/19 - // Cheer 182 sqlmistermagoo 26/2/19 - // Cheer 100 acrophobicpixie 26/2/19 - // Cheer 492 danerd 26/2/19 - // Cheer 500 tealoldman 26/2/19 - // Cheer 500 kittishomestead 26/2/19 - // Cheer 5500 electrichavoc 26/2/19 - - private ConnectionManager() - { - this._ActionManager = new ActionManager(this, _Logger); - } + this._ActionManager = new ActionManager(this, _Logger); + } - public Messages.Info Info { get; private set; } + public Messages.Info Info { get; private set; } - public static ConnectionManager Initialize(string[] commandLineArgs, - ILoggerFactory loggerFactory = null, - IStreamDeckProxy streamDeckProxy = null) - { - using (var app = new CommandLineApplication()) - { - app.HelpOption(); + public static ConnectionManager Initialize(string[] commandLineArgs, + ILoggerFactory loggerFactory = null, + IStreamDeckProxy streamDeckProxy = null) + { + using (var app = new CommandLineApplication()) + { + app.HelpOption(); - var optionPort = app.Option("-port|--port ", - "The port the Elgato StreamDeck software is listening on", - CommandOptionType.SingleValue); + var optionPort = app.Option("-port|--port ", + "The port the Elgato StreamDeck software is listening on", + CommandOptionType.SingleValue); - var optionPluginUUID = app.Option("-pluginUUID ", - "The UUID that the Elgato StreamDeck software knows this plugin as.", - CommandOptionType.SingleValue); + var optionPluginUUID = app.Option("-pluginUUID ", + "The UUID that the Elgato StreamDeck software knows this plugin as.", + CommandOptionType.SingleValue); - var optionRegisterEvent = app.Option("-registerEvent ", "The registration event", - CommandOptionType.SingleValue); + var optionRegisterEvent = app.Option("-registerEvent ", "The registration event", + CommandOptionType.SingleValue); - var optionInfo = app.Option("-info ", "Some information", CommandOptionType.SingleValue); + var optionInfo = app.Option("-info ", "Some information", CommandOptionType.SingleValue); - var optionBreak = app.Option("-break", "Attach the debugger", CommandOptionType.NoValue); + var optionBreak = app.Option("-break", "Attach the debugger", CommandOptionType.NoValue); - app.Parse(commandLineArgs); + app.Parse(commandLineArgs); - try - { - return Initialize(optionPort.ParsedValue, optionPluginUUID.Values[0], optionRegisterEvent.Values[0], - optionInfo.Values[0], loggerFactory, - streamDeckProxy ?? new StreamDeckProxy()); - } - catch - { - throw new ArgumentException($"{nameof(commandLineArgs)} must be the commandline args that the StreamDeck application calls this program with."); - } - } + try + { + return Initialize(optionPort.ParsedValue, optionPluginUUID.Values[0], optionRegisterEvent.Values[0], + optionInfo.Values[0], loggerFactory, + streamDeckProxy ?? new StreamDeckProxy()); } - - private static ConnectionManager Initialize(int port, string uuid, - string registerEvent, string info, - ILoggerFactory loggerFactory, - IStreamDeckProxy streamDeckProxy, - ActionManager actionManager = null) + catch { - // TODO: Validate the info parameter - var myInfo = JsonConvert.DeserializeObject(info); + throw new ArgumentException($"{nameof(commandLineArgs)} must be the commandline args that the StreamDeck application calls this program with."); + } + } + } - _LoggerFactory = loggerFactory ?? NullLoggerFactory.Instance; - _Logger = loggerFactory?.CreateLogger("ConnectionManager") ?? NullLogger.Instance; + private static ConnectionManager Initialize(int port, string uuid, + string registerEvent, string info, + ILoggerFactory loggerFactory, + IStreamDeckProxy streamDeckProxy, + ActionManager actionManager = null) + { + // TODO: Validate the info parameter + var myInfo = JsonConvert.DeserializeObject(info); + + _LoggerFactory = loggerFactory ?? NullLoggerFactory.Instance; + _Logger = loggerFactory?.CreateLogger("ConnectionManager") ?? NullLogger.Instance; + + var manager = new ConnectionManager() + { + _Port = port, + _Uuid = uuid, + _RegisterEvent = registerEvent, + Info = myInfo, + _Proxy = streamDeckProxy + }; + + return manager; + } - var manager = new ConnectionManager() - { - _Port = port, - _Uuid = uuid, - _RegisterEvent = registerEvent, - Info = myInfo, - _Proxy = streamDeckProxy - }; - - return manager; - } + public ConnectionManager RegisterGlobalSettings(IGlobalSettings settings) + { + _GlobalSettings = settings; + return this; + } - public ConnectionManager RegisterGlobalSettings(IGlobalSettings settings) - { - _GlobalSettings = settings; - return this; - } + public async Task StartAsync(CancellationToken token) + { - public async Task StartAsync(CancellationToken token) - { + TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; - TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; + await Run(token); - await Run(token); + return this; - return this; + } - } + public async Task StartAsync() + { - public async Task StartAsync() - { + var source = new CancellationTokenSource(); - var source = new CancellationTokenSource(); + return await this.StartAsync(source.Token); + } - return await this.StartAsync(source.Token); - } + private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) + { + _Logger.LogError(e.Exception, "Error handling StreamDeck information"); + } + + private async Task Run(CancellationToken token) + { + + await _Proxy.ConnectAsync(new Uri($"ws://localhost:{_Port}"), token); + await _Proxy.Register(_RegisterEvent, _Uuid); + + var keepRunning = true; - private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) + while (!token.IsCancellationRequested && keepRunning) + { + // Exit loop if the socket is closed or aborted + switch (_Proxy.State) { - _Logger.LogError(e.Exception, "Error handling StreamDeck information"); + case WebSocketState.CloseReceived: + case WebSocketState.Closed: + case WebSocketState.Aborted: + keepRunning = false; + + break; } - private async Task Run(CancellationToken token) + if (!keepRunning) break; + + var jsonString = await _Proxy.GetMessageAsString(token); + + if (!string.IsNullOrEmpty(jsonString) && !jsonString.StartsWith("\0")) { + try + { + var msg = JsonConvert.DeserializeObject(jsonString); - await _Proxy.ConnectAsync(new Uri($"ws://localhost:{_Port}"), token); - await _Proxy.Register(_RegisterEvent, _Uuid); + if (msg == null) + { + _Logger.LogError($"Unknown message received: {jsonString}"); - var keepRunning = true; + continue; + } - while (!token.IsCancellationRequested && keepRunning) + if (msg.Event.Equals("didReceiveGlobalSettings")) { - // Exit loop if the socket is closed or aborted - switch (_Proxy.State) - { - case WebSocketState.CloseReceived: - case WebSocketState.Closed: - case WebSocketState.Aborted: - keepRunning = false; - - break; - } - - if (!keepRunning) break; - - var jsonString = await _Proxy.GetMessageAsString(token); - - if (!string.IsNullOrEmpty(jsonString) && !jsonString.StartsWith("\0")) - { - try - { - var msg = JsonConvert.DeserializeObject(jsonString); - - if (msg == null) - { - _Logger.LogError($"Unknown message received: {jsonString}"); - - continue; - } - - if (msg.Event.Equals("didReceiveGlobalSettings")) - { - this.BroadcastGlobalSettings(msg); - } - else - { - - if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) - { - _Logger.LogInformation($"System event received: ${msg.Event}"); - continue; - } - var action = GetInstanceOfAction(msg.context, msg.action); - if (action == null) - { - _Logger.LogWarning($"The action requested (\"{msg.action}\") was not found as being registered with the plugin"); - continue; - } - - - if (!_EventDictionary.ContainsKey(msg.Event)) - { - _Logger.LogWarning($"Plugin does not handle the event '{msg.Event}'"); - - continue; - } - - _EventDictionary[msg.Event]?.Invoke(action, msg); - - } - - - } - catch (Exception ex) - { - _Logger.LogError(ex, "Error while processing payload from StreamDeck"); - } - } - - await Task.Delay(100); + this.BroadcastGlobalSettings(msg); } + else + { - Dispose(); - } + if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) + { + _Logger.LogInformation($"System event received: ${msg.Event}"); + continue; + } + var action = GetInstanceOfAction(msg.context, msg.action); + if (action == null) + { + _Logger.LogWarning($"The action requested (\"{msg.action}\") was not found as being registered with the plugin"); + continue; + } - #region StreamDeck Methods - public async Task SetTitleAsync(string context, string newTitle) - { - var args = new SetTitleArgs() - { - context = context, - payload = new SetTitleArgs.Payload - { - title = newTitle, - TargetType = SetTitleArgs.TargetType.HardwareAndSoftware - } - }; - - await _Proxy.SendStreamDeckEvent(args); - } + if (!_EventDictionary.ContainsKey(msg.Event)) + { + _Logger.LogWarning($"Plugin does not handle the event '{msg.Event}'"); - public async Task SetImageAsync(string context, string imageLocation) - { + continue; + } - Debug.WriteLine($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); - _Logger.LogDebug($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); + _EventDictionary[msg.Event]?.Invoke(action, msg); - var imgString = Convert.ToBase64String(File.ReadAllBytes(imageLocation), Base64FormattingOptions.None); + } - var args = new SetImageArgs - { - context = context, - payload = new SetImageArgs.Payload - { - TargetType = SetTitleArgs.TargetType.HardwareAndSoftware, - image = $"data:image/{new FileInfo(imageLocation).Extension.ToLowerInvariant().Substring(1)};base64, {imgString}" - } - }; - - await _Proxy.SendStreamDeckEvent(args); + + } + catch (Exception ex) + { + _Logger.LogError(ex, "Error while processing payload from StreamDeck"); + } } - public async Task ShowAlertAsync(string context) - { - var args = new ShowAlertArgs() - { - context = context - }; + await Task.Delay(100); + } - await _Proxy.SendStreamDeckEvent(args); - } + Dispose(); + } - public async Task ShowOkAsync(string context) - { - var args = new ShowOkArgs() - { - context = context - }; + #region StreamDeck Methods - await _Proxy.SendStreamDeckEvent(args); + public async Task SetTitleAsync(string context, string newTitle) + { + var args = new SetTitleArgs() + { + context = context, + payload = new SetTitleArgs.Payload + { + title = newTitle, + TargetType = SetTitleArgs.TargetType.HardwareAndSoftware } + }; - public async Task SetSettingsAsync(string context, dynamic value) - { - var args = new SetSettingsArgs() - { - context = context, - payload = new { settingsModel = value } - }; + await _Proxy.SendStreamDeckEvent(args); + } - await _Proxy.SendStreamDeckEvent(args); - } + public async Task SetImageAsync(string context, string imageLocation) + { - public async Task SetGlobalSettingsAsync(string context, dynamic value) - { - var args = new SetGlobalSettingsArgs() - { - context = context, - payload = new { settingsModel = value } - }; + Debug.WriteLine($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); + _Logger.LogDebug($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); - await _Proxy.SendStreamDeckEvent(args); - } + var imgString = Convert.ToBase64String(File.ReadAllBytes(imageLocation), Base64FormattingOptions.None); - public async Task SetStateAsync(string context, int state) + var args = new SetImageArgs + { + context = context, + payload = new SetImageArgs.Payload { - var args = new SetStateArgs - { - context = context, - payload = new SetStateArgs.Payload - { - state = state - } - }; - - await _Proxy.SendStreamDeckEvent(args); + TargetType = SetTitleArgs.TargetType.HardwareAndSoftware, + image = $"data:image/{new FileInfo(imageLocation).Extension.ToLowerInvariant().Substring(1)};base64, {imgString}" } + }; - public async Task SwitchToProfileAsync(string context, string device, string profileName) - { + await _Proxy.SendStreamDeckEvent(args); + } - var args = new SwitchToProfileArgs - { - context = context, - device = device, - payload = new SwitchToProfileArgs.Payload - { - profile = profileName - } - }; - - await _Proxy.SendStreamDeckEvent(args); - } + public async Task ShowAlertAsync(string context) + { + var args = new ShowAlertArgs() + { + context = context + }; + + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task ShowOkAsync(string context) + { + var args = new ShowOkArgs() + { + context = context + }; + + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task SetSettingsAsync(string context, dynamic value) + { + var args = new SetSettingsArgs() + { + context = context, + payload = new { settingsModel = value } + }; + + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task SetGlobalSettingsAsync(string context, dynamic value) + { + var args = new SetGlobalSettingsArgs() + { + context = context, + payload = new { settingsModel = value } + }; - public async Task OpenUrlAsync(string context, string url) + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task SetStateAsync(string context, int state) + { + var args = new SetStateArgs + { + context = context, + payload = new SetStateArgs.Payload { - var args = new OpenUrlArgs() - { - context = context, - payload = new OpenUrlArgs.Payload() - { - url = url - } - }; - - await _Proxy.SendStreamDeckEvent(args); + state = state } + }; + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task SwitchToProfileAsync(string context, string device, string profileName) + { - public async Task GetSettingsAsync(string context) + var args = new SwitchToProfileArgs + { + context = context, + device = device, + payload = new SwitchToProfileArgs.Payload { - var args = new GetSettingsArgs() { context = context }; - await _Proxy.SendStreamDeckEvent(args); + profile = profileName } + }; + await _Proxy.SendStreamDeckEvent(args); + } - public async Task GetGlobalSettingsAsync(string context) + public async Task OpenUrlAsync(string context, string url) + { + var args = new OpenUrlArgs() + { + context = context, + payload = new OpenUrlArgs.Payload() { - var args = new GetGlobalSettingsArgs() { context = context }; - await _Proxy.SendStreamDeckEvent(args); + url = url } + }; - - #endregion + await _Proxy.SendStreamDeckEvent(args); + } - #region IDisposable Support - private bool disposedValue = false; // To detect redundant calls - private static ILoggerFactory _LoggerFactory; - private static ILogger _Logger; + public async Task GetSettingsAsync(string context) + { + var args = new GetSettingsArgs() { context = context }; + await _Proxy.SendStreamDeckEvent(args); + } - void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) - { - _Proxy.Dispose(); - } - disposedValue = true; - } - } + public async Task GetGlobalSettingsAsync(string context) + { + var args = new GetGlobalSettingsArgs() { context = context }; + await _Proxy.SendStreamDeckEvent(args); + } + + + #endregion + + #region IDisposable Support - // This code added to correctly implement the disposable pattern. - public void Dispose() + private bool disposedValue = false; // To detect redundant calls + private static ILoggerFactory _LoggerFactory; + private static ILogger _Logger; + + void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - // TODO: uncomment the following line if the finalizer is overridden above. - //GC.SuppressFinalize(this); + _Proxy.Dispose(); } - #endregion + disposedValue = true; + } + } + + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // TODO: uncomment the following line if the finalizer is overridden above. + //GC.SuppressFinalize(this); } + #endregion + } + } diff --git a/src/StreamDeckLib/ConnectionManager_Actions.cs b/src/StreamDeckLib/ConnectionManager_Actions.cs index 1f82ea1..5fd90d9 100644 --- a/src/StreamDeckLib/ConnectionManager_Actions.cs +++ b/src/StreamDeckLib/ConnectionManager_Actions.cs @@ -1,46 +1,45 @@ using StreamDeckLib.Messages; using System; using System.Collections.Generic; -using System.Linq; using System.Reflection; namespace StreamDeckLib { - partial class ConnectionManager - { - private ActionManager _ActionManager; + partial class ConnectionManager + { + private ActionManager _ActionManager; - //Cheer 100 svavablount 15/2/19 - public ConnectionManager RegisterActionType(string actionUuid, Type actionType) - { - this._ActionManager.RegisterActionType(actionUuid, actionType); - return this; - } + //Cheer 100 svavablount 15/2/19 + public ConnectionManager RegisterActionType(string actionUuid, Type actionType) + { + this._ActionManager.RegisterActionType(actionUuid, actionType); + return this; + } - public BaseStreamDeckAction GetInstanceOfAction(string context, string actionUuid) - { - return this._ActionManager.GetActionForContext(context, actionUuid); - } + public BaseStreamDeckAction GetInstanceOfAction(string context, string actionUuid) + { + return this._ActionManager.GetActionForContext(context, actionUuid); + } - public ConnectionManager RegisterAllActions(Assembly assembly) - { - this._ActionManager.RegisterAllActions(assembly); - return this; - } + public ConnectionManager RegisterAllActions(Assembly assembly) + { + this._ActionManager.RegisterAllActions(assembly); + return this; + } - public void BroadcastGlobalSettings(StreamDeckEventPayload msg) - { - var actions = GetAllActions(); - foreach (var entry in actions) - { - _EventDictionary[msg.Event]?.Invoke(entry.Value, msg); - } - } + public void BroadcastGlobalSettings(StreamDeckEventPayload msg) + { + var actions = GetAllActions(); + foreach (var entry in actions) + { + _EventDictionary[msg.Event]?.Invoke(entry.Value, msg); + } + } - public Dictionary GetAllActions() - { - return this._ActionManager.GetAllActions(); - } + public Dictionary GetAllActions() + { + return this._ActionManager.GetAllActions(); + } } } From a2ff6fbf100f8b0940ce51c62f672acbade56f48 Mon Sep 17 00:00:00 2001 From: Carey Payette Date: Sat, 30 Mar 2019 21:51:04 -0400 Subject: [PATCH 06/10] Implemented OnSendToPlugin (from software), LogMessageAsync (to software), sendToPropertyInspectorAsync(to software), refactored broadcast message in connection manager --- .../ConnectionManager_UnitTests.cs | 2 +- src/StreamDeckLib/BaseStreamDeckAction.cs | 40 ++++++------- .../BaseStreamDeckActionWithSettingsModel.cs | 56 +++++++++---------- src/StreamDeckLib/ConnectionManager.cs | 37 +++++++++--- .../ConnectionManager_Actions.cs | 2 +- src/StreamDeckLib/ConnectionManager_Events.cs | 43 +++++++------- .../Messages/SendToPropertyInspectorArgs.cs | 8 +++ 7 files changed, 111 insertions(+), 77 deletions(-) create mode 100644 src/StreamDeckLib/Messages/SendToPropertyInspectorArgs.cs diff --git a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs index 7aad75b..c17e989 100644 --- a/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs +++ b/src/StreamDeckLib.Test/ConnectionManager_UnitTests.cs @@ -160,7 +160,7 @@ public async Task ActionsShouldReceiveGlobalSetting_WhenGlobalSettingsAreBroadca dummyPayload.payload = new StreamDeckEventPayload.Payload(); dummyPayload.payload.settings = new { Counter = 1 }; - mgr.Invoking(x => x.BroadcastGlobalSettings(dummyPayload)); + mgr.Invoking(x => x.BroadcastMessage(dummyPayload)); var actions = mgr.GetAllActions(); var result = true; diff --git a/src/StreamDeckLib/BaseStreamDeckAction.cs b/src/StreamDeckLib/BaseStreamDeckAction.cs index 48595f2..f3c0817 100644 --- a/src/StreamDeckLib/BaseStreamDeckAction.cs +++ b/src/StreamDeckLib/BaseStreamDeckAction.cs @@ -6,11 +6,11 @@ namespace StreamDeckLib { - [Obsolete("This class has been superseded by the \"BaseStreamDeckAction\" class. Please update your references accordingly", false)] - public abstract class BaseStreamDeckPlugin : BaseStreamDeckAction - { + [Obsolete("This class has been superseded by the \"BaseStreamDeckAction\" class. Please update your references accordingly", false)] + public abstract class BaseStreamDeckPlugin : BaseStreamDeckAction + { - } + } public abstract class BaseStreamDeckAction { @@ -36,33 +36,35 @@ public string ActionUuid /// /// The manager. protected internal ConnectionManager Manager { get; set; } - public ILogger Logger { get; internal set; } + public ILogger Logger { get; internal set; } - public virtual Task OnKeyDown(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnKeyDown(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnKeyUp(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnKeyUp(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnWillAppear(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnWillAppear(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnWillDisappear(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnWillDisappear(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnTitleParametersDidChange(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnTitleParametersDidChange(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnDeviceDidConnect(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnDeviceDidConnect(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnDeviceDidDisconnect(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnDeviceDidDisconnect(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnApplicationDidLaunch(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnApplicationDidLaunchAsync(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnApplicationDidTerminate(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnApplicationDidTerminateAsync(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnDidReceiveSettings(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnDidReceiveSettings(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnPropertyInspectorDidDisappear(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnPropertyInspectorDidDisappear(StreamDeckEventPayload args) => Task.CompletedTask; - public virtual Task OnPropertyInspectorDidAppear(StreamDeckEventPayload args) => Task.CompletedTask; + public virtual Task OnPropertyInspectorDidAppear(StreamDeckEventPayload args) => Task.CompletedTask; - } + public virtual Task OnSendToPlugin(StreamDeckEventPayload args) => Task.CompletedTask; + + } } diff --git a/src/StreamDeckLib/BaseStreamDeckActionWithSettingsModel.cs b/src/StreamDeckLib/BaseStreamDeckActionWithSettingsModel.cs index 7a3db3a..de85d57 100644 --- a/src/StreamDeckLib/BaseStreamDeckActionWithSettingsModel.cs +++ b/src/StreamDeckLib/BaseStreamDeckActionWithSettingsModel.cs @@ -4,38 +4,38 @@ namespace StreamDeckLib { - public abstract class BaseStreamDeckActionWithSettingsModel : BaseStreamDeckAction - { - public T SettingsModel { get; } = Activator.CreateInstance(); + public abstract class BaseStreamDeckActionWithSettingsModel : BaseStreamDeckAction + { + public T SettingsModel { get; } = Activator.CreateInstance(); - public override Task OnDidReceiveSettings(StreamDeckEventPayload args) - { - SetModelProperties(args); - return Task.CompletedTask; - } + public override Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + SetModelProperties(args); + return Task.CompletedTask; + } - public override Task OnWillAppear(StreamDeckEventPayload args) - { - SetModelProperties(args); - return Task.CompletedTask; - } + public override Task OnWillAppear(StreamDeckEventPayload args) + { + SetModelProperties(args); + return Task.CompletedTask; + } - protected void SetModelProperties(StreamDeckEventPayload args) + protected void SetModelProperties(StreamDeckEventPayload args) + { + var properties = typeof(T).GetProperties(); + foreach (var prop in properties) + { + if (args.payload != null && args.payload.settings != null && args.payload.settings.settingsModel != null) { - var properties = typeof(T).GetProperties(); - foreach (var prop in properties) - { - if (args.payload != null && args.payload.settings != null && args.payload.settings.settingsModel != null) - { - if (args.PayloadSettingsHasProperty(prop.Name)) - { - var value = args.GetPayloadSettingsValue(prop.Name); - var value2 = Convert.ChangeType(value, prop.PropertyType); - prop.SetValue(SettingsModel, value2); - } - } - } + if (args.PayloadSettingsHasProperty(prop.Name)) + { + var value = args.GetPayloadSettingsValue(prop.Name); + var value2 = Convert.ChangeType(value, prop.PropertyType); + prop.SetValue(SettingsModel, value2); + } } - + } } + + } } diff --git a/src/StreamDeckLib/ConnectionManager.cs b/src/StreamDeckLib/ConnectionManager.cs index b95202e..de7a6a7 100644 --- a/src/StreamDeckLib/ConnectionManager.cs +++ b/src/StreamDeckLib/ConnectionManager.cs @@ -172,18 +172,18 @@ private async Task Run(CancellationToken token) continue; } - if (msg.Event.Equals("didReceiveGlobalSettings")) + if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) { - this.BroadcastGlobalSettings(msg); + this.BroadcastMessage(msg); } else { - if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) - { - _Logger.LogInformation($"System event received: ${msg.Event}"); - continue; - } + // if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) + // { + //_Logger.LogInformation($"System event received: ${msg.Event}"); + //continue; + // } var action = GetInstanceOfAction(msg.context, msg.action); if (action == null) { @@ -355,6 +355,29 @@ public async Task GetGlobalSettingsAsync(string context) await _Proxy.SendStreamDeckEvent(args); } + public async Task LogMessageAsync(string context, string logMessage) + { + var args = new LogMessageArgs() + { + context = context, + payload = new LogMessageArgs.Payload() + { + message = logMessage + } + }; + await _Proxy.SendStreamDeckEvent(args); + } + + public async Task SendToPropertyInspectorAsync(string context, dynamic settings) + { + var args = new SendToPropertyInspectorArgs() + { + context = context, + payload = settings + }; + await _Proxy.SendStreamDeckEvent(args); + } + #endregion diff --git a/src/StreamDeckLib/ConnectionManager_Actions.cs b/src/StreamDeckLib/ConnectionManager_Actions.cs index 5fd90d9..9febc4e 100644 --- a/src/StreamDeckLib/ConnectionManager_Actions.cs +++ b/src/StreamDeckLib/ConnectionManager_Actions.cs @@ -27,7 +27,7 @@ public ConnectionManager RegisterAllActions(Assembly assembly) return this; } - public void BroadcastGlobalSettings(StreamDeckEventPayload msg) + public void BroadcastMessage(StreamDeckEventPayload msg) { var actions = GetAllActions(); foreach (var entry in actions) diff --git a/src/StreamDeckLib/ConnectionManager_Events.cs b/src/StreamDeckLib/ConnectionManager_Events.cs index 77ce420..298a906 100644 --- a/src/StreamDeckLib/ConnectionManager_Events.cs +++ b/src/StreamDeckLib/ConnectionManager_Events.cs @@ -5,27 +5,28 @@ namespace StreamDeckLib { - partial class ConnectionManager - { + partial class ConnectionManager + { - // Cheer ramblinggeek 100 January 21, 2019 - private static readonly Dictionary> _EventDictionary - = new Dictionary>() - { - ["keyDown"] = (plugin, args) => plugin.OnKeyDown(args), - ["keyUp"] = (plugin, args) => plugin.OnKeyUp(args), - ["willAppear"] = (plugin, args) => plugin.OnWillAppear(args), - ["willDisappear"] = (plugin, args) => plugin.OnWillDisappear(args), - ["titleParametersDidChange"] = (plugin, args) => plugin.OnTitleParametersDidChange(args), - ["deviceDidConnect"] = (plugin, args) => plugin.OnDeviceDidConnect(args), - ["deviceDidDisconnect"] = (plugin, args) => plugin.OnDeviceDidDisconnect(args), - ["applicationDidLaunch"] = (plugin, args) => plugin.OnApplicationDidLaunch(args), - ["applicationDidTerminate"] = (plugin, args) => plugin.OnApplicationDidTerminate(args), - ["didReceiveSettings"] = (plugin, args) => plugin.OnDidReceiveSettings(args), - ["didReceiveGlobalSettings"] = (plugin, args) => plugin.OnDidReceiveGlobalSettings(args), - ["propertyInspectorDidDisappear"] = (plugin, args) => plugin.OnPropertyInspectorDidDisappear(args), - ["propertyInspectorDidAppear"] = (plugin, args) => plugin.OnPropertyInspectorDidAppear(args) - }; - } + // Cheer ramblinggeek 100 January 21, 2019 + private static readonly Dictionary> _EventDictionary + = new Dictionary>() + { + ["keyDown"] = (plugin, args) => plugin.OnKeyDown(args), + ["keyUp"] = (plugin, args) => plugin.OnKeyUp(args), + ["willAppear"] = (plugin, args) => plugin.OnWillAppear(args), + ["willDisappear"] = (plugin, args) => plugin.OnWillDisappear(args), + ["titleParametersDidChange"] = (plugin, args) => plugin.OnTitleParametersDidChange(args), + ["deviceDidConnect"] = (plugin, args) => plugin.OnDeviceDidConnect(args), + ["deviceDidDisconnect"] = (plugin, args) => plugin.OnDeviceDidDisconnect(args), + ["applicationDidLaunch"] = (plugin, args) => plugin.OnApplicationDidLaunchAsync(args), + ["applicationDidTerminate"] = (plugin, args) => plugin.OnApplicationDidTerminateAsync(args), + ["didReceiveSettings"] = (plugin, args) => plugin.OnDidReceiveSettings(args), + ["didReceiveGlobalSettings"] = (plugin, args) => plugin.OnDidReceiveGlobalSettings(args), + ["propertyInspectorDidDisappear"] = (plugin, args) => plugin.OnPropertyInspectorDidDisappear(args), + ["propertyInspectorDidAppear"] = (plugin, args) => plugin.OnPropertyInspectorDidAppear(args), + ["sendToPlugin"] = (plugin, args) => plugin.OnSendToPlugin(args) + }; + } } diff --git a/src/StreamDeckLib/Messages/SendToPropertyInspectorArgs.cs b/src/StreamDeckLib/Messages/SendToPropertyInspectorArgs.cs new file mode 100644 index 0000000..4029bcf --- /dev/null +++ b/src/StreamDeckLib/Messages/SendToPropertyInspectorArgs.cs @@ -0,0 +1,8 @@ +namespace StreamDeckLib.Messages +{ + public class SendToPropertyInspectorArgs : BaseStreamDeckArgs + { + public override string Event => "sendToPropertyInspector"; + public dynamic payload { get; set; } + } +} From fe85684ad69bb0dd86ee42035b10f10a20a21bd8 Mon Sep 17 00:00:00 2001 From: Carey Payette Date: Fri, 12 Apr 2019 12:28:59 -0400 Subject: [PATCH 07/10] added an additional (identical) action to the sample plugin --- src/SamplePlugin/MySamplePluginAction2.cs | 65 +++++++++++++++++++++++ src/SamplePlugin/manifest.json | 14 +++++ 2 files changed, 79 insertions(+) create mode 100644 src/SamplePlugin/MySamplePluginAction2.cs diff --git a/src/SamplePlugin/MySamplePluginAction2.cs b/src/SamplePlugin/MySamplePluginAction2.cs new file mode 100644 index 0000000..f7d0d14 --- /dev/null +++ b/src/SamplePlugin/MySamplePluginAction2.cs @@ -0,0 +1,65 @@ +using SamplePlugin.Models; +using StreamDeckLib; +using StreamDeckLib.Messages; +using System.Threading.Tasks; + +namespace SamplePlugin +{ + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action2")] + public class MySamplePluginAction2 : BaseStreamDeckActionWithSettingsModel + { + // Cheer 342 cpayette 15/2/19 + // Cheer 100 devlead 15/2/19 + // Cheer 200 kevin_downs Jan 11, 2019 + // Cheer 401 cpayette Jan 15, 2019 + // Cheer 2501 themikejolley Jan 15, 2019 + // Cheer 100 wolfgang_blitz Jan 15, 2019 + // Cheer 157 jongalloway Jan 15, 2019 + // Cheer 100 johanb Jan 15, 2019 + // Cheer 400 faniereynders Jan 15, 2019 + // Cheer 100 TomMcQ Jan 15, 2019 + // Cheer 361 Crazy240sx Jan 15, 2019 + // Cheer 600 yarrgh Jan 15, 2019 + // Cheer 1030 kulu83 Jan 15, 2019 + // Cheer 2500 Auth0Bobby Jan 15, 2019 + + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } + + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } + + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } +} diff --git a/src/SamplePlugin/manifest.json b/src/SamplePlugin/manifest.json index 22255fc..a6b0efb 100644 --- a/src/SamplePlugin/manifest.json +++ b/src/SamplePlugin/manifest.json @@ -13,6 +13,20 @@ "SupportedInMultiActions": false, "Tooltip": "How many times did you get pwned today? Keep track with this counter.", "UUID": "com.csharpfritz.samplePlugin.action" + }, + { + "Icon": "images/actionIcon", + "Name": "SamplePluginAction2", + "States": [ + { + "Image": "images/actionDefaultImage", + "TitleAlignment": "middle", + "FontSize": "16" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "How many times did you get pwned today? Keep track with this counter.", + "UUID": "com.csharpfritz.samplePlugin.action2" } ], "Category": "Fritz & Friends", From 397b3c9daf57eeeccf2bf89c22f40b4944840c2d Mon Sep 17 00:00:00 2001 From: "Jeffrey T. Fritz" Date: Tue, 7 May 2019 07:50:59 -0700 Subject: [PATCH 08/10] Updated Intellicode model --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b5a2473..24ace8d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![](https://img.shields.io/azure-devops/tests/FritzAndFriends/StreamDeckTools/8/dev.svg) -[Intellicode Model](https://prod.intellicode.vsengsaas.visualstudio.com/get?m=EE5419D495BE49528606139DA3ADC687) +[Intellicode Model](https://prod.intellicode.vsengsaas.visualstudio.com/get?m=409A792BE4F74201806A848409B2984D) ## What Is This? From 6497f101ba7b3745ccf6b4d6bbceefeb018a76fa Mon Sep 17 00:00:00 2001 From: Alex Hedley Date: Sun, 7 Jun 2020 15:24:17 +0100 Subject: [PATCH 09/10] [Draft] Added Docs site (#150) --- .github/workflows/builds-docs.yml | 24 ++ README.md | 5 + docs/.gitignore | 9 + docs/api/.gitignore | 5 + docs/api/index.md | 3 + docs/articles/contributing.md | 45 +++ docs/articles/create.md | 11 + docs/articles/install.md | 25 ++ docs/articles/intro.md | 13 + docs/articles/plugins.md | 9 + docs/articles/pre-reqs.md | 10 + docs/articles/projects/dashboard.md | 5 + docs/articles/projects/emulator.md | 9 + docs/articles/projects/toc.yml | 4 + docs/articles/streams.md | 5 + docs/articles/template/action.md | 76 +++++ docs/articles/template/images/screenshot.png | Bin 0 -> 559182 bytes docs/articles/template/propertyinspector.md | 9 + docs/articles/template/template.md | 120 +++++++ docs/articles/template/toc.yml | 6 + docs/articles/toc.yml | 25 ++ docs/articles/using.md | 9 + docs/docfx.json | 72 +++++ docs/images/Elgato_400x400.jpg | Bin 0 -> 12403 bytes docs/images/Fritz.png | Bin 0 -> 58710 bytes docs/images/Fritz2.png | Bin 0 -> 26863 bytes docs/images/Fritz3.png | Bin 0 -> 6365 bytes docs/index.md | 15 + .../material/partials/head.tmpl.partial | 21 ++ docs/templates/material/styles/main.css | 299 ++++++++++++++++++ docs/toc.yml | 5 + 31 files changed, 839 insertions(+) create mode 100644 .github/workflows/builds-docs.yml create mode 100644 docs/.gitignore create mode 100644 docs/api/.gitignore create mode 100644 docs/api/index.md create mode 100644 docs/articles/contributing.md create mode 100644 docs/articles/create.md create mode 100644 docs/articles/install.md create mode 100644 docs/articles/intro.md create mode 100644 docs/articles/plugins.md create mode 100644 docs/articles/pre-reqs.md create mode 100644 docs/articles/projects/dashboard.md create mode 100644 docs/articles/projects/emulator.md create mode 100644 docs/articles/projects/toc.yml create mode 100644 docs/articles/streams.md create mode 100644 docs/articles/template/action.md create mode 100644 docs/articles/template/images/screenshot.png create mode 100644 docs/articles/template/propertyinspector.md create mode 100644 docs/articles/template/template.md create mode 100644 docs/articles/template/toc.yml create mode 100644 docs/articles/toc.yml create mode 100644 docs/articles/using.md create mode 100644 docs/docfx.json create mode 100644 docs/images/Elgato_400x400.jpg create mode 100644 docs/images/Fritz.png create mode 100644 docs/images/Fritz2.png create mode 100644 docs/images/Fritz3.png create mode 100644 docs/index.md create mode 100644 docs/templates/material/partials/head.tmpl.partial create mode 100644 docs/templates/material/styles/main.css create mode 100644 docs/toc.yml diff --git a/.github/workflows/builds-docs.yml b/.github/workflows/builds-docs.yml new file mode 100644 index 0000000..efd491f --- /dev/null +++ b/.github/workflows/builds-docs.yml @@ -0,0 +1,24 @@ +name: github pages + +on: + push: + branches: + - dev + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: docfx-action + uses: nikeee/docfx-action@v0.1.0 + with: + args: docs/docfx.json + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3.6.1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/_site diff --git a/README.md b/README.md index 24ace8d..0c30c82 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # StreamDeckToolkit [![Build status](https://dev.azure.com/FritzAndFriends/StreamDeckTools/_apis/build/status/StreamDeckTools-CI)](https://dev.azure.com/FritzAndFriends/StreamDeckTools/_build/latest?definitionId=8) ![](https://vsrm.dev.azure.com/FritzAndFriends/_apis/public/Release/badge/00a6d40c-eb0d-4aa8-a405-d13d03317ca9/1/1) [![NuGet](https://img.shields.io/nuget/v/StreamDeckLib.svg)](https://www.nuget.org/packages/StreamDeckLib/) +[![github pages](https://github.com/FritzAndFriends/StreamDeckToolkit/workflows/github%20pages/badge.svg)](https://github.com/FritzAndFriends/StreamDeckToolkit/actions?query=workflow%3A%22github+pages%22) ![](https://img.shields.io/azure-devops/tests/FritzAndFriends/StreamDeckTools/8/dev.svg) @@ -10,6 +11,10 @@ This is a template to help create plugins for the [Elgato Stream Deck][Stream Deck], using the [Stream Deck SDK][] with [Dotnet Core][]. +## Docs + +You can read more in the [Docs](https://FritzAndFriends.github.io/StreamDeckToolkit/). + ## Pre-Requisites In order to make use of this template, you will need to have the [Dotnet Core SDK][] (version 2.2.100 or above) installed on your development machine. diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..4378419 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,9 @@ +############### +# folder # +############### +/**/DROP/ +/**/TEMP/ +/**/packages/ +/**/bin/ +/**/obj/ +_site diff --git a/docs/api/.gitignore b/docs/api/.gitignore new file mode 100644 index 0000000..e8079a3 --- /dev/null +++ b/docs/api/.gitignore @@ -0,0 +1,5 @@ +############### +# temp file # +############### +*.yml +.manifest diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 0000000..9ddf9eb --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,3 @@ +# API Documentaion + +Welcome to the API Documentation, please see the navigation for each of the project apis in "StreamDeck Toolkit". diff --git a/docs/articles/contributing.md b/docs/articles/contributing.md new file mode 100644 index 0000000..afa5039 --- /dev/null +++ b/docs/articles/contributing.md @@ -0,0 +1,45 @@ +## Contributing + +There are two ways to contribute to this repo, either the code or the docs. + +First check for any open [Issues](https://github.com/FritzAndFriends/StreamDeckToolkit/issues) on [GitHub](https://github.com/FritzAndFriends/StreamDeckToolkit) then comment to indicate you're helping out, or raise a new one with details. + +### Code + +Pull the code and add your necessary changes, then PR back to dev for review. + +### Docs + +You're in them! To help out fork this repo, install [DocFX](https://dotnet.github.io/docfx/) and update/add any info. + +`docfx docfx.json` will build the site, then move to the "_site" folder and run `docfx serve` then open a browser to "http://localhost:8080/" to see your updates. + +There are the Articles you can write to explain the toolkit, then the API docs which builds from the src. + +The [docfx.json](../docfx.json) file contains a `metadata` which points to the `src` to built to produce + + { + "metadata": [ + { + "src": [ + { + "files": ["**.csproj"], + "src": "../src" + } + ], + "dest": "api" + } + ] + } + +### Template + +This documentation site is using the [DocFX Material](https://ovasquez.github.io/docfx-material/) [template](https://dotnet.github.io/docfx/templates-and-plugins/templates-dashboard.html). + +The [docfx.json](../docfx.json) file contains a `template` that has been updated, alongside the [templates](../tempaltes) folder containing the src of the template. + + "template": [ + "default", + "templates/material" + ] + diff --git a/docs/articles/create.md b/docs/articles/create.md new file mode 100644 index 0000000..92cd64b --- /dev/null +++ b/docs/articles/create.md @@ -0,0 +1,11 @@ +## Creating a Plugin Action + +The Stream Deck Toolkit provides the functionality that communicates directly with the Stream Deck software. When creating a plugin, you are responsible for creating actions for the Stream Deck buttons to perform. There are two base classes that you can inherit from when creating your action: + +1. `BaseStreamDeckAction` - this class contains all the integrations necessary to communicate with the Stream Deck at the 'barebones' level. Inheriting from this class will give you the greatest control over how your action sends and receives data from the software. + +2. `BaseStreamDeckActionWithSettingsModel` - this class inherits from BaseStreamDeckAction, this class will automate the population of model properties, where type T is defined as the data that is stored when issuing a 'setSettings' event to the Stream Deck software. The property **`SettingsModel`** will automatically instantiate an instance of class T, so it is best to assign default values when defining your class T. Also, when using the Property Inspector and passing data back and forth, ensure that the properties defined in the settingsModel in JavaScript matches those that you have defined in T for the automatic mapping to occur between both environments. + +Your project may contain any number of actions, inheriting from one of the classes above. In order for the Action to be automatically registered on start up, it must bear the **`[ActionUuid(Uuid="com.fritzanfriends.pluginname.anotheraction")]`** attribute. + +Actions must also be manually registered in the **`manifest.json`** file, with the Uuid that matches ActionUuid attribute. diff --git a/docs/articles/install.md b/docs/articles/install.md new file mode 100644 index 0000000..315fe71 --- /dev/null +++ b/docs/articles/install.md @@ -0,0 +1,25 @@ +## Install Project Template + +### From File System + +Installing the template from your filesystem is useful for local testing of the template itself. If you are actively working on the template making changes, this is the route you need to use. + +To install, run the following command from the root of the repository. + +`dotnet new -i Templates/StreamDeck.PluginTemplate.Csharp` + +To pick up any changes you have made to the template source, you must uninstall the template and reinstall it. + +To uninstall, run the following command from the root of the respository. + +**Windows:** `dotnet new -u Templates/StreamDeck.PluginTemplate.Csharp` + +**OSX/Linux:** `dotnet new -u $PWD/Templates/StreamDeck.PluginTemplate.Csharp` + +### From NuGet + +`dotnet new -i StreamDeckPluginTemplate` + +- OR - + +`Install-Package StreamDeckPluginTemplate [-Version x.y.zzz]` diff --git a/docs/articles/intro.md b/docs/articles/intro.md new file mode 100644 index 0000000..e1d6824 --- /dev/null +++ b/docs/articles/intro.md @@ -0,0 +1,13 @@ +## Welcome + +Welcome to the documentation for the StreamDeck Toolkit, a .NET Standard library, template, and tools for building extensions to the Elgato Stream Deck. + +## What Is This? + +This is a template to help create plugins for the [Elgato Stream Deck][Stream Deck], using the [Stream Deck SDK][] with [Dotnet Core][]. + + + +[Dotnet Core]: https://dotnet.microsoft.com/ "Free, cross-platform application framework" +[Stream Deck]: https://www.elgato.com/gaming/stream-deck/ "Elgato's Stream Deck product page" +[Stream Deck SDK]: https://developer.elgato.com/documentation/stream-deck "Elgato's Stream Deck SDK documentation and reference site" diff --git a/docs/articles/plugins.md b/docs/articles/plugins.md new file mode 100644 index 0000000..f7f9ae6 --- /dev/null +++ b/docs/articles/plugins.md @@ -0,0 +1,9 @@ +## Plugins + +Please add your plugins to the list: + +- [vscode-streamdeck](https://github.com/nicollasricas/vscode-streamdeck) +- [streamdeck-plugins](https://github.com/madmatt/streamdeck-plugins) + - https://streamdeck-plugins.com/ + - [WayBack Machine version](https://web.archive.org/web/20200424173307/https://streamdeck-plugins.com/) +- [BarRaider](https://barraider.com/) diff --git a/docs/articles/pre-reqs.md b/docs/articles/pre-reqs.md new file mode 100644 index 0000000..05a9489 --- /dev/null +++ b/docs/articles/pre-reqs.md @@ -0,0 +1,10 @@ +## Pre-Requisites + +In order to make use of this template, you will need to have the [Dotnet Core SDK][] (version 2.2.100 or above) installed on your development machine. + +While not absolutely necessary, it is **strongly** recommended to have the [Stream Deck Software][] installed, to be able to perform some integration testing of your plugin. + + + +[Dotnet Core SDK]: https://get.dot.net/ "Download the Dotnet Core SDK or Runtime" +[Stream Deck Software]: https://www.elgato.com/gaming/downloads "Download the Stream Deck desktop software" diff --git a/docs/articles/projects/dashboard.md b/docs/articles/projects/dashboard.md new file mode 100644 index 0000000..2b34ca7 --- /dev/null +++ b/docs/articles/projects/dashboard.md @@ -0,0 +1,5 @@ +## StreamDeck Dashboard + +A collection of stream deck actions in a single plugin for developers + +- [code](https://github.com/FritzAndFriends/StreamDeckDashboard) diff --git a/docs/articles/projects/emulator.md b/docs/articles/projects/emulator.md new file mode 100644 index 0000000..1524436 --- /dev/null +++ b/docs/articles/projects/emulator.md @@ -0,0 +1,9 @@ +## Stream Deck Emulator + +A simple emulator for the Stream Deck Application to allow plugin developers to develop, test, and debug their plugins without requiring a physical [Stream Deck][] device. + +See the [code](https://github.com/FritzAndFriends/StreamDeckEmulator). + + + +[Stream Deck]: https://www.elgato.com/gaming/stream-deck/ "Elgato's Stream Deck product page" diff --git a/docs/articles/projects/toc.yml b/docs/articles/projects/toc.yml new file mode 100644 index 0000000..e8877ac --- /dev/null +++ b/docs/articles/projects/toc.yml @@ -0,0 +1,4 @@ +- name: StreamDeck Emulator + href: emulator.md +- name: StreamDeck Dashboard + href: dashboard.md \ No newline at end of file diff --git a/docs/articles/streams.md b/docs/articles/streams.md new file mode 100644 index 0000000..581f131 --- /dev/null +++ b/docs/articles/streams.md @@ -0,0 +1,5 @@ +## Streams + +You can find all the [Twitch](https://www.twitch.tv/csharpfritz) streams that built this toolkit on [YouTube](https://www.youtube.com/channel/UCfvJirlbRTN-bU9sMWMb_ZQ) + +- [StreamDeck Toolkit Playlist](https://www.youtube.com/playlist?list=PLVMqA0_8O85xhVTS3OkTOKhe6IIYj7Tna) diff --git a/docs/articles/template/action.md b/docs/articles/template/action.md new file mode 100644 index 0000000..1684240 --- /dev/null +++ b/docs/articles/template/action.md @@ -0,0 +1,76 @@ +## Action + +When you use the template there are a number of parameters which can set things in the following `Action` class: + + --uuid com.yourcompany.pluginname.actionname + --plugin-name FirstPlugin + +You will also have a model created `CounterSettingsModel` which will be set. + +### Attribute + + [ActionUuid(Uuid="com.yourcompany.pluginname.actionname")] + +### Class Name + +The `--plugin-name` will be a prefix for the `Action` class that is created: + + public class FirstPluginAction : BaseStreamDeckActionWithSettingsModel + +## BaseStreamDeckAction + +```csharp +public ILogger Logger { get; } +public string ActionUuid { get; } +protected internal ConnectionManager Manager { get; set; } +``` + +There are a number of methods you can then override and implement with your own logic: + +```csharp +public virtual Task OnApplicationDidLaunch(StreamDeckEventPayload args); +public virtual Task OnApplicationDidTerminate(StreamDeckEventPayload args); +public virtual Task OnDeviceDidConnect(StreamDeckEventPayload args); +public virtual Task OnDeviceDidDisconnect(StreamDeckEventPayload args); +public virtual Task OnDidReceiveGlobalSettings(StreamDeckEventPayload args); +public virtual Task OnDidReceiveSettings(StreamDeckEventPayload args); +public virtual Task OnKeyDown(StreamDeckEventPayload args); +public virtual Task OnKeyUp(StreamDeckEventPayload args); +public virtual Task OnPropertyInspectorDidAppear(StreamDeckEventPayload args); +public virtual Task OnPropertyInspectorDidDisappear(StreamDeckEventPayload args); +public virtual Task OnTitleParametersDidChange(StreamDeckEventPayload args); +public virtual Task OnWillAppear(StreamDeckEventPayload args); +public virtual Task OnWillDisappear(StreamDeckEventPayload args); +``` + +Just call the base method then implement the functionality you wish to achieve. + +For example: + +```csharp +public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) +{ + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); +} +``` + +```csharp +public override async Task OnWillAppear(StreamDeckEventPayload args) +{ + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); +} +``` + +## BaseStreamDeckActionWithSettingsModel + +```csharp +public T SettingsModel { get; } +``` + +```csharp +public override Task OnDidReceiveSettings(StreamDeckEventPayload args); +public override Task OnWillAppear(StreamDeckEventPayload args); +protected void SetModelProperties(StreamDeckEventPayload args); +``` \ No newline at end of file diff --git a/docs/articles/template/images/screenshot.png b/docs/articles/template/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..bb81124c3078d3692f1259b7de9475ccc93fe5d6 GIT binary patch literal 559182 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 z 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 z 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

X)?R^R?Gdj17N>tJL5IXVA`nPp$ylB`Y*K1nau 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

    *t?r#5g#&j-ETvBCyQJrZ;9_&X_Q5@8iP&7PS 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�{Hie%6N~sV(;e8h0X8PeIEDZY7eSHKld-|pp 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 literal 0 HcmV?d00001 diff --git a/docs/articles/template/propertyinspector.md b/docs/articles/template/propertyinspector.md new file mode 100644 index 0000000..1ad5893 --- /dev/null +++ b/docs/articles/template/propertyinspector.md @@ -0,0 +1,9 @@ +## Property Inspector + +There are various types of fields that are supported in property inspector see [Elgato Github PiSamples](https://github.com/elgatosf/streamdeck-pisamples) and [Elgato SDK Documentation](https://developer.elgato.com/documentation/stream-deck/sdk/property-inspector/) + +![screenshot](images/screenshot.png) + +The above sample from GitHub allows you to drag and drop elements into your html for quick development. + +Add it to the `property_inspector.html` file in the project. diff --git a/docs/articles/template/template.md b/docs/articles/template/template.md new file mode 100644 index 0000000..1651212 --- /dev/null +++ b/docs/articles/template/template.md @@ -0,0 +1,120 @@ +# Working With This Template + +## Welcome + +Congratulations! You've just taken the first major step in writing a custom plugin for the [Elgato Stream Deck][Stream Deck]. + +## State of Things + +Within the directory from which you are reading this file, there exist a few other necessary files. These are: + +* `_StreamDeckPlugin_.csproj`: The C# project file used to build the plugin +* `Program.cs`: The code for the application which will be called by the [Stream Deck software][] when loading and running your plugin. +* `DefaultPluginAction.cs`: The file in which the functionality of the first (default) action for the plugin will be written. This file provides a basic implementation of an action for your plugin, following a pattern which can be repeated. + +## What's Next? + +### First, a Word of Caution + +Due to the multi-platform target of the [Stream Deck][], when specifying filesystem paths which will be used at runtime (images, other assets), use the POSIX/Unix standard forward slash (`/`) as the directory separator. + +**Do this** `path/to/my/assets` +**Instead of** `path\to\my\assets` + +### The `manifest.json` file + +The [`manifest.json` file][Manifest File] (also referred to as the *manifest* or *manifest file*) is the mechanism used by the [Stream Deck SDK][] to uniquely identify plugins, their actions and other parameters. + +Your first step should set a value for both the **Author** and the **URL** values, representing you and your plugin. + +### Images and Other Assets + +The following are the base set of images/icons which are needed for the plugin. While defaults have been provided, they should be changed to help distinguish your plugin and its action(s) from others. + +Unless otherwise noted, image assets should all be in the "Portable Network Graphics" (PNG) format. + +> [!Note] +> While all efforts have been made to ensure the correctness of this information, please refer to the official [Style Guide][] and [Manifest file definition][Manifest File] for the latest and most up-to-date information. + +----- + +#### Category Icon (*a.k.a. Plugin Icon*) + +**Path to property in manifest.json file:** `Icon` + +##### Purpose + +The category icon, identified by the **Icon** property in the *manifest*, is the primary visual identifier for your plugin. It is also used to display information about your plugin in the **More Actions...** list, which displays the list of available plugins to download to uses, as well as the category (group) icon in the **Actions** list if your plugin supports more than a single action. + +##### Specifications + +The **Icon** property in the *manifest* represents the base file name of the image, without a file extension. For example, if your icon's file name is `myPluginIcon.png`, you would set the value as `myPluginIcon`. + +There are two of these files necessary. A default one for a regular, non-scaled (high-DPI) display, and another for scaled display. The default icon should be 28 pixels squared (28x28px), and named with the base file name and extension. i.e. `_PluginName_.png`. + +The other file, for high-DPI displayes, must be 56 pixels squared (56x56px), and the value `@2x` appended to the file name, before the extension. i.e. `_PluginName_@2x.png` + +----- + +#### Action Image (Icon) + +**Path to property in manifest.json file:** `Actions[x].Icon` + +##### Purpose + +The action image, for which there is one for each action available from the plugin, is the icon which helps identify the action item in the **Actions** list, within the category (group) defined by your plugin. Just as with the **Category Icon**, when setting its value in the *manifest*, do not specify an extension. + +##### Specifications + +Each element in the **Actions** element of the *manifest* has an **Icon** property which must be set (which one possible exception - see below). While not strictly necessary, each action should have its own, distinct icon for its visual identity. Per the current specifications, the **Action Image** should be a single color -
    `#d8d8d8` (`rgb(216,216,216)`). + +Again, just as with the **Category Icon**, two separate copies of this file are needed, with the same naming rules but different sizes; a default one for a regular, non-scaled (high-DPI) display, and another for scaled display. The default icon should be 20 pixels squared (20x20px), and preferably named in a manner in which it can be easily related to its action, such as `actionIcon.png`. When setting its value in the *manifest*, here too specify only the file name, and do not include the etension. + +The other file, for high-DPI displayes, must be 40 pixels squared (40x40px), and the value `@2x` appended to the file name, before the extension. i.e. `actionIcon@2x.png` + +##### Exceptions + + An **Action** item is not required to have an icon specified (but still can) if its `VisibleInActionList` property in the *manifest* is set to `false`. + +----- + +#### Key Icon + +**Path to property in manifest.json file:** `Actions[x].States[y].Image` + +##### Purpose + +The **Key Icon** is the icon which is displayed on the key(s) to which is is assigned on the [Stream Deck][], as well as within the [Stream Deck software][] during configuration. If your action supports multiple states, the **Key Icon** will be displayed when its assigned state is active. Each action hast as least one state, and as of this time, has at most two states. + + Once again, just as with the **Category Icon** and **Action Image**, when setting its value in the *manifest*, do not specify an extension. + +##### Specifications + +Again, just as with the **Category Icon** and the **Action Image**,two separate copies of this file are needed, with the same naming rules but different sizes; a default one for a regular, non-scaled (high-DPI) display, and another for scaled display. The default icon should be 72 pixels squared (72x72px). Again, it should preferably named in a manner in which it can be easily related to either the action or state is represents, such as `actionIconButton.png` or `actionIconActive.png`. + +### Can I do any more? + +Of course! First, congratulations on getting your first action for your Stream Deck plugin working! To allow your plugin to do more, you will need to create (and implement) a new Action definition. Here is how you do this: + +1. Create a new class (in a new file or an existing one), and make sure it inherits from the `BaseStreamDeckAction` class +e.g.: `internal class MyNextPluginAction : BaseStreamDeckAction` +2. Implement the required properties and methods, such as `UUID` +3. Register it with the `ConnectionManager` instance within the `Program.cs` file. Look for the `.RegisterAction(new DefaultPluginAction()` code line, copy it, and change the type `DefaultPluginAction` to your new class' name. From the example in step 1, this would look like `.RegisterAction(new MyNextPluginAction())`. +4. Add a definition for the new action in the `manifest.json` file, ensuring that the value for the `UUID` field in the manifest matches the `UUID` property of your new class. + +That's it! Repeat this process for any additional actions you wish to include and perform as part of your plugin. + + +## References +Here are some helpful references for both this template and the Stream Deck: + +* [Plugin Homepage](https://github.com/FritzAndFriends/StreamDeckToolkit) +* [Stream Deck Page][Stream Deck] +* [Stream Deck SDK Documentation][Stream Deck SDK] + + +[Stream Deck]: https://www.elgato.com/en/gaming/stream-deck "Elgato's Stream Deck landing page for the hardware, software, and SDK" +[Stream Deck software]: https://www.elgato.com/gaming/downloads "Download the Stream Deck software" +[Stream Deck SDK]: https://developer.elgato.com/documentation/stream-deck "Elgato's online SDK documentation" +[Style Guide]: https://developer.elgato.com/documentation/stream-deck/sdk/style-guide/ "The Stream Deck SDK Style Guide" +[Manifest file]: https://developer.elgato.com/documentation/stream-deck/sdk/manifest "Definition of elements in the manifest.json file" diff --git a/docs/articles/template/toc.yml b/docs/articles/template/toc.yml new file mode 100644 index 0000000..272657c --- /dev/null +++ b/docs/articles/template/toc.yml @@ -0,0 +1,6 @@ +- name: Working With This Template + href: template.md +- name: Action + href: action.md +- name: Property Inspector + href: propertyinspector.md \ No newline at end of file diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml new file mode 100644 index 0000000..47898f3 --- /dev/null +++ b/docs/articles/toc.yml @@ -0,0 +1,25 @@ +- name: Introduction + href: intro.md +- name: Pre-Requisites + href: pre-reqs.md +- name: Install Project Template + href: install.md +- name: Using the Template + href: using.md +- name: Creating a Plugin Action + href: create.md +- name: Template + href: template/toc.yml +- name: Plugins + href: plugins.md +- name: Streams + href: streams.md +- name: Projects + href: projects/toc.yml + # items: + # - name: StreamDeck Emulator + # href: projects/emulator.md + # - name: StreamDeck Dashboard + # href: projects/dashboard.md +- name: Contributing + href: contributing.md \ No newline at end of file diff --git a/docs/articles/using.md b/docs/articles/using.md new file mode 100644 index 0000000..7b9bfaa --- /dev/null +++ b/docs/articles/using.md @@ -0,0 +1,9 @@ +## Using the Template + +Once the template is installed, open a terminal in the folder of your choice and create a new project. + + dotnet new streamdeck-plugin --plugin-name FirstPlugin --uuid com.yourcompany.pluginname.actionname --skipRestore false + +Or create a directory in a location of your choice, change to that directory and run the command, which will inherit the directory name as the project name with default values. + + dotnet new streamdeck-plugin diff --git a/docs/docfx.json b/docs/docfx.json new file mode 100644 index 0000000..3ffdb23 --- /dev/null +++ b/docs/docfx.json @@ -0,0 +1,72 @@ +{ + "metadata": [ + { + "src": [ + { + "files": [ + "**.csproj" + ], + "src": "../src" + } + ], + "dest": "api", + "disableGitFeatures": false, + "disableDefaultFilter": false + } + ], + "build": { + "content": [ + { + "files": [ + "api/**.yml", + "api/index.md" + ] + }, + { + "files": [ + "articles/**.md", + "articles/**/toc.yml", + "toc.yml", + "*.md" + ] + } + ], + "resource": [ + { + "files": [ + "images/**", + "articles/images/**", + "articles/template/images/**" + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "dest": "_site", + "globalMetadataFiles": [], + "fileMetadataFiles": [], + "template": [ + "default", + "templates/material" + ], + "postProcessors": [], + "markdownEngineName": "markdig", + "noLangKeyword": false, + "keepFileLink": false, + "cleanupCacheHistory": false, + "disableGitFeatures": false, + "globalMetadata": { + "_appTitle": "StreamDeckToolkit", + "_enableSearch": true + } + } +} \ No newline at end of file diff --git a/docs/images/Elgato_400x400.jpg b/docs/images/Elgato_400x400.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0de110f2055c2a1ade5353af0e089f68f6b1900 GIT binary patch literal 12403 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 JRLQ*#`9DmG>e~PS literal 0 HcmV?d00001 diff --git a/docs/images/Fritz2.png b/docs/images/Fritz2.png new file mode 100644 index 0000000000000000000000000000000000000000..40cf3753ea252c0ff7fc6fc281c6ebbb4d77ecbb GIT binary patch literal 26863 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 literal 0 HcmV?d00001 diff --git a/docs/images/Fritz3.png b/docs/images/Fritz3.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4ce9cfa6438305b2aeb2a949169d613e8e6966 GIT binary patch literal 6365 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..75a558a --- /dev/null +++ b/docs/index.md @@ -0,0 +1,15 @@ +## Welcome + +Welcome to the documentation for the StreamDeck Toolkit, a .NET Standard library, template, and tools for building extensions to the Elgato Stream Deck. + +## What Is This? + +This is a template to help create plugins for the [Elgato Stream Deck][Stream Deck], using the [Stream Deck SDK][] with [Dotnet Core][]. + +Check out the Articles section for how to work with the Toolkit, and the API section to see the code. + + + +[Dotnet Core]: https://dotnet.microsoft.com/ "Free, cross-platform application framework" +[Stream Deck]: https://www.elgato.com/gaming/stream-deck/ "Elgato's Stream Deck product page" +[Stream Deck SDK]: https://developer.elgato.com/documentation/stream-deck "Elgato's Stream Deck SDK documentation and reference site" diff --git a/docs/templates/material/partials/head.tmpl.partial b/docs/templates/material/partials/head.tmpl.partial new file mode 100644 index 0000000..c05e8c1 --- /dev/null +++ b/docs/templates/material/partials/head.tmpl.partial @@ -0,0 +1,21 @@ +{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} + + + + + {{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}} + + + + {{#_description}}{{/_description}} + + + + + + + + {{#_noindex}}{{/_noindex}} + {{#_enableSearch}}{{/_enableSearch}} + {{#_enableNewTab}}{{/_enableNewTab}} + \ No newline at end of file diff --git a/docs/templates/material/styles/main.css b/docs/templates/material/styles/main.css new file mode 100644 index 0000000..165a878 --- /dev/null +++ b/docs/templates/material/styles/main.css @@ -0,0 +1,299 @@ +/* COLOR VARIABLES*/ +:root { + --header-bg-color: #0d47a1; + --header-ft-color: #fff; + --highlight-light: #5e92f3; + --highlight-dark: #003c8f; + --accent-dim: #eee; + --font-color: #34393e; + --card-box-shadow: 0 1px 2px 0 rgba(61, 65, 68, 0.06), 0 1px 3px 1px rgba(61, 65, 68, 0.16); + --under-box-shadow: 0 4px 4px -2px #eee; + --search-box-shadow: 0px 0px 5px 0px rgba(255,255,255,1); +} + +body { + color: var(--font-color); + font-family: "Roboto", sans-serif; + line-height: 1.5; + font-size: 16px; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + word-wrap: break-word; +} + +/* HIGHLIGHT COLOR */ + +button, +a { + color: var(--highlight-dark); + cursor: pointer; +} + +button:hover, +button:focus, +a:hover, +a:focus { + color: var(--highlight-light); + text-decoration: none; +} + +.toc .nav > li.active > a { + color: var(--highlight-dark); +} + +.toc .nav > li.active > a:hover, +.toc .nav > li.active > a:focus { + color: var(--highlight-light); +} + +.pagination > .active > a { + background-color: var(--header-bg-color); + border-color: var(--header-bg-color); +} + +.pagination > .active > a, +.pagination > .active > a:focus, +.pagination > .active > a:hover, +.pagination > .active > span, +.pagination > .active > span:focus, +.pagination > .active > span:hover { + background-color: var(--highlight-light); + border-color: var(--highlight-light); +} + +/* HEADINGS */ + +h1 { + font-weight: 600; + font-size: 32px; +} + +h2 { + font-weight: 600; + font-size: 24px; + line-height: 1.8; +} + +h3 { + font-weight: 600; + font-size: 20px; + line-height: 1.8; +} + +h5 { + font-size: 14px; + padding: 10px 0px; +} + +article h1, +article h2, +article h3, +article h4 { + margin-top: 35px; + margin-bottom: 15px; +} + +article h4 { + padding-bottom: 8px; + border-bottom: 2px solid #ddd; +} + +/* NAVBAR */ + +.navbar-brand > img { + color: var(--header-ft-color); +} + +.navbar { + border: none; + /* Both navbars use box-shadow */ + -webkit-box-shadow: var(--card-box-shadow); + -moz-box-shadow: var(--card-box-shadow); + box-shadow: var(--card-box-shadow); +} + +.subnav { + border-top: 1px solid #ddd; + background-color: #fff; +} + +.navbar-inverse { + background-color: var(--header-bg-color); + z-index: 100; +} + +.navbar-inverse .navbar-nav > li > a, +.navbar-inverse .navbar-text { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid transparent; + padding-bottom: 12px; +} + +.navbar-inverse .navbar-nav > li > a:focus, +.navbar-inverse .navbar-nav > li > a:hover { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid white; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:focus, +.navbar-inverse .navbar-nav > .active > a:hover { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid white; +} + +.navbar-form .form-control { + border: 0; + border-radius: 0; +} + +.navbar-form .form-control:hover { + box-shadow: var(--search-box-shadow); +} + +.toc-filter > input:hover { + box-shadow: var(--under-box-shadow); +} + +/* NAVBAR TOGGLED (small screens) */ + +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border: none; +} +.navbar-inverse .navbar-toggle { + box-shadow: var(--card-box-shadow); + border: none; +} + +.navbar-inverse .navbar-toggle:focus, +.navbar-inverse .navbar-toggle:hover { + background-color: var(--header-ft-color); +} + +/* SIDEBAR */ + +.toc .level1 > li { + font-weight: 400; +} + +.toc .nav > li > a { + color: var(--font-color); +} + +.sidefilter { + background-color: #fff; + border-left: none; + border-right: none; +} + +.sidefilter { + background-color: #fff; + border-left: none; + border-right: none; +} + +.toc-filter { + padding: 10px; + margin: 0; +} + +.toc-filter > input { + border: none; + border-bottom: 2px solid var(--accent-dim); +} + +.toc-filter > .filter-icon { + display: none; +} + +.sidetoc > .toc { + background-color: #fff; + overflow-x: hidden; +} + +.sidetoc { + background-color: #fff; + border: none; +} + +/* ALERTS */ + +.alert { + padding: 0px 0px 5px 0px; + color: inherit; + background-color: inherit; + border: none; + box-shadow: var(--card-box-shadow); +} + +.alert > p { + margin-bottom: 0; + padding: 5px 10px; +} + +.alert > ul { + margin-bottom: 0; + padding: 5px 40px; +} + +.alert > h5 { + padding: 10px 15px; + margin-top: 0; + text-transform: uppercase; + font-weight: bold; + border-radius: 4px 4px 0 0; +} + +.alert-info > h5 { + color: #1976d2; + border-bottom: 4px solid #1976d2; + background-color: #e3f2fd; +} + +.alert-warning > h5 { + color: #f57f17; + border-bottom: 4px solid #f57f17; + background-color: #fff3e0; +} + +.alert-danger > h5 { + color: #d32f2f; + border-bottom: 4px solid #d32f2f; + background-color: #ffebee; +} + +/* CODE HIGHLIGHT */ +pre { + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + word-break: break-all; + word-wrap: break-word; + background-color: #fffaef; + border-radius: 4px; + border: none; + box-shadow: var(--card-box-shadow); +} + +/* STYLE FOR IMAGES */ + +.article .small-image { + margin-top: 15px; + box-shadow: var(--card-box-shadow); + max-width: 350px; +} + +.article .medium-image { + margin-top: 15px; + box-shadow: var(--card-box-shadow); + max-width: 550px; +} + +.article .large-image { + margin-top: 15px; + box-shadow: var(--card-box-shadow); + max-width: 700px; +} \ No newline at end of file diff --git a/docs/toc.yml b/docs/toc.yml new file mode 100644 index 0000000..59f8010 --- /dev/null +++ b/docs/toc.yml @@ -0,0 +1,5 @@ +- name: Articles + href: articles/ +- name: Api Documentation + href: api/ + homepage: api/index.md From 4bba9ea98c44c6a1ac98ae64b67d6b6fa0617f2a Mon Sep 17 00:00:00 2001 From: LuckyNoS7evin <30657709+LuckyNoS7evin@users.noreply.github.com> Date: Sun, 7 Jun 2020 15:29:33 +0100 Subject: [PATCH 10/10] Added DI friendly system (#149) Co-authored-by: Jeffrey T. Fritz --- .../content/_PluginName_Action.cs | 15 - .../content/_StreamDeckPlugin_.csproj | 10 +- .../global.json | 2 +- .../Models/CounterSettingsModel.cs | 7 + .../Models/SampleActionSettingsModel.cs | 7 + src/SampleDIPlugin/MySamplePluginAction.cs | 51 + src/SampleDIPlugin/MySamplePluginAction2.cs | 51 + src/SampleDIPlugin/Program.cs | 22 + src/SampleDIPlugin/SampleDIPlugin.csproj | 86 + src/SampleDIPlugin/appsettings.json | 16 + src/SampleDIPlugin/images/Fritz.png | Bin 0 -> 34824 bytes .../images/actionDefaultImage.png | Bin 0 -> 4383 bytes .../images/actionDefaultImage@2x.png | Bin 0 -> 10851 bytes src/SampleDIPlugin/images/actionIcon.png | Bin 0 -> 960 bytes src/SampleDIPlugin/images/actionIcon@2x.png | Bin 0 -> 2071 bytes .../images/category/categoryIcon.png | Bin 0 -> 675 bytes .../images/category/categoryIcon@2x.png | Bin 0 -> 1221 bytes src/SampleDIPlugin/images/pluginIcon.png | Bin 0 -> 4383 bytes src/SampleDIPlugin/images/pluginIcon@2x.png | Bin 0 -> 10851 bytes src/SampleDIPlugin/manifest.json | 58 + .../css/property-inspector.css | 1 + .../property_inspector/css/sdpi.css | 1386 +++++++++++++++++ .../js/property-inspector.js | 60 + .../property_inspector.html | 25 + .../CounterSettingsModel.cs | 0 src/SamplePlugin/MySamplePluginAction.cs | 88 +- src/SamplePlugin/MySamplePluginAction2.cs | 88 +- src/SamplePlugin/Program.cs | 4 - src/SamplePlugin/SamplePlugin.csproj | 10 +- .../models/SampleActionSettingsModel.cs | 7 - .../Models/CounterSettingsModel.cs | 7 + .../Models/SampleActionSettingsModel.cs | 7 + src/SampleWebPlugin/MySamplePluginAction.cs | 51 + src/SampleWebPlugin/MySamplePluginAction2.cs | 51 + src/SampleWebPlugin/Program.cs | 22 + src/SampleWebPlugin/SampleWebPlugin.csproj | 78 + src/SampleWebPlugin/Startup.cs | 46 + .../appsettings.Development.json | 9 + src/SampleWebPlugin/appsettings.json | 16 + src/SampleWebPlugin/images/Fritz.png | Bin 0 -> 34824 bytes .../images/actionDefaultImage.png | Bin 0 -> 4383 bytes .../images/actionDefaultImage@2x.png | Bin 0 -> 10851 bytes src/SampleWebPlugin/images/actionIcon.png | Bin 0 -> 960 bytes src/SampleWebPlugin/images/actionIcon@2x.png | Bin 0 -> 2071 bytes .../images/category/categoryIcon.png | Bin 0 -> 675 bytes .../images/category/categoryIcon@2x.png | Bin 0 -> 1221 bytes src/SampleWebPlugin/images/pluginIcon.png | Bin 0 -> 4383 bytes src/SampleWebPlugin/images/pluginIcon@2x.png | Bin 0 -> 10851 bytes src/SampleWebPlugin/manifest.json | 58 + .../css/property-inspector.css | 1 + .../property_inspector/css/sdpi.css | 1386 +++++++++++++++++ .../js/property-inspector.js | 60 + .../property_inspector.html | 25 + .../StreamDeckLib.Config.csproj | 8 +- .../ActionManager_UnitTests.cs | 12 +- src/StreamDeckLib/ActionManager.cs | 497 +++--- src/StreamDeckLib/ConnectionManager.cs | 617 ++++---- .../ConnectionManager_Actions.cs | 64 +- .../DependencyInjectionExtensions.cs | 25 + .../Extensions/HostingExtensions.cs | 28 + .../HostedServices/StreamDeckHostedService.cs | 43 + .../Models/StreamDeckRegistrationOptions.cs | 9 + .../Models/StreamDeckToolkitOptions.cs | 11 + src/StreamDeckLib/StreamDeckLib.csproj | 15 +- src/StreamDeckLib/StreamDeckProxy.cs | 8 - src/StreamDeckToolkit.sln | 14 +- 66 files changed, 4412 insertions(+), 750 deletions(-) create mode 100644 src/SampleDIPlugin/Models/CounterSettingsModel.cs create mode 100644 src/SampleDIPlugin/Models/SampleActionSettingsModel.cs create mode 100644 src/SampleDIPlugin/MySamplePluginAction.cs create mode 100644 src/SampleDIPlugin/MySamplePluginAction2.cs create mode 100644 src/SampleDIPlugin/Program.cs create mode 100644 src/SampleDIPlugin/SampleDIPlugin.csproj create mode 100644 src/SampleDIPlugin/appsettings.json create mode 100644 src/SampleDIPlugin/images/Fritz.png create mode 100644 src/SampleDIPlugin/images/actionDefaultImage.png create mode 100644 src/SampleDIPlugin/images/actionDefaultImage@2x.png create mode 100644 src/SampleDIPlugin/images/actionIcon.png create mode 100644 src/SampleDIPlugin/images/actionIcon@2x.png create mode 100644 src/SampleDIPlugin/images/category/categoryIcon.png create mode 100644 src/SampleDIPlugin/images/category/categoryIcon@2x.png create mode 100644 src/SampleDIPlugin/images/pluginIcon.png create mode 100644 src/SampleDIPlugin/images/pluginIcon@2x.png create mode 100644 src/SampleDIPlugin/manifest.json create mode 100644 src/SampleDIPlugin/property_inspector/css/property-inspector.css create mode 100644 src/SampleDIPlugin/property_inspector/css/sdpi.css create mode 100644 src/SampleDIPlugin/property_inspector/js/property-inspector.js create mode 100644 src/SampleDIPlugin/property_inspector/property_inspector.html rename src/SamplePlugin/{models => Models}/CounterSettingsModel.cs (100%) delete mode 100644 src/SamplePlugin/models/SampleActionSettingsModel.cs create mode 100644 src/SampleWebPlugin/Models/CounterSettingsModel.cs create mode 100644 src/SampleWebPlugin/Models/SampleActionSettingsModel.cs create mode 100644 src/SampleWebPlugin/MySamplePluginAction.cs create mode 100644 src/SampleWebPlugin/MySamplePluginAction2.cs create mode 100644 src/SampleWebPlugin/Program.cs create mode 100644 src/SampleWebPlugin/SampleWebPlugin.csproj create mode 100644 src/SampleWebPlugin/Startup.cs create mode 100644 src/SampleWebPlugin/appsettings.Development.json create mode 100644 src/SampleWebPlugin/appsettings.json create mode 100644 src/SampleWebPlugin/images/Fritz.png create mode 100644 src/SampleWebPlugin/images/actionDefaultImage.png create mode 100644 src/SampleWebPlugin/images/actionDefaultImage@2x.png create mode 100644 src/SampleWebPlugin/images/actionIcon.png create mode 100644 src/SampleWebPlugin/images/actionIcon@2x.png create mode 100644 src/SampleWebPlugin/images/category/categoryIcon.png create mode 100644 src/SampleWebPlugin/images/category/categoryIcon@2x.png create mode 100644 src/SampleWebPlugin/images/pluginIcon.png create mode 100644 src/SampleWebPlugin/images/pluginIcon@2x.png create mode 100644 src/SampleWebPlugin/manifest.json create mode 100644 src/SampleWebPlugin/property_inspector/css/property-inspector.css create mode 100644 src/SampleWebPlugin/property_inspector/css/sdpi.css create mode 100644 src/SampleWebPlugin/property_inspector/js/property-inspector.js create mode 100644 src/SampleWebPlugin/property_inspector/property_inspector.html create mode 100644 src/StreamDeckLib/Extensions/DependencyInjectionExtensions.cs create mode 100644 src/StreamDeckLib/Extensions/HostingExtensions.cs create mode 100644 src/StreamDeckLib/HostedServices/StreamDeckHostedService.cs create mode 100644 src/StreamDeckLib/Models/StreamDeckRegistrationOptions.cs create mode 100644 src/StreamDeckLib/Models/StreamDeckToolkitOptions.cs diff --git a/Templates/StreamDeck.PluginTemplate.Csharp/content/_PluginName_Action.cs b/Templates/StreamDeck.PluginTemplate.Csharp/content/_PluginName_Action.cs index 4ff3243..f19fa7a 100644 --- a/Templates/StreamDeck.PluginTemplate.Csharp/content/_PluginName_Action.cs +++ b/Templates/StreamDeck.PluginTemplate.Csharp/content/_PluginName_Action.cs @@ -10,21 +10,6 @@ namespace _StreamDeckPlugin_ [ActionUuid(Uuid="$(UUID)")] public class $(PluginName)Action : BaseStreamDeckActionWithSettingsModel { - // Cheer 342 cpayette 15/2/19 - // Cheer 100 devlead 15/2/19 - // Cheer 200 kevin_downs Jan 11, 2019 - // Cheer 401 cpayette Jan 15, 2019 - // Cheer 2501 themikejolley Jan 15, 2019 - // Cheer 100 wolfgang_blitz Jan 15, 2019 - // Cheer 157 jongalloway Jan 15, 2019 - // Cheer 100 johanb Jan 15, 2019 - // Cheer 400 faniereynders Jan 15, 2019 - // Cheer 100 TomMcQ Jan 15, 2019 - // Cheer 361 Crazy240sx Jan 15, 2019 - // Cheer 600 yarrgh Jan 15, 2019 - // Cheer 1030 kulu83 Jan 15, 2019 - // Cheer 2500 Auth0Bobby Jan 15, 2019 - public override async Task OnKeyUp(StreamDeckEventPayload args) { SettingsModel.Counter++; diff --git a/Templates/StreamDeck.PluginTemplate.Csharp/content/_StreamDeckPlugin_.csproj b/Templates/StreamDeck.PluginTemplate.Csharp/content/_StreamDeckPlugin_.csproj index 21ab1ef..d270ef0 100644 --- a/Templates/StreamDeck.PluginTemplate.Csharp/content/_StreamDeckPlugin_.csproj +++ b/Templates/StreamDeck.PluginTemplate.Csharp/content/_StreamDeckPlugin_.csproj @@ -23,12 +23,12 @@ - - + + - - - + + + diff --git a/Templates/StreamDeck.PluginTemplate.Csharp/global.json b/Templates/StreamDeck.PluginTemplate.Csharp/global.json index 14c55b7..6feb749 100644 --- a/Templates/StreamDeck.PluginTemplate.Csharp/global.json +++ b/Templates/StreamDeck.PluginTemplate.Csharp/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "2.2.100" + "version": "3.1.201" } } \ No newline at end of file diff --git a/src/SampleDIPlugin/Models/CounterSettingsModel.cs b/src/SampleDIPlugin/Models/CounterSettingsModel.cs new file mode 100644 index 0000000..e5a539b --- /dev/null +++ b/src/SampleDIPlugin/Models/CounterSettingsModel.cs @@ -0,0 +1,7 @@ +namespace SampleDIPlugin.Models +{ + public class CounterSettingsModel + { + public int Counter { get; set; } = 0; + } +} diff --git a/src/SampleDIPlugin/Models/SampleActionSettingsModel.cs b/src/SampleDIPlugin/Models/SampleActionSettingsModel.cs new file mode 100644 index 0000000..b4200d3 --- /dev/null +++ b/src/SampleDIPlugin/Models/SampleActionSettingsModel.cs @@ -0,0 +1,7 @@ +namespace SampleDIPlugin.Models +{ + public class SampleActionSettingsModel + { + public int Counter { get; set; } = 0; + } +} diff --git a/src/SampleDIPlugin/MySamplePluginAction.cs b/src/SampleDIPlugin/MySamplePluginAction.cs new file mode 100644 index 0000000..8a1f303 --- /dev/null +++ b/src/SampleDIPlugin/MySamplePluginAction.cs @@ -0,0 +1,51 @@ +using SampleDIPlugin.Models; +using StreamDeckLib; +using StreamDeckLib.Messages; +using System.Threading.Tasks; + +namespace SampleDIPlugin +{ + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action")] + public class MySamplePluginAction : BaseStreamDeckActionWithSettingsModel + { + + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } + + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } + + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } +} diff --git a/src/SampleDIPlugin/MySamplePluginAction2.cs b/src/SampleDIPlugin/MySamplePluginAction2.cs new file mode 100644 index 0000000..64cb2d0 --- /dev/null +++ b/src/SampleDIPlugin/MySamplePluginAction2.cs @@ -0,0 +1,51 @@ +using SampleDIPlugin.Models; +using StreamDeckLib; +using StreamDeckLib.Messages; +using System.Threading.Tasks; + +namespace SampleDIPlugin +{ + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action2")] + public class MySamplePluginAction2 : BaseStreamDeckActionWithSettingsModel + { + + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } + + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } + + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } +} diff --git a/src/SampleDIPlugin/Program.cs b/src/SampleDIPlugin/Program.cs new file mode 100644 index 0000000..c01c63f --- /dev/null +++ b/src/SampleDIPlugin/Program.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.Hosting; +using StreamDeckLib.DependencyInjection; +using StreamDeckLib.Hosting; + +namespace SampleDIPlugin +{ + class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureStreamDeckToolkit(args) + .ConfigureServices((hostContext, services) => + { + services.AddStreamDeck(hostContext.Configuration, typeof(Program).Assembly); + }); + } +} diff --git a/src/SampleDIPlugin/SampleDIPlugin.csproj b/src/SampleDIPlugin/SampleDIPlugin.csproj new file mode 100644 index 0000000..da68948 --- /dev/null +++ b/src/SampleDIPlugin/SampleDIPlugin.csproj @@ -0,0 +1,86 @@ + + + + Exe + netcoreapp3.1 + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + + + + + + + + + + + diff --git a/src/SampleDIPlugin/appsettings.json b/src/SampleDIPlugin/appsettings.json new file mode 100644 index 0000000..56c5e52 --- /dev/null +++ b/src/SampleDIPlugin/appsettings.json @@ -0,0 +1,16 @@ +{ + "Serilog": { + "MinimumLevel": "Verbose", + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "log/sampleplugin.log", + "rollingInterval": "Day", + "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message} {NewLine}{Exception}" + } + } + ], + "Enrich": [ "FromLogContext" ] + } +} diff --git a/src/SampleDIPlugin/images/Fritz.png b/src/SampleDIPlugin/images/Fritz.png new file mode 100644 index 0000000000000000000000000000000000000000..e0f8970ab7b8d4c9192085dbc65ef655ef22010d GIT binary patch literal 34824 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 z�c=?0YIo_?l@yK&14tnyKyqF{zMrn~ZKAIu z;6R~kIzdJ*z+Rn61k0~$!UIh8xge2QL}%-77$g{#WS7Du7_6Cx<6tp|V7^cJPvqF< zaHs5Y8@uLUv;EW0ciehMH=`((`Hcg}9#w7@LqA=^r;sshBh&X0E|Ns+tjZl48dw(27WSX^PftHGWR3nd&Q-k8@J2f>rN=REK-D*FvV;Bs$tmw2 zzLHxgv&~6xD!AZe=23#!@>nUoAIdC#o>3F)rfwqDC28hF-vZZp$;b?w{;Yq7G8**;5Peo{GCMmN4wy znD$m@1DIF7mW4l`HJ83W_TjWQ-h|`Zxm{>m?tbi_;4E3trF}k@ zBGET8o6MQav_ul2+wSsM!IaZ$jSP)r@(8-N?8Ks{@>`HWQuufbZ{}TYLB=9V=qDGa zP1B^lhH=rdx1frp8K8LLFZJ`DsP0pmbfG0(${5QJ#KhNn9#wi0AGW= z^$4eRFq%mA(ckQpni5-5!DR#NX*UN4hqvH)>}bN6{j!RRBPesh%%g7x2)%oB;r@*Z zbiBqz>Y+!_GmCEdZT}6M51ta?75ssqqA@-v|4L84x9t(GF;5<{&0t^ek4;>A$8Z^l zeHCR5IQ`uT_hvYJbN?B|o#+Ait@N;a=nawl$^8eB--TMF!ajVa*v3nAP>pYh2y6d^ z7)-_R{175O#(7++llXSe&T)UZszE5Uu1f1+8;kkHcoV6X=VQOcbyl1#zH^S$mqb+G zRqqyx`?zdcoMn<>3gJEGW=xZQW26b;s@o;EYeX=!5PV2M@#wdY7{Qk#AF1OH9XE?DwRR<#HxM#&w~l5ofP;3tec0LY zi91z~gE5BJO{KN+_I$vW51!M+9DsjS-32{i4-6VzSbqC<&iu?1#RK>peC|GA7jw=~ zeAwHDMWCXJk!jz7_k`#@KMj8J^ipK2RCfkh0|Gww6NQ;fiQHRe z^3hy$3VX^OVsf|@(!2gWdWUYrp)T04tW4WA_4Mv>;^xzDwX7{FoJ=22;yd|mk*|aQ zMpwQQPzE4kiv^N-sjpzX{>6w6z00XV54P%{>ZFH>OuF>^#Ms&`xuBx+iT}`gI{6NF z7KU`zKM0{XR&#Xj&AdbvkcTbf2CM*?! z{rV+{{dpkC1dy0Z6mo)nep0pR?3Kyj_6E}YTLblZJ7Re0x7Z``hb{Zs1LVSM9n^^x zwe?(I)M>jN$KqnK<+tfRLhZC)->rPYGkrDBtr;=a2>^y6_4v*hI-i+fOnjsd{`d^2 zi9SK94#AgF=%3&TyGukGcwWg7 znmlG}nx)j_Sf3nz2N>hwdgB-QKi%$@B2@C;LuVKl+S+4wj!-+qRG$)oQ)8k(@V-b{ zrWg4H;-N#o9IFdjz2cC9=OgTqKBn(mL=EJT86oe*^f)Em5DrWH)V+DlxOe}I^6ceC zkhQdhM1bjX`lfdlUOTuY60&i7qo2617yra{Nl~dsgz{+rR@5`rk%p5A>497#?0XNO z1n$>~0)$h2r0%T=&QHuR*a}o%AN-D8kHsZ+BtYNI%+)go^x ziP@r1;kS9Jg{;vtPyV?GZFSN>4_;`2BO>R|Twvu8S7<{Yni;zJ4p>BAcmcc{uO70f zCD+@W1!JI508y=Op*lJprhn@+78+oX@f_8AkN*51aA-%Sl-aaB!$K!LSnc1@yEgw# zFKGZ;r2=$;+A}gcobgMeyUsg|3lb9ESFf^ozE7jICa$+GEWR6QA{xFl2JAAXKD}O$ zJhuj1Bb@S%rLa}-H6^f|=s3joA@Kr^OtcszHh%ydk2#>Q)0XEkMpMJBrGDZ6N3yKV z^@*OA-XnCQ?rIG1JJmQeBTp%DKXg%CHs<-k(ZbAf$nU}{?n9t1wxSzPD#cHVPe;H` z(OYMqK*KOa<=VTd@=qlG7z!9Lb&7-i>z)vs#`bqS(ouO-CGmW9?r8X|#bOlES`@x# zV}H#l@fWLNdd|P~Vn;7`wh4iOPkS3r3-dE*P-yPxQy)w*kZ6>wV?FY7_b4kBjz%s9 znw3SmzuqPB$>Rv|g6sXp))u_3u5R7IASN8lDewIHI&^_hM>7uh+IRa@put8-$&c0x zEn^Z5a(ygd=5EbbiT;rm$G>`A#R@RuU;K3tyh{3)s-mLtN!=n~DP`a6`t{5Bo`-Y4 z{vB%$&^^f~DAV>TiP#u~>pieDxexMFRl?rc!+@!mdBPq-*JF~3<1!3yMI4=-2%XM} zd94$2okxyk`Tl6(Z^RCHoV(qCZ$H|E88EGRZJ}E$y*{nK^c@+%|M%+?=_)m8gk_&?2r0$n2-BBjZ~f|tuVB*+(?~IY z%dMf4K>a4w9`+`G`i5$B#Bw=?%8XDH#Jw}578{!FM$cK~eMTq`vyUqf{2qZQ4ddcs z-3!yaO(%GmIuv4xaJO$T#Ns*0^RwX~GnkHN@QKpB2~w$d4-YH0BO;L~3w9XzAO2#} zRwL{0+!8Yf@c@2_IBC!b_rs?mO=^kgk~DzX`9-s`)3+fmVIg*VU$+_V0;g+u4=xW- zIuBsxi^Hg;xD*Ml8vfAOzlgtxf~1cKYJ$JJD$#EwEeX}syyP~ZbrZOdZKxgFZJ1VK zQpM?>Z&964<8PZGc(q3UrqNJ;mLDlnPU~J=Gfif?D)~uaA=sC2iUnqh2l;(M`O;}i1&99B60L%b$_@e>g zpsB@&JJ9tR7{jFh5pH7v~w`fW4` zN*sUpAt^+rhpUdk-dH@$M)VI__q&IZjc*0X&%UW+q2)bHFo@`trt!+Ga~SWv3|(~R5q^r~Yc~9qREhA4R6}y$Af(ZI<&geQYgGBGo==|TL)CXAVrCm96-GUKulH^9E=4@suF8Zs%&! zw9^;+#7A5X|M)a{MVZGo5jHYPtveaS7Pg4BTXgAseSMwWFA+6_${d+aoP|x+{YTC- zIX--ggrJT(HAAV%-$v-^xZswfoCvC{w(|Ve2$+Dqg&%!-$EAs9?VZ7pBQ!^cjDDQN z&`B6=u_uBeVCe77=CH_FJN)9}qOI1~0l9EaCYCU~Rcl+55Z}#;QKSX_&sOZOSjIl& zx^`m-3hzmD;j4Ei?ivnkwC-OY&0v-e+S$+Gs2!CN?aVblf=mPCSEfIO8de+Zn)pg+ z<%EgDL_v!`Hvg&Jur*qDNgOV+3GeqgB0nIXdAT4$aRPl7528@^HxGYXVHED=OVK1d zczL^HdkHN^=fZ%dzy6raCVm&7O8r{6Z{NPvyMl+V1Pyq;j(XS+;~R`a52=M8LZJ>S zCi)5Wa;eX7++=^L7ABwa?W5&v7C$#}%u`FK?#;!WVPMRaQ(>5su1`cUQgi(5xXr*| z9%(D&tp5xEAq<13oHqsnW}kWS8Ve_XA9hsB1@sOAIe6e9_xz_i`)pir@Vrb}7 z@U)puy3RO7$~6{3Omt%plD{=dC$1DbVdw{>tsM&+wxMUxGe-IZ>?yHbo_*9sx%rDI z)#U6r%mGAy;_%|QzPHkqNh}884G`n)<`xQmcaaN#XnwZKn-|(_?&ad`~Zu< z8w;Cqj2sgY)!F~L=aw{|t8r7Uil;=l(D>CRgW~CQJZzfC4m9_k`s3tgaW*Y$Sw4ML z*MDb-?pVyu`jlA5v@d!J__F))YI&un@^V^7*=UZ=&Vsv$q^jt(q z+5PC68I}*o&o}2C`_65oU5R({R_F*=lE9RpcNPL@lA<^=1niBAEq!-Pc40iey4##v zOA`uTm(s#CMINzg z9s(n&@-{|Kh2eow}MC z>OGv&OS4ZD%+`#BaS2Z2!P&4PU-nfeh1Imp(iVT4_FnO9{G)vzTBjo3`$G5Nj`LB4 zB`qGr&z$g_4yLW8MlbFr?`b493m;7ChtzwzolzaZ5E8otYAx&-=_CB^VK!w-m{wwp ziLfsmUwbvxL5zK|DqIw9>B&hdS8Ym+3W0k|+Ek{=D_yKWWM+~WW8Su;BC$ z-h>?V$he`PoNYsAzW1AuRNPqx8S^^qF#~6od;bZNwk_Dm%xN|UGWdg9DvR&|v1UD+ zE1>kaWgDUuJ9uPUKOAon;QDkFU1v6&AXC$%eU;j1desrb>2un$xBF{gdt3ea2dpWJ zO3h%kaBH#D7~|FS{4}-1W=3=?@Sgru=bUQ?C5SbH>%D5(@HqZAy&-VS#A(?Q>&yT# z_c!x=>oL>P4;pA`jkGaw&#xqRZ-N`9ubrjp5R^V?W5s1Z)&0whpL{H`mY^t=)zEwbkrGLyjm)-&e$}Jat=jXNLc&$ z8&c@*%=}w19B|avB5xz?EU`!a&wXYho8H%$$&qXk4T%=j7hwvHLTR4aLMWcoEl*;rEQ{O1!Nt%0sG(8U!i@?AQ$*Ci8-C-veT^G< zj0vs(P?Ht>?$q>*0_j@#4svBne?DHtPkf(O<^>d6_&A@ z$}To{#0^&>Me$*gm!le^?@TxW$|2>ZL4iznqFxwY=`FRBf8`4G?nXJ#sMAc?dm>c^-+V$!hLU7isCd zKn|AuR4X78**F!|09rxcIHl-sTq$@Xs-Z~~){ikgy|aX@Vk+GO>&e(_Y_mAebq-Wt zM4JczJv4p9KE(`m-5D!4^$1QB)$bx?$X81uy#X0z-P$NI<-qyyxtjS|$zMIa3Cof# zfmRtyLcGgJNv~sUi{nDnhk+@*DJrqBjn!T>yNpIe?ua}>I`!Tu|*2Grw2Fk`pD`FHtIIhv4&Y%(U@U&f&n>$2iTt){XunUgT*GPyHZ?cBk26l(1^u|eaPHALP;^c(b3gn5|J^dQo zMFX6`r|a)9r6PL9?OYQ1c&eG(k!)8V8Rrp(w?)&4#Gi%wG!Q~@waL6PSc5 zFixsf3QNj6Tz@kh!<J{pXh>8z8m6gx%+ibqP!1{l*EMEzG~IP#{|QAMUYBb zD$8f3GE&G~906~SUXcUTW+vdCvC$zFARa8^7(*k-Vi=07g0z9XHkbh{VZ!!~L z-pXB{hj8~EYe26|uNxRE_pDmgG9H<`?T!0#PsrBcIgxV|9u2MK4U#i>1Ao^#XJsnJKf=RusiRIa^*&TAI@-XN13S>o1>;%) zj18Z;aP)UA&Z5S^nr5;K);Xps5I>muRSPQ#JBsmgDoht$HxUP?l;FectGe@0C_Zpl z4{i-_s2?8jZe)sj3W=fV7hG2F16Zq#u=^w|+}Sag!$@!&H4USms(14kNYO|~=m4nu z?4N86AhxAhv?%d&fQNhtE@A!0kC;Mj`;CM!qtptSb(*XzSMwt*F&l7ws)9?RD!b3B z1TtPReL~Fp<0*XY`F>U^27H-9CtkHv@}3G{u6oCtZBQ>YSe1Za;{uR7u%={qNu`-w`i2Lwd)q>JTA}n8w>&*sX$v zQC(@o6lJon9ivJMIQBu$F!(390kp?udiEyq+mCr8cpRcAj=M<_eh!hz$4>tm4_knJ zSaropGI8*r6Cu_IX7-s2>6bikb8R>;+D{_~5?B$|RrLgXaANxQa`eIGe#ilpo*4Q; zjP9q<7U!3cE`{^!oo9SgoIlEDRzDp9jFg^M@>fA4#Sk78#P9(ulP{WcfT>i|PXI7z zZEM=@pD5;tgT9V<3eD>!_X3{)%pKJ1lT~~AJ2OYe*Tjwvf3(0S>BQr~a~EQ9%>fg7 zYW#fG2c7MBY+e8f=yHmG6Bp?||3_RU5UU(!tanJSObLfK)ZEZ5+aO??Jp(9=n%wCj zir6I4LEJEQ25&}LYD965YlseAuH^f-*17eo?b^asqZkaOzM>#Pi{U`aoLM| z$cl-QH61E=+cYqboO15zr||G_2_Zp26$w_3YOUe$}yqRmV*l4ZkA1J+69P zc)Jnm%)7#yZjH9gChIU7{eAgQA}5*#{H-F^3s&F$iIL7m4CvLqa~T6@h?=_ZOF8rJ z3|woc+HciUQ9szUtJD2Ce|-&4ce1oBYD^~ZeK!AX?zcoHdG*W-57CfGl#sJViy9fe zgtIo_Obk3bnp}OM+D)Obd2&*Pr}P5w>!v2G(vTHM!Rc?r|M9Fq8SHH}(n`FC3vjGS zO8DUaypCIJkDfr+Mz2o}kbqD4{*6-kFg5sFmNj2~{&&9L6Po>iLSFEo8r4ypY`VnAJ6P5whzj96p4$A8vh%KN zo`9C{t8uJ;L>{<{fErIy5;Agj28HdeL7K+K#=v|49+MO1s$SR{MdQH>GRFN&tmP|m z=o|eh-aWOPB~}1SDlx!)rHntJoj=@Z{jgWzWv5Ex{@LM%3Bn}aLe46lJBI?lkuz46 z%YdVWlK`<2Az@L7!3g<}RNxB1BowP*fN?lbTs9?Pl5-+-Cf1jClzHdSX2R0eEnB&J z?^n7pfXdz2I|8^wy@Zn?9Z)J|c2`3%0`>}1O|cHeU+a|2HtxYVH>4amk8_Hp|7tTjw`4li@$kk$zFDufN^tC z&rl~pn3Ud~1Yatzr>Hw{-+NbA@fk9^_yI$g0l6?TB>-RpsvN^0S|Iw$I*_Tyj>O;is?cd;LntUH(<{S zoF%eBgOlTY(@fz5raErHLWp638PXlF8x}HX1Sgz}`b3d<6)y+tg|o?^-$4_wCpMCo zDC~RNf{IMw^u6RaEkqaOZUH6NE*m)?L9a=klGZzTZ2wRPt=uatKADgi{uhY+-ZZ%| zrWPBMtN~M*h6C${lC0huq|lfk*vuLPD@9A|O@LLVA4q1}9|JXDJ(--v^(_IXc}MEf z!4$NxujHU_oZEq8!{@7b`+FFDV7Xu#P{?@~cqZpL4QLPK!csfA(B%OT5c_XzRjfP( z10$JTgU%J>sHbHqACmUUI8gq`c+Dz0xHbWR{ez1Z#$DNC04!^Ih%JJZm%3T}3#m2_ zz>CB4s!4}AE|M}7=Ui)h7*~6xqp^dv zsx%$ooz2UuTY(Eoe*>l!o*|7xdlXKt2wfh%m~ki9IK%3Kv51=;S1X)(UP!RWgAQOr z_+x|wDeJi?ahA&kGcBzWo-fcmrdH( zvP&_d@lj96OwPt_1hVkX@QUg(B|~qC&@L``%4|@x=(#%^{Q0V;bmR41%nZQ(R#qya zZ|6rRjNta=I}f0q`23t-9oDYyhluFrqoU(TjgJW>jmy4_Bc16tIVW{Q%JM0LlXUum zU56yP`;HBhFW?ood8waVNV4!XoOvpvfa}^x1QzKAbMks0b=YX)^8O)yyIeXv;<|K0 z-0=3|_=bAF8n?R=7z_!p!u4rK6yQbcj&KukMuZTejm!lK%UIegJB8gJzZheq13){#j_u;9kLe>X!+F%6JW*TO_7aJkQp`^y@1EjUhC$hH|H<>y|ea0vNw;9qjA zLnGYdIYJK3D#K=hSZwn9;dx;iqwsWG_Lp_p5+)OIre z-|MGHC8NtF)B>P>-ks>tgMs?lL&T7RCbGx4#0y?#L2b-?0fl@wSI=U z!-1TrYOUH8Y`FoBeR@(@x!W||T{YOEa#bM-Bcry1VuN#B9Hs^HUW^y)(4`vU^equ- zUI4MhTj2TsHecLSJ0FvC%-RuW8iPcB-KyKUWhL{Yx*#nVpdHb?+)y#Sb(WBeB|g}-^Mzo6`_Yz_#$kk~Y@ zZ3PN;Y3bagf#2p7121mK0@h5@=_vie*SaGFq)utauO4$}0M>|bWtvz#Xv#V+0A~CV zagq6VnrU>Ap%_eELts^KdVq>3x#&}{m#Fgq@`a!(=ud4Y*I(H`TJ)4+w~c3r6ZE#0 z9j_rxSF)$ounkFqt-Us>7=&v4HrmCD-aVhlvF;D=>(c|fZiDI-BFRwiN!mY5OVU2f z8kD1Sr&*PfKrQUD32R|n(&r8}A{1xS@tg?*X`j#%h%#8pyO4Gk9*`+Gc%@YaoceOd zBmqtQs7aOX3cpXd^B-#j(@dwFk^&tVIYUlkH)|Adhh4Gg67`&vpJzdZ=k%{OB_Z`c z?oepH8hm$6$fKjYHGu#B);LBqV&qAL$vN4v%?Yvo2~{QVMo8|}^*5||y;{_rTMTR- zKmuWI9Np1!L6fvvVDqW^6?pHEf_+?3Yw>$cZ;%L@)CQB*26M7FU!kYyIUm^ryiq*c zChyvr`2eJ4I*63ixue*T*$2$zNA((f_IYpx@2?u8WlCy0rQ}15+Cl+&Dk-E7-#ihfhRQ&r;CY^r$@>JbD-;%!3r=T{9-^W5fmKs z3802p-X45s<&3xyu~QBk-=#{*|2Rp<2G)I%tNN3wPh?BwOGpp}wAO%Lbx}E{9vIQS zVLk%xJM#9WGCCmk?Vy<#!Z=16s`@2#!N3u#t;SI5dYpQiX@tVaBZus6e7!~G1=Y)1#RT9?5+wW07`#LjHCcMDzir_q!L2bm1XGzD{ z?n?)82}N`Om1Sa+f=33iHrXCrsMINB0YTmh;U9qtjLe|Erp8y`8~gL~U>GD17ncDG zF2cfJ+oqex|57%jtfWL9B>vwCQ8qF%!eDA>_%D>W8T(?~K9%`A{jdgzr_h419b^BP z(RO{629^Pvg_SJc*)MIIaI0JF?_JL<*we4v*+Hw(n8%~M3qHRDcC08qZr-GJl2py${V zsj4VWVe)=kH(~PI<$JmSj zgz7YwljouVs<4uYp(JD`W|EyWNjlpMSO>67Z@?_DjELs;`^#D-A{6ok4jVQto$vX0 zAVfhX?e9?b;vS-9@F_nME!6f(-{jD;>4PzFf(M_1O@Mma(#{8blG5;9!69{L*ee!@ zA!%hIgcZ9l!vNMjCs@bMdVk5HYKH#P+ehUBVCjrE_ARJ$Vo1#!=84P52dGy%U-mxS z3RH!MECwN2WpJDSU3fj=DL)YJCGl;US$Dh7xfb+B5m0-QE*zuJmm-DkJ{Apz9Y73e z3x!V+$Xi%iY$Q_uRh%B8o^uGZ`mRt}d{giND!h6oubCv4DCWrbzs4l{uGj_Qpab&f zB>h)7`ctOTHnv1(uX6!r;PX)>n%l<>UK%;u!;_-v0JtguExhwBv=!)ugbpH#c9bn& zGlKNmvs2_H(dwjAqG6gBR|JP3#AD+X5Nrtf{9v7C5`dhFWi|sfFW=&}fAVm1YkHi# z-#)Za_RyNGQE_)T}HX5-ybud4Pvg zw;0F5J4(KJf408Q9;p2#)|6$}90r)>U~ zDWb^JBdFYQq~HcP44{>Pak{U8KY9Z;`nq&XBmiMN8Ujrt(3sm^%>W1mL8xAUaBR>Fz(=q@D`@E)R08a23g0w17IJS4LHFN(d8Ay}pG&^uY<~SJ)dK^-s?$Qe&cVC(e zBtX+EpqT*oVKpivfUt_7VxB63cQ7!74*d4rGWZF5f7;PU5k;O(p%UTb;-a#zLaaqh z<6{G~qwRBUZf;fhoDpK1k9s};6$gLV>?yL@g z=5d-KpvN+eXukkj0}we?I_1|iymF_BgM-6YK0ZDL__TD2F0g=WSbU`99XMtqw^Y)<=;daD?@#l>;4*ycX}Ocjr6rhWn$C;Ru0xS z0{dojYXa^Eb!*%pY@!1MkFf`juGZj|W(j_SY-PzGIKmDLj3fa*dECYSGmHOwiYTJU zy#xufTZTxo2zAwmgBk{a;sA2wZYc&7cz~&`dM|G2VFG>w)eV7Nh?(>=-y>M%BOdg; zQBO}Voc~*jD56M91c~E@_?ah?6rZDU=!cjqJzmm7pRER5kfjUbQ}m#yi!Q9IzW+Et zY^1sLH$@m2bO75xQ*h6)0{d_^^8Zg)SJ#*3?-8!_Tv^1Uh$0UlNGf+E`Xjpyy zSc9RV>U}FqLzq*{y}xTi$gjZxCX|rG-b3Qg;D5^jpYOzD(mH(v8sD$PkNlZFr-&ko z{DFexqv61>8l?Obk9{RQW^8PLy}cEL1gg31A}lQoVP1&~^vSfoB02tFLqkIg{->Cb zA;9C~5R33PW{|7Tzom#GiaZWM5*i~RhakoxDTDFQ^N2s;>t2XE2sN_vpa9(ggxK55 zpq~AJB8n)|HiZIlXcQ=5ND+D>H5J-8f{#J;K0Y5#$N2Z8_)OV>R}n>?9(mEo$jF>F zDdk^_VqjnpjfUU^lKv+mK0aTCpEKj%Rzwj+o)LMDe^f*fMHEp)5k(YHL=i<4QA80% w6j4MGMHEp)5k(YHL=i<4QRHco|NFoH4;yPlLyNtgp8x;=07*qoM6N<$f+^C>wg3PC literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/actionDefaultImage.png b/src/SampleDIPlugin/images/actionDefaultImage.png new file mode 100644 index 0000000000000000000000000000000000000000..b558c11793674e7ddecc12eea69309882f8d23af GIT binary patch literal 4383 zcmV+)5#a8LP)Px_*-1n}RCoc^oClCpMHEC>F$|XS8n#JYTldfejWb( z_19nMB`cPbQ=m!+)vI4$l`UH~7;RQomMSPHP&}cH8#br|2Mz?~t{3VzJmnM>i^U36 zG3}i=aYC*7p9h^)m8DR(7_kTD58bMs$$Jj~`bD1)P-TBcL8Wd{|YgR4Lj_ z@H;m*SGN~4=m#Yk`ck@dX~m#jv~S-&CwR7RjvqUw%9Sgpzkv&*RIOSywejFVRbl`t zTc%900(A7q5idYhgj+Xl+?ZJaHE!HkFXYOVE29glN|h?5CzMbS&nREMd|Dg?NAgWr zhM9MsCuGaAyD~}!4ZZz#J>9$RxFZ1v1ZQ+h7@^9OEs>J^iML#-a%C;>O&esJcb))9 zd$DX0ewjiH46=>s*wLe^N|h?kp;oL|QBU}YY@Jl7cCA|8_Gkl{7t6^&fNWzzW>gXo zDo8RwMu9lz+;i2p-+U9zPWW9`gmZ_E9aU+OYhem+G4dVpt1g!mmN#&YjVgeH%e^XBS`E3Z`NwrdxB8r@Q1(5RFvTQRc$iVJBM zKn(hg*IrZOo_?BFCjnC1v(D1x1_WniPXWqgi38}%*|XK`Pd`=t2Mq8`Ew!TU+qS8^ z8a14ikBBTQY^^z~{;!~%9DNNNHdJVu=q0;^g?H@Op|)?|u5Fk9)%@e$9=h*7y={8+ z=~LuRX3m(Q)~#8i2Hkd>vyDA__M`^T>1Up)uI$%Oop=8Es#%K`Dkmo=p;1`*KO!S$ zef+WdaQbw$?B|~o>J(STQPGJ84;rM_tzD~b88XB=9$#N`zWh?%e#2!k(sAcQc&cPty&TP|0-7{>Mn)TIJT2M9+PWvNi^dpa`?p?a5 zFFyY~rEd0%K|B2Z`&EBA#SR@hq#B6J!$r$}`bigAw-|QM=*J&d{rdNJeecZ&ERNEP zd-hcKirMh)+i!d8|DHlPb%1a;{+*t^dZ|tVSlxQ{R87&8vGBKT-KtiJZTHDXAF0ni z`9$p(T?%3soZ6_7vujieC;^}f6)LEgGsOZR~B!31+tLpj&TMV;+69(6`|qxHKSE&_>u$!^M<<7;luioOho3#o|kf*5mL&X1VAi zQ2`7ETdYghuFlC(dC8(h`oxHWLz!X8%f(p4ac=VP6SJ~d;vCJruDC)^jLF#&^+~oe z^5*^cqr#m*TeL~r)Hi_kyZUO~x9=Ye;eU7*iIWa(-B19~+2@>N@)Djn!*3cmP#=v6 zg`tcs!j|Koc;YuuWD-o~p!jt;Ip`SoLF3a-(-UG+(R4`alA`(M_k00p{knC!E!w1Q z0~lc4B)UzTxQP)OR-xCC!sVzdF8bHRiE8JszXrttKrRE2n(RqV2_G>DXzG+H`gmpV z`$X9?n)VhsZrRs0YSz>)4{Ar#?%lf;DVlG79}&=Bn><<37TP;)(+7RQRnUu4-sQpz z^?UdqA{e8_j#by)a6>q|&^xkq;&aax$_r#rMNbH1Vf@G|^kwLW0f#JBbj7k|8VK|d zCa_;P5W9v+9F!*$w$U~*S0Gn8W&fT!RdWgBEiYyd4m9K&{$(6tRmJr>`HeU9fxx)Y zh?_KRszIxsmq!y$8g}>HdV#_f0)RFM>$>Q8TzJ~b!{C^528Gj#6^32;tyfvL0i0-r zv8ivKMt-@YBPIQ+>SI(1SVJ9oAUbJJh=IYHE$58it( zoTc9bfYx}n&>3QjB_&Q3*=D)2lG&oAq5>e3n2-i6z72ND*06y}``cyfK(2DmEx2p$ z4?n2VqJ*|S{d84BfT<-%Kf)Sdu>#PN5ym!~k@lm6mOc96hojm0cL31mpM9n~u(>GI3rVmM!R_U2!j<3n1DjWl3LOi@~{1 zWJc>V&IsBB5WEdB0ZBsYsz5;E^m7sYpy8vsxcbbgl$-l^8elu1@HMgcd|8zXL=BiO zEQnt?f#QQ`(W;diaNTt};06Z~c*EziO9U^c4uBb9n$U)1l#*CE(F?Ytm!v;{fqK7c(^-{i30Alc*N?6W3*=n++&cs5nO*EHz>cJD5FQk7C zf@NY@?hsjr8iA&b&?aI57qQ*Lgf>5N#0d4^z4xl+a+oBetonI*EJi?W+O}0w-g?Vx z$Wa+iz+b}Zp(o)mLjW&bvP3Oku|lm~y;^M*nF7ZF%x>8}E;cruo0D{}fS(GneHeUp z9893ViPuVGQ$4Zh^F*bAEG~~`ZRbO#J`R>n{`WhgS8^{g<{>GkS@6#5-84hBr{ZT*x2H*s;DL%L`fM&eu zJ_`ZVNN!iWK5d$+-=INS?J)6Zq5<+aNf4R{;8f&LS{+9!Ye1w=O#)hRPyi76#1sJs z&D2K-=6Q4HYPSNm6<}h=RjXcIe`dJEJWX31!?cYqR3O||QYZju%(!u0a5zq1kSG9Z zzR`s=2=SEys6HapeFPVwCLq*H3Tc3FKl;pxt#U&BrFUvwsTF1 zn&MtzF;F+q%di;IA$>=&rI-jVLb>{Q=1f`<#9cBnxHDsLY)X{^M`cVpUEM?)krXCl| z^YimH2cgvBKtsNvQfLkif8=-v#D6~am^O2svs|l*VK4cpjl|o1q~#A20;u@Js*8ZE zU8hcPQekdjilAu&5WrDCO2MB7Sjxh6=?6gIe)KN{ah^O8%oQXbfN0CuWZ`dJ?+*+g zuGWZwJ>&iN3suQZ22dk0Tyb6c2-yRfm8Cuak?{7_kkf=~x>)|WO>n2cMbU(_ixkZd z|CU1SH^O&C+u?oy2;a1Eb?{v}^vLMZ2{&J3_;qk@bH&9)<0R(YO(u;`$3}*W0IInR z9KR5k2JjW(R1dpc;iAP07itiqZJBGnINEH)bm-BDNq#4oZIc4;AH9|n;k2qF+*4OTF*iAC z$~FUFzMm~ucCNYVDz!jvyrQOXj|lUKfFSN;UsScZ012>0PtyS5$KgsF6LJwc2C;h_ zPWrketYA^k`;(!Qk>`g9!LV?4q$EBC5 ziIXOUn)AQnH{K+kI zD2s*vntqXI$Q<6;N5!WKw%E)UbS9uAM*OKi-o3u?I^hKX=W-@RX zE0JPfFcf9dgr@_5_;ADn4`_pv_o7e~B*0_vL|1Q=?TO$tb!<-}qa<4ydD?ssK-fy0 zR@4aL@tU#W`I0ld7_oQ#Wwm$ocU%O zx}MZ0xysoZ1`xtJfI@xKCmfV2!9_kYr+NZFe8er)E@F{$m&g3=rmwMR84(Yz+4hxN zWkco01@00ikt~JH16y4NZSrk>E>GiTEzuXB%f;Aefx|4?Ax?Lqj-<9{pRGDyaDg`L zTFKQBPAb?NVztq8h+=SmhvO9MKYWEG+ICTYqa3nzM;>U?|NOj9sb_>ufF`UZo)Pu3}h}yxQNr#_MNLf`F!JRlRh&F zpv7`C#6?78H;SJKy$fX#GVeV1Nf;?zfb^v?YdDNEKT-*B;XlLRfyH{tfUe~@uPI@zR_h=GZV)kU~U z5WJ}nN+6+V7var-D@zOqF%brh&zY6B5da~pQlYY9+xg5B`hsg?uKk%xCnviOf1goL ztZ)|rUaIrK;pY4Ayy%OzVrKujI?befj(U9IX3Sxk!8nPFCB20bpAb=5-+gR-(Mx1n zi2?|JHj16G%c1}=ccLPD9Pzt2HaaX0cepr+YsmBkl_-E1Fp*$ftuEr?sJ`Sb^20`$ z7er)j+yiF~#H4`$EF&ssdl^g$20~Y@^;GhzaqQv)nLmx(# Z{TJD_ZTpeL>URJD002ovPDHLkV1glRLSFy? literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/actionDefaultImage@2x.png b/src/SampleDIPlugin/images/actionDefaultImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..29705bfd51fc91f6cad43429f6bb12c40d11753f GIT binary patch literal 10851 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 literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/actionIcon.png b/src/SampleDIPlugin/images/actionIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..baf95bb260400e8a720c854de60a4758b8a8846f GIT binary patch literal 960 zcmV;x13&zUP)Px&dPzhw0OuuC-p)b=A|HS@v%Wsi1-R&zZ}anSahV z2YQ`O_-Ql(z<;q?r4llhHwF4H^78Wf<-A%-DsOL4hF=VO3BJC*FhoRPZEX#fuV2~a zkX{czKR;MzXIcKIfLg5al0US`{z59`3MRQ#*1gq(B%%ej|^l*KtKRaBqu`% zflot2__ngbIeax5$fP!sB^MPHF-yN;@{5a)M_+e0`*MYHcP=v%RW&sTrfibr@7*Xa z#?yudmffGb<>h$(3j?hK%FtA^lQ7U?6&^?1BD%&NMhM zfT$x!pdp)^tjo)I+u4cB)W>&yecU^>T8+Yj0=ElPLH_<_J3Bjk^;fQ5g)TfCr_Y>$ zF)ItT48*CpVW@ z30SH79k??2{{1+W zmWK3<3bDg>JpQZIrv`2mu|`_mioqik$-v z4GywG{%%5IB4Vh@Yk7IB8=&TU(%pOaaDae*v!n#q3k&%&D;_-f*%~)&?v#}YyWLJ$ zb&Px+(Md!>R9FekSP5*;R~-LV4@ZmA)?H_&t{6oc5gk&;997p?r-;T8lO+t@5MzRj z*_>r_1|@aOW(ej;v(SxE*TflBRY$d`wrH#WeLv6t`}%(WW46{}pX8VK-uHdq_xF9r z_ju2vUSOb&82K+=Q1;WOsJ?Yn^zos9Dpiyo<=(nBuTkKCub`JX0S~kBCh8s@RG~rz zDp# SREzsi>%kJh;!x%S(MWn@zPrFW{qwK7m#cL{pG3l%=dxsS;JIUR{gG&CR9f z&z_O`Ju6kj%KH2JQ~C1cl~TpU#q{9*eK!iSm~w{ZT51_8{?)2cU|^t@ke!v~^pC=V z0;*fLuI7Q#PoF%|?f-NIYu2bi)dK=Zw(#<$OHR9F<5e>!@$%(M%FD@dRuB}u#k~By z&cu>mF-l!l*sQ; z-7b+xuOPP9$J0}Hl&0dv#$d{+!ar}*rj1rGmscj~=uwO4@bGYI%{+n!4<1m;$&=DF z6lCE(-rl;SG!0V9XsEJO$V1(~YE}9*DM=Yd_ntjz;E*8}qj>!25p7<( zR{!3*g8YNBK(C-(P9|Gq>Wv!|GisC;+qrXRU6;xWb}g`E;L7F8m;W9jOZD>QlHL^^l&tW&=u0m?zi!v_yi zbW992Yu;S3T)%dW61Q%pIYT$V6JA7Dw?K*UD;u<`3sHVXO;`o@btROtUxvkr_ zY@xWxlQnC^O-UB&!GixdqT7c9_isaO=u$jDH$gFgdmxj2V)jJOG&)SEX^xW%+dlc;&i zmdfzJggQPGPdN6DVOMnT-aV77>XtKzOykF0yEN0Mad8yZv7>G`Y}AP6%$uj%a5>km zUe#?^mAt$>8qm8ptzNm3;O|V}%pKUjpZY{Z&>u$hFnK&A|t%&S}Yq@`HA6%WZau9EnEE2$dOt$a0h)6bmGeKvC@`Euea*tl*TZQi(1nocF6Q0+Q(G<`ege>XY9 z7T_BCeSEw$$%o%$-tW^#w^6Yu2m(UVGyK{7GF%C?y_Hq?;4jO(2gBB zB3-(4q_yFDiwTPrOUE|O0TUAvs2j(~5YB*uIW%E*IB&>=ksZ5C`9*-eY}TTMh2ko1 z;~XN##1jdC|Cw;9AQ@&FmoLwSW>l-c$x-&YwT8XtHHC=2I(Z@K@#} z7JS%J@WE3Q@nQ+|3W9)bE)`^)ly)IVHZtum1^BriCk^T!!pCJ5w%ROq*a9RB;1y^E zL4<30lfXmJT|Qgzp@1i!D=)sJi!~#Wz!l@6{n~*4-{VQ)jYm+TAX7@cf+EdDnUZhsfYP?GwV7zW~XudTY!swhaIP002ovPDHLkV1jAt B2o(ST literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/category/categoryIcon.png b/src/SampleDIPlugin/images/category/categoryIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..2132054e0f859241b8fb5c79d555e91e4a694b54 GIT binary patch literal 675 zcmV;U0$lxxP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01R|RSaeirbZlh+ zaBOvFX>Q>;1n>X=02p*dSaefwW^{L9a%BK;VQFr3E^cLXAT%y9E;VFFSW*B00sKis zK~zXf?bbg?R#6zo@tfr$7NzJQ_J@cR63s9XYN-r@tY{G@T}4r63mRMv5ve6b2r5FO zHE47z0v+0{MI<6hjYLfc{rL9OqLiK+fsK zW=dy~bMn@(Fp!kIG`xr3_=P(v#H0n!F$-4{TPtp2&t6WW30Lt&g%l~n8eEOS9>E*M zMBpzT;y#vwn!Ld&xN;N=a5V^f2Jau5EhRXK>lQ6r73}E#242AR;WjP(AoSVZqJAV~ z2H}RTL-PkKp_=SEG-(??!KLjxKjDVsIEHe33u;E@hOeRZpGS=fB-~J^&_qjU|1NVw zlOgo^mtHM&ZB)bLE=*kyR)n3TY4{TFp>J5HLM}IU&hC7SPz{<&D0JRf*e>w1Cp18NTC9R28s1$f#c36i64&q}x&u+ie*kLw09uj6#5KH#cle2@ zCDqu{5YV#jYY$yH&_m-&UK{G)gCsho`s1p>5JeBJ{fvp{Z2=^C(&Xb|)A9fS002ov JPDHLkV1fhjAu<2} literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/category/categoryIcon@2x.png b/src/SampleDIPlugin/images/category/categoryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e8541bb1cd7e8007c236c312dea60993ee6ff872 GIT binary patch literal 1221 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 Z{TJD_ZTpeL>URJD002ovPDHLkV1glRLSFy? literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/images/pluginIcon@2x.png b/src/SampleDIPlugin/images/pluginIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..29705bfd51fc91f6cad43429f6bb12c40d11753f GIT binary patch literal 10851 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 literal 0 HcmV?d00001 diff --git a/src/SampleDIPlugin/manifest.json b/src/SampleDIPlugin/manifest.json new file mode 100644 index 0000000..a6b0efb --- /dev/null +++ b/src/SampleDIPlugin/manifest.json @@ -0,0 +1,58 @@ +{ + "Actions": [ + { + "Icon": "images/actionIcon", + "Name": "SamplePluginAction", + "States": [ + { + "Image": "images/actionDefaultImage", + "TitleAlignment": "middle", + "FontSize": "16" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "How many times did you get pwned today? Keep track with this counter.", + "UUID": "com.csharpfritz.samplePlugin.action" + }, + { + "Icon": "images/actionIcon", + "Name": "SamplePluginAction2", + "States": [ + { + "Image": "images/actionDefaultImage", + "TitleAlignment": "middle", + "FontSize": "16" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "How many times did you get pwned today? Keep track with this counter.", + "UUID": "com.csharpfritz.samplePlugin.action2" + } + ], + "Category": "Fritz & Friends", + "CategoryIcon": "images/category/categoryIcon.png", + "Disabled": false, + "Author": "Jeffrey T. Fritz", + "CodePathWin": "SamplePlugin.cmd", + "CodePathMac": "SamplePlugin", + "PropertyInspectorPath": "property_inspector/property_inspector.html", + "Description": "The Sample Plugin", + "Name": "Sample Plugin", + "Icon": "images/pluginIcon", + "URL": "https://github.com/FritzAndFriends", + "Version": "1.3", + "SDKVersion": 2, + "Software": { + "MinimumVersion": "4.1" + }, + "OS": [ + { + "Platform": "mac", + "MinimumVersion" : "10.11" + }, + { + "Platform": "windows", + "MinimumVersion" : "10" + } + ] +} diff --git a/src/SampleDIPlugin/property_inspector/css/property-inspector.css b/src/SampleDIPlugin/property_inspector/css/property-inspector.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/SampleDIPlugin/property_inspector/css/property-inspector.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/SampleDIPlugin/property_inspector/css/sdpi.css b/src/SampleDIPlugin/property_inspector/css/sdpi.css new file mode 100644 index 0000000..eeaaa22 --- /dev/null +++ b/src/SampleDIPlugin/property_inspector/css/sdpi.css @@ -0,0 +1,1386 @@ +html { + --sdpi-bgcolor: #2D2D2D; + --sdpi-background: #3D3D3D; + --sdpi-color: #d8d8d8; + --sdpi-bordercolor: #3a3a3a; + --sdpi-borderradius: 0px; + --sdpi-width: 224px; + --sdpi-fontweight: 600; + --sdpi-letterspacing: -0.25pt; + height: 100%; + width: 100%; + overflow: hidden; +} + +html, body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 9pt; + background-color: var(--sdpi-bgcolor); + color: #9a9a9a; +} + +body { + height: 100%; + padding: 0; + overflow-x: hidden; + overflow-y: auto; + margin: 0; + -webkit-overflow-scrolling: touch; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; +} + +mark { + background-color: var(--sdpi-bgcolor); + color: var(--sdpi-color); +} + +.hidden { + display: none; +} + +hr, hr2 { + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + border-style: none; + background: var(--sdpi-background); + height: 1px; +} + +hr2, +.sdpi-heading { + display: flex; + flex-basis: 100%; + align-items: center; + color: inherit; + font-size: 9pt; + margin: 8px 0px; +} + + .sdpi-heading::before, + .sdpi-heading::after { + content: ""; + flex-grow: 1; + background: var(--sdpi-background); + height: 1px; + font-size: 0px; + line-height: 0px; + margin: 0px 16px; + } + +hr2 { + height: 2px; +} + +hr, hr2 { + margin-left: 16px; + margin-right: 16px; +} + +.sdpi-item-value, +option, +input, +select, +button { + font-size: 10pt; + font-weight: var(--sdpi-fontweight); + letter-spacing: var(--sdpi-letterspacing); +} + + + +.win .sdpi-item-value, +.win option, +.win input, +.win select, +.win button { + font-size: 11px; + font-style: normal; + letter-spacing: inherit; + font-weight: 100; +} + +.win button { + font-size: 12px; +} + +::-webkit-progress-value, +meter::-webkit-meter-optimum-value { + border-radius: 2px; + /* background: linear-gradient(#ccf, #99f 20%, #77f 45%, #77f 55%, #cdf); */ +} + +::-webkit-progress-bar, +meter::-webkit-meter-bar { + border-radius: 3px; + background: var(--sdpi-background); +} + + ::-webkit-progress-bar:active, + meter::-webkit-meter-bar:active { + border-radius: 3px; + background: #222222; + } + +::-webkit-progress-value:active, +meter::-webkit-meter-optimum-value:active { + background: #99f; +} + +progress, +progress.sdpi-item-value { + min-height: 5px !important; + height: 5px; + background-color: #303030; +} + +progress { + margin-top: 8px !important; + margin-bottom: 8px !important; +} + + .full progress, + progress.full { + margin-top: 3px !important; + } + +::-webkit-progress-inner-element { + background-color: transparent; +} + + +.sdpi-item[type="progress"] { + margin-top: 4px !important; + margin-bottom: 12px; + min-height: 15px; +} + +.sdpi-item-child.full:last-child { + margin-bottom: 4px; +} + +.tabs { + /** + * Setting display to flex makes this container lay + * out its children using flexbox, the exact same + * as in the above "Stepper input" example. + */ + display: flex; + border-bottom: 1px solid #D7DBDD; +} + +.tab { + cursor: pointer; + padding: 5px 30px; + color: #16a2d7; + font-size: 9pt; + border-bottom: 2px solid transparent; +} + + .tab.is-tab-selected { + border-bottom-color: #4ebbe4; + } + +select { + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + background: url(caret.svg) no-repeat 97% center; +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button, +select { + color: var(--sdpi-color); + border: 1pt solid #303030; + font-size: 8pt; + background-color: var(--sdpi-background); + border-radius: var(--sdpi-borderradius); +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button { + border: 1pt solid var(--sdpi-color); + border-radius: var(--sdpi-borderradius); + min-height: 23px !important; + height: 23px !important; + margin-right: 8px; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type="file"] { + border-radius: var(--sdpi-borderradius); + max-width: 220px; +} + + +option { + height: 1.5em; + padding: 4px; +} + +/* SDPI */ + +.sdpi-wrapper { + overflow-x: hidden; +} + +.sdpi-item { + display: flex; + flex-direction: row; + min-height: 32px; + align-items: center; + margin-top: 2px; + max-width: 344px; +} + + .sdpi-item:first-child { + margin-top: 1px; + } + + .sdpi-item:last-child { + margin-bottom: 0px; + } + + .sdpi-item > *:not(.sdpi-item-label):not(meter):not(details) { + min-height: 26px; + padding: 0px 4px 0px 4px; + } + + .sdpi-item > *:not(.sdpi-item-label.empty):not(meter) { + min-height: 26px; + padding: 0px 4px 0px 4px; + } + + +.sdpi-item-group { + padding: 0 !important; +} + +meter.sdpi-item-value { + margin-left: 6px; +} + +.sdpi-item[type="group"] { + display: block; + margin-top: 12px; + margin-bottom: 12px; + /* border: 1px solid white; */ + flex-direction: unset; + text-align: left; +} + + .sdpi-item[type="group"] > .sdpi-item-label, + .sdpi-item[type="group"].sdpi-item-label { + width: 96%; + text-align: left; + font-weight: 700; + margin-bottom: 4px; + padding-left: 4px; + } + +dl, +ul, +ol { + -webkit-margin-before: 0px; + -webkit-margin-after: 4px; + -webkit-padding-start: 1em; + max-height: 90px; + overflow-y: scroll; + cursor: pointer; + user-select: none; +} + + table.sdpi-item-value, + dl.sdpi-item-value, + ul.sdpi-item-value, + ol.sdpi-item-value { + -webkit-margin-before: 4px; + -webkit-margin-after: 8px; + -webkit-padding-start: 1em; + width: var(--sdpi-width); + text-align: center; + } + +table > caption { + margin: 2px; +} + +.list, +.sdpi-item[type="list"] { + align-items: baseline; +} + +.sdpi-item-label { + text-align: right; + flex: none; + width: 94px; + padding-right: 4px; + font-weight: 600; + -webkit-user-select: none; +} + + .win .sdpi-item-label, + .sdpi-item-label > small { + font-weight: normal; + } + + .sdpi-item-label:after { + content: ": "; + } + + .sdpi-item-label.empty:after { + content: ""; + } + +.sdpi-test, +.sdpi-item-value { + flex: 1 0 0; + /* flex-grow: 1; + flex-shrink: 0; */ + margin-right: 14px; + margin-left: 4px; + justify-content: space-evenly; +} + +canvas.sdpi-item-value { + max-width: 144px; + max-height: 144px; + width: 144px; + height: 144px; + margin: 0 auto; + cursor: pointer; +} + +input.sdpi-item-value { + margin-left: 5px; +} + +.sdpi-item-value button, +button.sdpi-item-value { + margin-left: 7px; + margin-right: 19px; +} + +.sdpi-item-value.range { + margin-left: 0px; +} + +table, +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > dl, +.sdpi-item-value > ul, +.sdpi-item-value > ol { + list-style-type: none; + list-style-position: outside; + margin-left: -4px; + margin-right: -4px; + padding: 4px; + border: 1px solid var(--sdpi-bordercolor); +} + +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > ol { + list-style-type: none; + list-style-position: inside; + margin-left: 5px; + margin-right: 12px; + padding: 4px !important; +} + + ol.sdpi-item-value, + .sdpi-item-value > ol[listtype="none"] { + list-style-type: none; + } + + ol.sdpi-item-value[type="decimal"], + .sdpi-item-value > ol[type="decimal"] { + list-style-type: decimal; + } + + ol.sdpi-item-value[type="decimal-leading-zero"], + .sdpi-item-value > ol[type="decimal-leading-zero"] { + list-style-type: decimal-leading-zero; + } + + ol.sdpi-item-value[type="lower-alpha"], + .sdpi-item-value > ol[type="lower-alpha"] { + list-style-type: lower-alpha; + } + + ol.sdpi-item-value[type="upper-alpha"], + .sdpi-item-value > ol[type="upper-alpha"] { + list-style-type: upper-alpha; + } + + ol.sdpi-item-value[type="upper-roman"], + .sdpi-item-value > ol[type="upper-roman"] { + list-style-type: upper-roman; + } + + ol.sdpi-item-value[type="lower-roman"], + .sdpi-item-value > ol[type="lower-roman"] { + list-style-type: upper-roman; + } + + tr:nth-child(even), + .sdpi-item-value > ul > li:nth-child(even), + .sdpi-item-value > ol > li:nth-child(even), + li:nth-child(even) { + background-color: rgba(0,0,0,.2) + } + + td:hover, + .sdpi-item-value > ul > li:hover:nth-child(even), + .sdpi-item-value > ol > li:hover:nth-child(even), + li:hover:nth-child(even), + li:hover { + background-color: rgba(255,255,255,.1); + } + +td.selected, +td.selected:hover, +li.selected:hover, +li.selected { + color: white; + background-color: #77f; +} + +tr { + border: 1px solid var(--sdpi-bordercolor); +} + +td { + border-right: 1px solid var(--sdpi-bordercolor); + -webkit-user-select: none; +} + + tr:last-child, + td:last-child { + border: none; + } + +.sdpi-item-value.select, +.sdpi-item-value > select { + margin-right: 13px; + margin-left: 4px; +} + +.sdpi-item-child, +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0.4em; + margin-right: 4px; +} + + .full, + .full *, + .sdpi-item-value.full, + .sdpi-item-child > full > *, + .sdpi-item-child.full, + .sdpi-item-child.full > *, + .full > .sdpi-item-child, + .full > .sdpi-item-child > * { + display: flex; + flex: 1 1 0; + margin-bottom: 4px; + margin-left: 0px; + width: 100%; + justify-content: space-evenly; + } + +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0px; +} + +::-webkit-calendar-picker-indicator:focus, +input[type=file]::-webkit-file-upload-button:focus, +button:focus, +textarea:focus, +input:focus, +select:focus, +option:focus, +details:focus, +summary:focus, +.custom-select select { + outline: none; +} + +summary { + cursor: default; + -webkit-user-select: none; +} + + .pointer, + summary .pointer { + cursor: pointer; + } + +details.message { + padding: 4px 18px 4px 12px; +} + + details.message summary { + font-size: 10pt; + font-weight: 600; + min-height: 18px; + } + + details.message:first-child { + margin-top: 4px; + margin-left: 0; + padding-left: 106px; + } + + details.message h1 { + text-align: left; + } + +.message > summary::-webkit-details-marker { + display: none; +} + +.info20, +.question, +.caution, +.info { + background-repeat: no-repeat; + background-position: 70px center; +} + +.info20 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 Z M10,8 C8.8954305,8 8,8.84275812 8,9.88235294 L8,16.1176471 C8,17.1572419 8.8954305,18 10,18 C11.1045695,18 12,17.1572419 12,16.1176471 L12,9.88235294 C12,8.84275812 11.1045695,8 10,8 Z M10,3 C8.8954305,3 8,3.88165465 8,4.96923077 L8,5.03076923 C8,6.11834535 8.8954305,7 10,7 C11.1045695,7 12,6.11834535 12,5.03076923 L12,4.96923077 C12,3.88165465 11.1045695,3 10,3 Z'/%3E%3C/svg%3E%0A"); +} + +.info { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M10,8 C9.44771525,8 9,8.42137906 9,8.94117647 L9,14.0588235 C9,14.5786209 9.44771525,15 10,15 C10.5522847,15 11,14.5786209 11,14.0588235 L11,8.94117647 C11,8.42137906 10.5522847,8 10,8 Z M10,5 C9.44771525,5 9,5.44082732 9,5.98461538 L9,6.01538462 C9,6.55917268 9.44771525,7 10,7 C10.5522847,7 11,6.55917268 11,6.01538462 L11,5.98461538 C11,5.44082732 10.5522847,5 10,5 Z'/%3E%3C/svg%3E%0A"); +} + +.info2 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15'%3E%3Cpath fill='%23999' d='M7.5,15 C3.35786438,15 0,11.6421356 0,7.5 C0,3.35786438 3.35786438,0 7.5,0 C11.6421356,0 15,3.35786438 15,7.5 C15,11.6421356 11.6421356,15 7.5,15 Z M7.5,2 C6.67157287,2 6,2.66124098 6,3.47692307 L6,3.52307693 C6,4.33875902 6.67157287,5 7.5,5 C8.32842705,5 9,4.33875902 9,3.52307693 L9,3.47692307 C9,2.66124098 8.32842705,2 7.5,2 Z M5,6 L5,7.02155172 L6,7 L6,12 L5,12.0076778 L5,13 L10,13 L10,12 L9,12.0076778 L9,6 L5,6 Z'/%3E%3C/svg%3E%0A"); +} + +.sdpi-more-info { + background-image: linear-gradient(to right, #00000000 0%,#00000040 80%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpolygon fill='%23999' points='4 7 8 7 8 5 12 8 8 11 8 9 4 9'/%3E%3C/svg%3E%0A"); +} + +.caution { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' fill-rule='evenodd' d='M9.03952676,0.746646542 C9.57068894,-0.245797319 10.4285735,-0.25196227 10.9630352,0.746646542 L19.7705903,17.2030214 C20.3017525,18.1954653 19.8777595,19 18.8371387,19 L1.16542323,19 C0.118729947,19 -0.302490098,18.2016302 0.231971607,17.2030214 L9.03952676,0.746646542 Z M10,2.25584053 L1.9601405,17.3478261 L18.04099,17.3478261 L10,2.25584053 Z M10,5.9375 C10.531043,5.9375 10.9615385,6.37373537 10.9615385,6.91185897 L10.9615385,11.6923077 C10.9615385,12.2304313 10.531043,12.6666667 10,12.6666667 C9.46895697,12.6666667 9.03846154,12.2304313 9.03846154,11.6923077 L9.03846154,6.91185897 C9.03846154,6.37373537 9.46895697,5.9375 10,5.9375 Z M10,13.4583333 C10.6372516,13.4583333 11.1538462,13.9818158 11.1538462,14.6275641 L11.1538462,14.6641026 C11.1538462,15.3098509 10.6372516,15.8333333 10,15.8333333 C9.36274837,15.8333333 8.84615385,15.3098509 8.84615385,14.6641026 L8.84615385,14.6275641 C8.84615385,13.9818158 9.36274837,13.4583333 10,13.4583333 Z'/%3E%3C/svg%3E%0A"); +} + +.question { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M6.77783203,7.65332031 C6.77783203,7.84798274 6.85929281,8.02888914 7.0222168,8.19604492 C7.18514079,8.36320071 7.38508996,8.44677734 7.62207031,8.44677734 C8.02409055,8.44677734 8.29703704,8.20768468 8.44091797,7.72949219 C8.59326248,7.27245865 8.77945854,6.92651485 8.99951172,6.69165039 C9.2195649,6.45678594 9.56233491,6.33935547 10.027832,6.33935547 C10.4256205,6.33935547 10.7006836,6.37695313 11.0021973,6.68847656 C11.652832,7.53271484 10.942627,8.472229 10.3750916,9.1321106 C9.80755615,9.79199219 8.29492188,11.9897461 10.027832,12.1347656 C10.4498423,12.1700818 10.7027991,11.9147157 10.7832031,11.4746094 C11.0021973,9.59857178 13.1254883,8.82415771 13.1254883,7.53271484 C13.1254883,7.07568131 12.9974785,6.65250846 12.7414551,6.26318359 C12.4854317,5.87385873 12.1225609,5.56600048 11.652832,5.33959961 C11.1831031,5.11319874 10.6414419,5 10.027832,5 C9.36767248,5 8.79004154,5.13541531 8.29492187,5.40625 C7.79980221,5.67708469 7.42317837,6.01879677 7.16503906,6.43139648 C6.90689975,6.8439962 6.77783203,7.25130007 6.77783203,7.65332031 Z M10.0099668,15 C10.2713191,15 10.5016601,14.9108147 10.7009967,14.7324415 C10.9003332,14.5540682 11,14.3088087 11,13.9966555 C11,13.7157177 10.9047629,13.4793767 10.7142857,13.2876254 C10.5238086,13.0958742 10.2890379,13 10.0099668,13 C9.72646591,13 9.48726565,13.0958742 9.2923588,13.2876254 C9.09745196,13.4793767 9,13.7157177 9,13.9966555 C9,14.313268 9.10077419,14.5596424 9.30232558,14.735786 C9.50387698,14.9119295 9.73975502,15 10.0099668,15 Z'/%3E%3C/svg%3E%0A"); +} + + +.sdpi-more-info { + position: fixed; + left: 0px; + right: 0px; + bottom: 0px; + min-height: 16px; + padding-right: 16px; + text-align: right; + -webkit-touch-callout: none; + cursor: pointer; + user-select: none; + background-position: right center; + background-repeat: no-repeat; + border-radius: var(--sdpi-borderradius); + text-decoration: none; + color: var(--sdpi-color); +} + +.sdpi-more-info-button { + display: flex; + align-self: right; + margin-left: auto; + position: fixed; + right: 17px; + bottom: 0px; +} + +details a { + background-position: right !important; + min-height: 24px; + display: inline-block; + line-height: 24px; + padding-right: 28px; +} + + +input:not([type="range"]), +textarea { + -webkit-appearance: none; + background: var(--sdpi-background); + color: var(--sdpi-color); + font-weight: normal; + font-size: 9pt; + border: none; + margin-top: 2px; + margin-bottom: 2px; +} + + textarea + label { + display: flex; + justify-content: flex-end + } + +input[type="radio"], +input[type="checkbox"] { + display: none; +} + + input[type="radio"] + label, + input[type="checkbox"] + label { + font-size: 9pt; + color: var(--sdpi-color); + font-weight: normal; + margin-right: 8px; + -webkit-user-select: none; + } + + input[type="radio"] + label:after, + input[type="checkbox"] + label:after { + content: " " !important; + } + +.sdpi-item[type="radio"] > .sdpi-item-value, +.sdpi-item[type="checkbox"] > .sdpi-item-value { + padding-top: 2px; +} + + .sdpi-item[type="checkbox"] > .sdpi-item-value > * { + margin-top: 4px; + } + +.sdpi-item[type="checkbox"] .sdpi-item-child, +.sdpi-item[type="radio"] .sdpi-item-child { + display: inline-block; +} + +.sdpi-item[type="range"] .sdpi-item-value, +.sdpi-item[type="meter"] .sdpi-item-child, +.sdpi-item[type="progress"] .sdpi-item-child { + display: flex; +} + +.sdpi-item[type="range"] .sdpi-item-value { + min-height: 26px; +} + + .sdpi-item[type="range"] .sdpi-item-value span, + .sdpi-item[type="meter"] .sdpi-item-child span, + .sdpi-item[type="progress"] .sdpi-item-child span { + margin-top: -2px; + min-width: 8px; + text-align: right; + user-select: none; + cursor: pointer; + } + + .sdpi-item[type="range"] .sdpi-item-value span { + margin-top: 7px; + text-align: right; + } + +span + input[type="range"] { + display: flex; + max-width: 168px; +} + +.sdpi-item[type="range"] .sdpi-item-value span:first-child, +.sdpi-item[type="meter"] .sdpi-item-child span:first-child, +.sdpi-item[type="progress"] .sdpi-item-child span:first-child { + margin-right: 4px; +} + +.sdpi-item[type="range"] .sdpi-item-value span:last-child, +.sdpi-item[type="meter"] .sdpi-item-child span:last-child, +.sdpi-item[type="progress"] .sdpi-item-child span:last-child { + margin-left: 4px; +} + +.reverse { + transform: rotate(180deg); +} + +.sdpi-item[type="meter"] .sdpi-item-child meter + span:last-child { + margin-left: -10px; +} + +.sdpi-item[type="progress"] .sdpi-item-child meter + span:last-child { + margin-left: -14px; +} + +.sdpi-item[type="radio"] > .sdpi-item-value > * { + margin-top: 2px; +} + +details { + padding: 8px 18px 8px 12px; + min-width: 86px; +} + + details > h4 { + border-bottom: 1px solid var(--sdpi-bordercolor); + } + +legend { + display: none; +} + +.sdpi-item-value > textarea { + padding: 0px; + width: 227px; + margin-left: 1px; +} + +input[type="radio"] + label span, +input[type="checkbox"] + label span { + display: inline-block; + width: 16px; + height: 16px; + margin: 2px 4px 2px 0; + border-radius: 3px; + vertical-align: middle; + background: var(--sdpi-background); + cursor: pointer; + border: 1px solid rgb(0,0,0,.2); +} + +input[type="radio"] + label span { + border-radius: 100%; +} + +input[type="radio"]:checked + label span, +input[type="checkbox"]:checked + label span { + background-color: #77f; + background-image: url(check.svg); + background-repeat: no-repeat; + background-position: center center; + border: 1px solid rgb(0,0,0,.4); +} + +input[type="radio"]:active:checked + label span, +input[type="radio"]:active + label span, +input[type="checkbox"]:active:checked + label span, +input[type="checkbox"]:active + label span { + background-color: #303030; +} + +input[type="radio"]:checked + label span { + background-image: url(rcheck.svg); +} + + +/* +input[type="radio"] + label span { + background: url(buttons.png) -38px top no-repeat; +} + +input[type="radio"]:checked + label span { + background: url(buttons.png) -57px top no-repeat; +} +*/ + +input[type="range"] { + width: var(--sdpi-width); + height: 30px; + overflow: hidden; + cursor: pointer; + background: transparent !important; +} + +.sdpi-item > input[type="range"] { + margin-left: 8px; + max-width: var(--sdpi-width); + width: var(--sdpi-width); + padding: 0px; +} + +/* +input[type="range"], +input[type="range"]::-webkit-slider-runnable-track, +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; +} +*/ + +input[type="range"]::-webkit-slider-runnable-track { + height: 5px; + background: #979797; + border-radius: 3px; + padding: 0px !important; + border: 1px solid var(--sdpi-background); +} + +input[type="range"]::-webkit-slider-thumb { + position: relative; + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -5px; + border: none; +} + +input[type="range" i] { + margin: 0; +} + +input[type="range"]::-webkit-slider-thumb::before { + position: absolute; + content: ""; + height: 5px; /* equal to height of runnable track or 1 less */ + width: 500px; /* make this bigger than the widest range input element */ + left: -502px; /* this should be -2px - width */ + top: 8px; /* don't change this */ + background: #77f; +} + +input[type="color"] { + min-width: 32px; + min-height: 32px; + width: 32px; + height: 32px; + padding: 0; + background-color: var(--sdpi-bgcolor); + flex: none; +} + +::-webkit-color-swatch { + min-width: 24px; +} + +textarea { + height: 3em; + word-break: break-word; + line-height: 1.5em; +} + +.textarea { + padding: 0px !important; +} + +textarea { + width: 221px; /*98%;*/ + height: 96%; + min-height: 6em; + resize: none; + border-radius: var(--sdpi-borderradius); +} + +/* CAROUSEL */ + +.sdpi-item[type="carousel"] { +} + +.sdpi-item.card-carousel-wrapper, +.sdpi-item > .card-carousel-wrapper { + padding: 0; +} + + +.card-carousel-wrapper { + display: flex; + align-items: center; + justify-content: center; + margin: 12px auto; + color: #666a73; +} + +.card-carousel { + display: flex; + justify-content: center; + width: 278px; +} + +.card-carousel--overflow-container { + overflow: hidden; +} + +.card-carousel--nav__left, +.card-carousel--nav__right { + /* display: inline-block; */ + width: 12px; + height: 12px; + border-top: 2px solid #42b883; + border-right: 2px solid #42b883; + cursor: pointer; + margin: 0 4px; + transition: transform 150ms linear; +} + + .card-carousel--nav__left[disabled], + .card-carousel--nav__right[disabled] { + opacity: 0.2; + border-color: black; + } + +.card-carousel--nav__left { + transform: rotate(-135deg); +} + + .card-carousel--nav__left:active { + transform: rotate(-135deg) scale(0.85); + } + +.card-carousel--nav__right { + transform: rotate(45deg); +} + + .card-carousel--nav__right:active { + transform: rotate(45deg) scale(0.85); + } + +.card-carousel-cards { + display: flex; + transition: transform 150ms ease-out; + transform: translatex(0px); +} + + .card-carousel-cards .card-carousel--card { + margin: 0 5px; + cursor: pointer; + /* box-shadow: 0 4px 15px 0 rgba(40, 44, 53, 0.06), 0 2px 2px 0 rgba(40, 44, 53, 0.08); */ + background-color: #fff; + border-radius: 4px; + z-index: 3; + } + +.xxcard-carousel-cards .card-carousel--card:first-child { + margin-left: 0; +} + +.xxcard-carousel-cards .card-carousel--card:last-child { + margin-right: 0; +} + +.card-carousel-cards .card-carousel--card img { + vertical-align: bottom; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + transition: opacity 150ms linear; + width: 60px; +} + + .card-carousel-cards .card-carousel--card img:hover { + opacity: 0.5; + } + +.card-carousel-cards .card-carousel--card--footer { + border-top: 0; + max-width: 80px; + overflow: hidden; + display: flex; + height: 100%; + flex-direction: column; +} + + .card-carousel-cards .card-carousel--card--footer p { + padding: 3px 0; + margin: 0; + margin-bottom: 2px; + font-size: 15px; + font-weight: 500; + color: #2c3e50; + } + + .card-carousel-cards .card-carousel--card--footer p:nth-of-type(2) { + font-size: 12px; + font-weight: 300; + padding: 6px; + color: #666a73; + } + + +h1 { + font-size: 1.3em; + font-weight: 500; + text-align: center; + margin-bottom: 12px; +} + + + +::-webkit-datetime-edit { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + background: url(elg_calendar_inv.svg) no-repeat left center; + padding-right: 1em; + padding-left: 25px; + background-position: 4px 0px; +} + +::-webkit-datetime-edit-fields-wrapper { +} + +::-webkit-datetime-edit-text { + padding: 0 0.3em; +} + +::-webkit-datetime-edit-month-field { +} + +::-webkit-datetime-edit-day-field { +} + +::-webkit-datetime-edit-year-field { +} + +::-webkit-inner-spin-button { + /* display: none; */ +} + +::-webkit-calendar-picker-indicator { + background: transparent; + font-size: 17px; +} + + ::-webkit-calendar-picker-indicator:focus { + background-color: rgba(0,0,0,0.2); + } + +input[type="date"] { + -webkit-align-items: center; + display: -webkit-inline-flex; + font-family: monospace; + overflow: hidden; + padding: 0; + -webkit-padding-start: 1px; +} + +input::-webkit-datetime-edit { + -webkit-flex: 1; + -webkit-user-modify: read-only !important; + display: inline-block; + min-width: 0; + overflow: hidden; +} + +/* +input::-webkit-datetime-edit-fields-wrapper { + -webkit-user-modify: read-only !important; + display: inline-block; + padding: 1px 0; + white-space: pre; + +} +*/ + +/* +input[type="date"] { + background-color: red; + outline: none; +} + +input[type="date"]::-webkit-clear-button { + font-size: 18px; + height: 30px; + position: relative; +} + +input[type="date"]::-webkit-inner-spin-button { + height: 28px; +} + +input[type="date"]::-webkit-calendar-picker-indicator { + font-size: 15px; +} */ + +input[type="file"] { + opacity: 0; + display: none; +} + +.sdpi-item > input[type="file"] { + opacity: 1; + display: flex; +} + +input[type="file"] + span { + display: flex; + flex: 0 1 auto; + background-color: #0000ff50; +} + +label.sdpi-file-label { + cursor: pointer; + user-select: none; + display: inline-block; + min-height: 21px !important; + height: 21px !important; + line-height: 20px; + padding: 0px 4px; + margin: auto; + margin-right: 0px; + float: right; +} + + .sdpi-file-label > label:active, + .sdpi-file-label.file:active, + label.sdpi-file-label:active, + label.sdpi-file-info:active, + input[type="file"]::-webkit-file-upload-button:active, + button:active { + background-color: var(--sdpi-color); + color: #303030; + } + + +input:required:invalid, input:focus:invalid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPgogICAgPHBhdGggZmlsbD0iI0Q4RDhEOCIgZD0iTTQuNSwwIEM2Ljk4NTI4MTM3LC00LjU2NTM4NzgyZS0xNiA5LDIuMDE0NzE4NjMgOSw0LjUgQzksNi45ODUyODEzNyA2Ljk4NTI4MTM3LDkgNC41LDkgQzIuMDE0NzE4NjMsOSAzLjA0MzU5MTg4ZS0xNiw2Ljk4NTI4MTM3IDAsNC41IEMtMy4wNDM1OTE4OGUtMTYsMi4wMTQ3MTg2MyAyLjAxNDcxODYzLDQuNTY1Mzg3ODJlLTE2IDQuNSwwIFogTTQsMSBMNCw2IEw1LDYgTDUsMSBMNCwxIFogTTQuNSw4IEM0Ljc3NjE0MjM3LDggNSw3Ljc3NjE0MjM3IDUsNy41IEM1LDcuMjIzODU3NjMgNC43NzYxNDIzNyw3IDQuNSw3IEM0LjIyMzg1NzYzLDcgNCw3LjIyMzg1NzYzIDQsNy41IEM0LDcuNzc2MTQyMzcgNC4yMjM4NTc2Myw4IDQuNSw4IFoiLz4KICA8L3N2Zz4) no-repeat 98% center; +} + +input:required:valid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPjxwb2x5Z29uIGZpbGw9IiNEOEQ4RDgiIHBvaW50cz0iNS4yIDEgNi4yIDEgNi4yIDcgMy4yIDcgMy4yIDYgNS4yIDYiIHRyYW5zZm9ybT0icm90YXRlKDQwIDQuNjc3IDQpIi8+PC9zdmc+) no-repeat 98% center; +} + +.tooltip, +:tooltip, +:title { + color: yellow; +} + +[title]:hover { + display: flex; + align-items: center; + justify-content: center; +} + + [title]:hover::after { + content: ''; + position: absolute; + bottom: -1000px; + left: 8px; + display: none; + color: #fff; + border: 8px solid transparent; + border-bottom: 8px solid #000; + } + + [title]:hover::before { + content: attr(title); + display: flex; + justify-content: center; + align-self: center; + padding: 6px 12px; + border-radius: 5px; + background: rgba(0,0,0,0.8); + color: var(--sdpi-color); + font-size: 9pt; + font-family: sans-serif; + opacity: 1; + position: absolute; + height: auto; + /* width: 50%; + left: 35%; */ + text-align: center; + bottom: 2px; + z-index: 100; + box-shadow: 0px 3px 6px rgba(0, 0, 0, .5); + /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */ + } + +.sdpi-item-group.file { + width: 232px; + display: flex; + align-items: center; +} + +.sdpi-file-info { + overflow-wrap: break-word; + word-wrap: break-word; + hyphens: auto; + min-width: 132px; + max-width: 144px; + max-height: 32px; + margin-top: 0px; + margin-left: 5px; + display: inline-block; + overflow: hidden; + padding: 6px 4px; + background-color: var(--sdpi-background); +} + + +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); +} + +::-webkit-scrollbar-thumb { + background-color: #999999; + outline: 1px solid slategrey; + border-radius: 8px; +} + +a { + color: #7397d2; +} + +.testcontainer { + display: flex; + background-color: #0000ff20; + max-width: 400px; + height: 200px; + align-content: space-evenly; +} + +input[type=range] { + -webkit-appearance: none; + /* background-color: green; */ + height: 6px; + margin-top: 12px; + z-index: 0; + overflow: visible; +} + +/* +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -6px; + border: none; +} */ + +:-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 16px; + height: 16px; + border-radius: 20px; + margin-top: -6px; + border: 1px solid #999999; +} + +.sdpi-item[type="range"] .sdpi-item-group { + display: flex; + flex-direction: column; +} + +.xxsdpi-item[type="range"] .sdpi-item-group input { + max-width: 204px; +} + +.sdpi-item[type="range"] .sdpi-item-group span { + margin-left: 0px !important; +} + +.sdpi-item[type="range"] .sdpi-item-group > .sdpi-item-child { + display: flex; + flex-direction: row; +} + +:disabled { + color: #993333; +} + +select, +select option { + color: var(--sdpi-color); +} + + select.disabled, + select option:disabled { + color: #fd9494; + font-style: italic; + } + +.runningAppsContainer { + display: none; +} + +/* debug +div { + background-color: rgba(64,128,255,0.2); +} +*/ + +.min80 > .sdpi-item-child { + min-width: 80px; +} + +.min100 > .sdpi-item-child { + min-width: 100px; +} + +.min120 > .sdpi-item-child { + min-width: 120px; +} + +.min140 > .sdpi-item-child { + min-width: 140px; +} + +.min160 > .sdpi-item-child { + min-width: 160px; +} + +.min200 > .sdpi-item-child { + min-width: 200px; +} + +.max40 { + flex-basis: 40%; + flex-grow: 0; +} + +.max30 { + flex-basis: 30%; + flex-grow: 0; +} + +.max20 { + flex-basis: 20%; + flex-grow: 0; +} + +.up20 { + margin-top: -20px; +} + +.alignCenter { + align-items: center; +} + +.alignTop { + align-items: flex-start; +} + +.alignBaseline { + align-items: baseline; +} + +.noMargins, +.noMargins *, +.noInnerMargins * { + margin: 0; + padding: 0; +} diff --git a/src/SampleDIPlugin/property_inspector/js/property-inspector.js b/src/SampleDIPlugin/property_inspector/js/property-inspector.js new file mode 100644 index 0000000..8e090fc --- /dev/null +++ b/src/SampleDIPlugin/property_inspector/js/property-inspector.js @@ -0,0 +1,60 @@ +// global websocket, used to communicate from/to Stream Deck software +// as well as some info about our plugin, as sent by Stream Deck software +var websocket = null, + uuid = null, + inInfo = null, + actionInfo = {}, + settingsModel = { + Counter: 0 + }; + +function connectElgatoStreamDeckSocket(inPort, inUUID, inRegisterEvent, inInfo, inActionInfo) { + uuid = inUUID; + actionInfo = JSON.parse(inActionInfo); + inInfo = JSON.parse(inInfo); + websocket = new WebSocket('ws://localhost:' + inPort); + + //initialize values + if (actionInfo.payload.settings.settingsModel) { + settingsModel.Counter = actionInfo.payload.settings.settingsModel.Counter; + } + + document.getElementById('txtCounterValue').value = settingsModel.Counter; + + websocket.onopen = function () { + var json = { event: inRegisterEvent, uuid: inUUID }; + // register property inspector to Stream Deck + websocket.send(JSON.stringify(json)); + + }; + + websocket.onmessage = function (evt) { + // Received message from Stream Deck + var jsonObj = JSON.parse(evt.data); + var sdEvent = jsonObj['event']; + switch (sdEvent) { + case "didReceiveSettings": + if (jsonObj.payload.settings.settingsModel.Counter) { + settingsModel.Counter = jsonObj.payload.settings.settingsModel.Counter; + document.getElementById('txtCounterValue').value = settingsModel.Counter; + } + break; + default: + break; + } + }; +} + +function setSettings(value, param) { + if (websocket) { + settingsModel[param] = value; + var json = { + "event": "setSettings", + "context": uuid, + "payload": { + "settingsModel": settingsModel + } + }; + websocket.send(JSON.stringify(json)); + } +}; diff --git a/src/SampleDIPlugin/property_inspector/property_inspector.html b/src/SampleDIPlugin/property_inspector/property_inspector.html new file mode 100644 index 0000000..7ed2669 --- /dev/null +++ b/src/SampleDIPlugin/property_inspector/property_inspector.html @@ -0,0 +1,25 @@ + + + + + SamplePlugin Property Inspector + + + + +
    + + +
    +
    Counter Value
    + +
    + +
    + + + diff --git a/src/SamplePlugin/models/CounterSettingsModel.cs b/src/SamplePlugin/Models/CounterSettingsModel.cs similarity index 100% rename from src/SamplePlugin/models/CounterSettingsModel.cs rename to src/SamplePlugin/Models/CounterSettingsModel.cs diff --git a/src/SamplePlugin/MySamplePluginAction.cs b/src/SamplePlugin/MySamplePluginAction.cs index 8b03973..d4aaf33 100644 --- a/src/SamplePlugin/MySamplePluginAction.cs +++ b/src/SamplePlugin/MySamplePluginAction.cs @@ -5,61 +5,47 @@ namespace SamplePlugin { - [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action")] - public class MySamplePluginAction : BaseStreamDeckActionWithSettingsModel - { - // Cheer 342 cpayette 15/2/19 - // Cheer 100 devlead 15/2/19 - // Cheer 200 kevin_downs Jan 11, 2019 - // Cheer 401 cpayette Jan 15, 2019 - // Cheer 2501 themikejolley Jan 15, 2019 - // Cheer 100 wolfgang_blitz Jan 15, 2019 - // Cheer 157 jongalloway Jan 15, 2019 - // Cheer 100 johanb Jan 15, 2019 - // Cheer 400 faniereynders Jan 15, 2019 - // Cheer 100 TomMcQ Jan 15, 2019 - // Cheer 361 Crazy240sx Jan 15, 2019 - // Cheer 600 yarrgh Jan 15, 2019 - // Cheer 1030 kulu83 Jan 15, 2019 - // Cheer 2500 Auth0Bobby Jan 15, 2019 - - public override async Task OnKeyUp(StreamDeckEventPayload args) + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action")] + public class MySamplePluginAction : BaseStreamDeckActionWithSettingsModel { - SettingsModel.Counter++; - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - if (SettingsModel.Counter % 10 == 0) - { - await Manager.ShowAlertAsync(args.context); - } - else if (SettingsModel.Counter % 15 == 0) - { - await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); - } - else if (SettingsModel.Counter % 3 == 0) - { - await Manager.ShowOkAsync(args.context); - } - else if (SettingsModel.Counter % 7 == 0) - { - await Manager.SetImageAsync(args.context, "images/Fritz.png"); - } + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - //update settings - await Manager.SetSettingsAsync(args.context, SettingsModel); - } + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } - public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) - { - await base.OnDidReceiveSettings(args); - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - } + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } - public override async Task OnWillAppear(StreamDeckEventPayload args) - { - await base.OnWillAppear(args); - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - } + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } - } + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } } diff --git a/src/SamplePlugin/MySamplePluginAction2.cs b/src/SamplePlugin/MySamplePluginAction2.cs index f7d0d14..c912968 100644 --- a/src/SamplePlugin/MySamplePluginAction2.cs +++ b/src/SamplePlugin/MySamplePluginAction2.cs @@ -5,61 +5,47 @@ namespace SamplePlugin { - [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action2")] - public class MySamplePluginAction2 : BaseStreamDeckActionWithSettingsModel - { - // Cheer 342 cpayette 15/2/19 - // Cheer 100 devlead 15/2/19 - // Cheer 200 kevin_downs Jan 11, 2019 - // Cheer 401 cpayette Jan 15, 2019 - // Cheer 2501 themikejolley Jan 15, 2019 - // Cheer 100 wolfgang_blitz Jan 15, 2019 - // Cheer 157 jongalloway Jan 15, 2019 - // Cheer 100 johanb Jan 15, 2019 - // Cheer 400 faniereynders Jan 15, 2019 - // Cheer 100 TomMcQ Jan 15, 2019 - // Cheer 361 Crazy240sx Jan 15, 2019 - // Cheer 600 yarrgh Jan 15, 2019 - // Cheer 1030 kulu83 Jan 15, 2019 - // Cheer 2500 Auth0Bobby Jan 15, 2019 - - public override async Task OnKeyUp(StreamDeckEventPayload args) + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action2")] + public class MySamplePluginAction2 : BaseStreamDeckActionWithSettingsModel { - SettingsModel.Counter++; - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - if (SettingsModel.Counter % 10 == 0) - { - await Manager.ShowAlertAsync(args.context); - } - else if (SettingsModel.Counter % 15 == 0) - { - await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); - } - else if (SettingsModel.Counter % 3 == 0) - { - await Manager.ShowOkAsync(args.context); - } - else if (SettingsModel.Counter % 7 == 0) - { - await Manager.SetImageAsync(args.context, "images/Fritz.png"); - } + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - //update settings - await Manager.SetSettingsAsync(args.context, SettingsModel); - } + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } - public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) - { - await base.OnDidReceiveSettings(args); - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - } + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } - public override async Task OnWillAppear(StreamDeckEventPayload args) - { - await base.OnWillAppear(args); - await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); - } + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } - } + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } } diff --git a/src/SamplePlugin/Program.cs b/src/SamplePlugin/Program.cs index 25979a6..d6a7d50 100644 --- a/src/SamplePlugin/Program.cs +++ b/src/SamplePlugin/Program.cs @@ -5,10 +5,6 @@ namespace SamplePlugin { class Program { - // Cheer 200 careypayette February 14, 2019 - // Cheer 100 roberttables February 14, 2019 - // Cheer 100 careypayette February 15, 2019 - // Cheer 100 devlead 15/2/2019 static async Task Main(string[] args) { using (var config = StreamDeckLib.Config.ConfigurationBuilder.BuildDefaultConfiguration(args)) diff --git a/src/SamplePlugin/SamplePlugin.csproj b/src/SamplePlugin/SamplePlugin.csproj index 32f25ad..c302542 100644 --- a/src/SamplePlugin/SamplePlugin.csproj +++ b/src/SamplePlugin/SamplePlugin.csproj @@ -24,12 +24,12 @@
    - - + + - - - + + + diff --git a/src/SamplePlugin/models/SampleActionSettingsModel.cs b/src/SamplePlugin/models/SampleActionSettingsModel.cs deleted file mode 100644 index 1f07685..0000000 --- a/src/SamplePlugin/models/SampleActionSettingsModel.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace SamplePlugin.Models -{ - public class SampleActionSettingsModel - { - public int Counter { get; set; } = 0; - } -} diff --git a/src/SampleWebPlugin/Models/CounterSettingsModel.cs b/src/SampleWebPlugin/Models/CounterSettingsModel.cs new file mode 100644 index 0000000..4318c76 --- /dev/null +++ b/src/SampleWebPlugin/Models/CounterSettingsModel.cs @@ -0,0 +1,7 @@ +namespace SampleWebPlugin.Models +{ + public class CounterSettingsModel + { + public int Counter { get; set; } = 0; + } +} diff --git a/src/SampleWebPlugin/Models/SampleActionSettingsModel.cs b/src/SampleWebPlugin/Models/SampleActionSettingsModel.cs new file mode 100644 index 0000000..70d58c0 --- /dev/null +++ b/src/SampleWebPlugin/Models/SampleActionSettingsModel.cs @@ -0,0 +1,7 @@ +namespace SampleWebPlugin.Models +{ + public class SampleActionSettingsModel + { + public int Counter { get; set; } = 0; + } +} diff --git a/src/SampleWebPlugin/MySamplePluginAction.cs b/src/SampleWebPlugin/MySamplePluginAction.cs new file mode 100644 index 0000000..f60ee2a --- /dev/null +++ b/src/SampleWebPlugin/MySamplePluginAction.cs @@ -0,0 +1,51 @@ +using SampleWebPlugin.Models; +using StreamDeckLib; +using StreamDeckLib.Messages; +using System.Threading.Tasks; + +namespace SampleWebPlugin +{ + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action")] + public class MySamplePluginAction : BaseStreamDeckActionWithSettingsModel + { + + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } + + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } + + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } +} diff --git a/src/SampleWebPlugin/MySamplePluginAction2.cs b/src/SampleWebPlugin/MySamplePluginAction2.cs new file mode 100644 index 0000000..65490af --- /dev/null +++ b/src/SampleWebPlugin/MySamplePluginAction2.cs @@ -0,0 +1,51 @@ +using SampleWebPlugin.Models; +using StreamDeckLib; +using StreamDeckLib.Messages; +using System.Threading.Tasks; + +namespace SampleWebPlugin +{ + [ActionUuid(Uuid = "com.csharpfritz.samplePlugin.action2")] + public class MySamplePluginAction2 : BaseStreamDeckActionWithSettingsModel + { + + public override async Task OnKeyUp(StreamDeckEventPayload args) + { + SettingsModel.Counter++; + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + + if (SettingsModel.Counter % 10 == 0) + { + await Manager.ShowAlertAsync(args.context); + } + else if (SettingsModel.Counter % 15 == 0) + { + await Manager.OpenUrlAsync(args.context, "https://www.bing.com"); + } + else if (SettingsModel.Counter % 3 == 0) + { + await Manager.ShowOkAsync(args.context); + } + else if (SettingsModel.Counter % 7 == 0) + { + await Manager.SetImageAsync(args.context, "images/Fritz.png"); + } + + //update settings + await Manager.SetSettingsAsync(args.context, SettingsModel); + } + + public override async Task OnDidReceiveSettings(StreamDeckEventPayload args) + { + await base.OnDidReceiveSettings(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + public override async Task OnWillAppear(StreamDeckEventPayload args) + { + await base.OnWillAppear(args); + await Manager.SetTitleAsync(args.context, SettingsModel.Counter.ToString()); + } + + } +} diff --git a/src/SampleWebPlugin/Program.cs b/src/SampleWebPlugin/Program.cs new file mode 100644 index 0000000..ac6163c --- /dev/null +++ b/src/SampleWebPlugin/Program.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; +using StreamDeckLib.Hosting; + +namespace SampleWebPlugin +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureStreamDeckToolkit(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} diff --git a/src/SampleWebPlugin/SampleWebPlugin.csproj b/src/SampleWebPlugin/SampleWebPlugin.csproj new file mode 100644 index 0000000..1b6fec5 --- /dev/null +++ b/src/SampleWebPlugin/SampleWebPlugin.csproj @@ -0,0 +1,78 @@ + + + + netcoreapp3.1 + + + + + + + + + + + + + + + + + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + PreserveNewest + true + + + + + + + + + + PreserveNewest + + + + diff --git a/src/SampleWebPlugin/Startup.cs b/src/SampleWebPlugin/Startup.cs new file mode 100644 index 0000000..90f464c --- /dev/null +++ b/src/SampleWebPlugin/Startup.cs @@ -0,0 +1,46 @@ + +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using StreamDeckLib.DependencyInjection; + +namespace SampleWebPlugin +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + // This method gets called by the runtime. Use this method to add services to the container. + // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 + public void ConfigureServices(IServiceCollection services) + { + services.AddStreamDeck(Configuration, typeof(Startup).Assembly); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseRouting(); + + app.UseEndpoints(endpoints => + { + endpoints.MapGet("/", async context => + { + await context.Response.WriteAsync("Hello World!"); + }); + }); + } + } +} diff --git a/src/SampleWebPlugin/appsettings.Development.json b/src/SampleWebPlugin/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/src/SampleWebPlugin/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/src/SampleWebPlugin/appsettings.json b/src/SampleWebPlugin/appsettings.json new file mode 100644 index 0000000..56c5e52 --- /dev/null +++ b/src/SampleWebPlugin/appsettings.json @@ -0,0 +1,16 @@ +{ + "Serilog": { + "MinimumLevel": "Verbose", + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "log/sampleplugin.log", + "rollingInterval": "Day", + "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message} {NewLine}{Exception}" + } + } + ], + "Enrich": [ "FromLogContext" ] + } +} diff --git a/src/SampleWebPlugin/images/Fritz.png b/src/SampleWebPlugin/images/Fritz.png new file mode 100644 index 0000000000000000000000000000000000000000..e0f8970ab7b8d4c9192085dbc65ef655ef22010d GIT binary patch literal 34824 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 z�c=?0YIo_?l@yK&14tnyKyqF{zMrn~ZKAIu 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 literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/actionDefaultImage.png b/src/SampleWebPlugin/images/actionDefaultImage.png new file mode 100644 index 0000000000000000000000000000000000000000..b558c11793674e7ddecc12eea69309882f8d23af GIT binary patch literal 4383 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 Z{TJD_ZTpeL>URJD002ovPDHLkV1glRLSFy? literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/actionDefaultImage@2x.png b/src/SampleWebPlugin/images/actionDefaultImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..29705bfd51fc91f6cad43429f6bb12c40d11753f GIT binary patch literal 10851 zcmV-pDxB4cP)PyK9Z5t%RCodHod@__Mb*Y91ri{k1qj`Q-U(HZ7HI;4QdC5gE=_tB6hw*wDxk;?(kSt!g8 z?*qIU`}OlcvhaPo@G(|Y=hA`)2tc^}tOds@*fU(nDs24t@ouatx)XKt!TayKdFP$C zEjl&5)8mOTU#naNt1q)?07YUg=7p8Y`;v^b>#(_c37FrC@;ist-j29PA@s9$`H7#C z85&0a{{0;w^w$)kOVx6K?ki1!jscTaLF8nDx|mMZ%jb%}*+?wpM4VrH#sFd5xN-in zD}jtF6}o^Y4M16wKu75$0iZ1TiveVSpLyn)-P?&C)YXAHP*VmVV>m7pS4f<+y-)Z~ z_6wH3X6d)fuODG1fxDxyn2X8vQcEr6hJX3X{%XYE{^mxF8r9^@#@kc?m1KZuRw2!v zql61>jS*LLhxoJPFHX+#J3u2b%U@Rl#av3RmtJ~lx947a`K#Anebqgc13;fiNzI~T zG)dZzkU9q+=TP#?l$OEW%Z$F>Zx0Bj_)(lOJ?}dE9A6~c1F97o0P`ekKJRhu?;ymd!i6-?n@eUq5 zxR3-28^8d~BeC4l1yCxR8*k>R&~ch0VaB!{g%!fPq`^JH&NI(E?u|FzXctB9=kqVH zfSY5EIdX@K1CYm$G-KYkcL$ZVIMHe8Is^>bonfxT0Hgt+i60HM<$-Cwy-fDbeu6OCU2z zgk|_Avn~wM=(l&9g^!=dF|zEdda=3ZVU@RlQ0eW zizHI~oNxyodZ_#PamRUuI*gxp-j8adMKzW3fW0L2w# zm4)lWrc@vmb<|IP>Q4LRFWqyaN7uz~X_@OIiT+kzbyc^|{`>pM!*=OMLF>9yo`v}( zU)?S&=2&{P)~-m)mWRJ(}7^hZT|*k5%}<#TR#{{`R--qVvvk*I#>W zok?k0IPT4^q57`7@9u`LzkcnNI6aHMS=m~>&vFLgx=M77z4e~n!6p8*E-ZK@)r;ND z$iM#8ZNKA={&}kkNsS=7x$l7ox}A30&E0m(E$;6c;^kN2ku_cyp zU*2E?hvbQ8!(+g-%TN3~%+BXZvnzo@j>P^7BoI+vdHLn;8{2N{SUzZ1fsI+H*GZ^Q zx{e)p-r4_nAJYr~6oZ9ldDA0INOAb^8I6PIT?rI&CGf)>Bm6}q5aHi{_g#152`9KS z&px|tg~k;YOMv*f<cI+exRE9Be0@KrV$QS(Kb&+zOsG;~e>#gS)Qcn#u zQZ`PjYPK8m)FQ+}Dm)2w#Uk-^!(`+DM(Epr;~VbDC!WX{qI0jkpoz(SG&<}j&3Mf}i`sdR>zZ2Lt494k@CCc5|Dd(XY7f{l6pdH1}2+?(F$ zRgIdq*?e<%&V?7|o)xZ&7w>Ch;cglgvL4oKO)N`V?@70VDhCid64o6)+_4zA(kiR? z#k(w~4PmAkRXp+7WA5I6{?pxc=bdhZhQip`Ob8=q)?k zEw|am-KK8s$e;YA@b=tJRaB99k*-G^a)__sstw5g^VCyr$M1Z{?X>;&eqlGvA9`s~ z8ujFpwV=5Hgg$f9uYTnv4%6j5LCm`DrPbxz1*BmsuiO(^s65S48l9n^thdG*?o8=N zreowy2y4h|ue!=@r-rt{+H1SN-gaAR6lEk(2%ua#5XXXCaLFZZ>1CEl&D4~>Nk4w& z_1C*&k2=boC;e!8AauMFjycBv7Fl#rx7IrAxTVDJ#kIyYkBs3lzJ|5BJQuDNF6;*N}VinIj~ z6JB#`kJ7Y2%paX`)>+<+bXv%7PvntR0Q9P&bf?zPLTU*hMmp;y2MmOPre;5z=6!SZ;_7zLIciw*6_1EUK zxnyX?L?NSs^@b03Gikq3Sz>x&{f#ziI)p77f0po+X~$i5$?|H$JMgAcqsnho|YDEBQ{S7yChaPc+Ux01(ZnJ0D%s>Yn zc9>%ZwkQ#g#TELq#`mE{EBhR9Km!l6n1#S6?1xzRtddxpEHiv3Pcfx-VGDoZ3vTnT ze?5LT*Y!Kv(z2h9N7-7d&o{^ryd8Lm{1eS>+^CIo8_RCyl#@@cRbZH~Rc7d#Stn_j zpRK`2p`t|mEa39PpO;v0eC*%<_T?sDVcyIimcjg_gDyuys+x{I_SnKvKK#%_?itNB z#gqylz{9dZQDPQ#GZ}WLiM%XvVsCruFMi<;mlSMPdB*V21w8z?hx@e>tKDI|_>0g( z4?N)WVfivQj@z!oGu!in zm~53`m4b`3!aQOeKXn^)gZwZ^>!-4;s6}7ZPVOIZTU_{y#PQF&@Ak_LyL-qVlu8vOib2?UZJBbEp`S_drV%%zhG9G#*NW0@ zH{V<|Xex7TYt6f|zoj+Ltz{L!<69~~N*Hd;=e|_}J141(_(=b(l|VYoT|xM>h6{)3 zRQEkHf@7t8p5)j%q&wXTQzWPhz2u)DKe}2UJ>wpuFo^OK-*;uhyx@Wh`a#93ue>tp z8I7U|VKs5`X{Y%es!d+Wbo>5$@Aal3tzK>b5XW{Dr7Cov)U?&|Se2el;Qmy=0VJQQ zRiO6(6k4!vwekZdfa8A($D!R>D?dz|bdVGf{;U+I#r0KJT;aCW1RlWQLo95_11R_b z%V+ZUO#r3LdKF@#u6re5BaY!3)sECeECY)hWy12nefRk?TD~yzSWSzhn`r=4X13Yl z!(8N0&11Er1^^MT2qBv7`w2zD$6;t+6KQ2)9`w8bw1jM8NMpPJWQr->i@yi31R$gZ zph6mbuCPe1e1hL6=i{_93W>i+9Ft;l?&ceBbW6&n2U8f6Ff$4um{cHKb;Gy(v|cYlyn9NdYGI6unAXP4*#S>M8xIFx>tc2W0ujoRX6i?p~J07Q3DglO@V zQvx19^pO~abooS*2he!kL15=h=8xri$t0%IUz3-K35bf8hv7DQ7KFbj^-|smf62uc zyIuF((;u_qrH%lkjQVa1aQ095*GE7h|9}C|KojKl;hF}O5WwR!*G|x_QbjJ11x6NX z01y^#MTiza%RvID^BVvowS5gH@!w<&v|w62uD703T$9^wtJEhy8!t)rt`;>R{790#6ow%E zd+xc%%_5uf!J3olFJPc=&LBxb7s;WOY%?a$bXC@4?RJ zi>8L#?#HNzVKo(t9);U349}rv?@45M1%HfM`Yf2O=-PuNk(_`8y@$a7x=?SW4^PMk zQV7Yz2oA|(Khi5JiCDAScI&M@uZS-Xr2>c}YS|>1moR^&lF3kBf(d@q6$Vs`V;j*f z8g(G%0mxhGRv2DmGXrow7GUVs{KTAEFx?x!PxX6Eb0&lffr&rMk5Ll(2U38zk$zdi zh1th%VNBF}a0wugrV2zNCV>Ghd*!l+WVA>t_R0TC;%X39+ATOZyn=HBcNO!{BkLqmrRr;>AnnP z=9cZskl6dGVeTh|*+!d|y*zHJ1R??^?wI__ON=1cAI}14E?r7Y^-L#0`LRsg|Dc21 zGP3LO(nesQE1}y$e?a=6L<1ljg?XkY41ZHy9M{BEk+@WxI>{<9 zA(ecd~2X0nTRVU*_@oil*cxlc3AWvMBESVUV= zA6+Z5ZJ9!DA)6ws-!N(LlAv8qsT>ilbZwboaJ22b8m-VW`D_4s4MTTY4lNZB`K~Hy zrCw5qIWUO(7_?1_F=+Wdg=~M6fl8#MBh@^BvIVVs%kogWnSjtnbvz$0Y4o!A&4>|T zFeQSHgoP$c9E{3*egq`)x%)6@70V(s`j4M{Slp<<(rbdM!BD zTs6rWhh!@chb9b_0$Y@*P`1}zA#+G4kH34 z3{i&P79fy5+(YVk{YTHJSSr}&ez<0amM)@3VqRXtjDq|tmFq{F3vWL1$ z=m$8f${uJH*>*F7%?K1-aG>Uh80rHiOjVGQ2Bt6#^OFWk9@kxSjk{4+q42S4Y6&0` zV@oZY3adJG!;Yp!*+yJ*JT0F#VqJ(Xhn4|A7-hXFAka-A4Us4)%Wr6MkIF<6(RTwF zegG9I1h4>9S*ip;%`zci0VEG1-Z7wYKk*}>yy7e#EusdDS;|uSiXsc8bIv)ZpG(38 zOf)hkSOGeQe9YxxT7yfY>m)TyB*uxM$9zrmJLg?=kz1sKV^x@bw<&m(Qz{* zNy0sT9vr-*`;1VSB!ubq9KT)jF3bW%(-N6%G|8j_d7a6C1aFv}2Y-Bo5c`0U&wl#B)&%Sjl^n?$+ydAusLulyWlxh|JLC9Hb%jX4);lY^opH zR+vke02lxfapU*bx^FzrE=T(z$S%i(kB5| z=Tpv~LR%duj*^kt#+z>HHu>sT{b8E%^E}rfNC?NZ={L*(BWdWC{CffpQU)Ng2#Fqr z!p$r(-P$xqDr-%r!Jibs5AV@$;D_DA4~U{}EP33cPG$fx3ftocKX5y19--*r)LBYu zAc|dp<$(k<^<#1k^IO1#4&+znr$rzcQveMB0Vn}+RevXVI2Cv^0cbZ(cOQKC;k9{@ zs`KrEA;#evc|X_5eXao!WbYfOm|Vju4{3$2hV+`&$V!fD(ugvI{<<;+ysEoDg)dqH z2&r?5zEibPiESZS%VVIh_w71%!{_EV7a%b=!kh>Sc9%NOfu;ar!s-ecZ(}6Z(*%gJ z5;L=$g5NvQkFtjAzE_L`sQ{uoxL8MdbOJnpfo_HcQf8t_i%M@t1|pM4?cQe@f-bJi zN^`q3y3bQis;5%V*JijPi>PS~MK8HUyAt?h0sD-Y**4w9-e);uB^}qhvObTnx(?p% zr?sH6#0Uo^n~_@;OB-eLGrfjykU)GSwukp96J^sdQPl|NZaYE+v0dlSACCIM|fdYNKIXp`n(8A9IE+ z^?4+=TECQhLYuGuz0G2&hU)+n>4r38hPoB8$jC514|Q}gHOWXg55yb~!}#9n;<@kr zav>Xu+56s&^g?@f5^>IZNFPsfP2|%R!BAr|ab*Dq+lQtKQa*f6R8DjsEC|?f z!MY&IKASVqbJ(eZpP!Z2_+~EU3H^D?x0>{;oAg!eZS*DSA~Xp=%6J*da|B$LbZXTM zqs3sZ%~Fqk8?f+$as15RF78ljwR?9;JSXp*`#9hH^Vbw&_Ig>vz@^(Y>7&Bd%53>7 z10IWmjf;Gh=?H!KF)vjj)7jTmifD;qPK^vS0*e92GfywfD)G*!k&SgoqEH&ysKfwe z0IS72r9G4>`uRL5A9TeixP$bu8OlN>`XlaeRX#>pT>EkgL>$E6%PN=Ms=iSrfU2rk zd+)cOJN~4Taz*F0O4f?X5R528)-@3ae&4FZ;9B>U01BoL(BdfDeGu;q$zde-Sr_w1 zpGY!s%};+sIms{A?<5I<>Yt|nh2Zn~$rvt<&F3$;X=O$7%qhtaC@2eE7VB>zkoncquil0f1wqa7@_GJnG1ZsxkUh)VqGbsOF z(#VhGVOukz$StQ3fFV zt=?_<44x!qq0)y88R8`ld8!@jt1?h7ldRTt`4O1PK>8+q%niHPs@NXJLu35Ev(NTC z4DZK&uLG3@5Ro4K;~%^2^*P1Dq!tcfOzQY}sALf>n3>t-G*5zY7%dY@cH`K*XPt20K#IB4g8BOzIgOF`{laB zhr11BNqBpXuLOGKR7rTH*OCG>37EJAl&?b8DjFP;wzoYt0(2E>@Mr00aPrNmuNzmW^Zt{20w4W$3o( z&d~4X6o6`=N}kgln||jTj9ju8|^AB45QOW2l5PsiHwRk`6k%5P> z%jy$aeE7viRN*ndNF&OH8+KoIN*d`SwPQHR5NL1wfEW*A4{>w`LM`V`d$NFO;+-fqRGpAb?^{no@3@%2+e!YxPj~XNR8)xb?sZCBn++8O9;6$C#@D~fzCiBcpI6dOF)<4-CK3Mo7agH z7xA_Gu>y{X3*E{qGM1x3vhv+TvE^3e%siL^``x!BMhox=17Dx20kK(4>13IR-f{MK4+ z*1XVtP=WmL7bSGIb=5E}Z@B!(A9-iA!?l-4DyJ`FB6*NH{5Uc9I2r5}A-cH(_Swfh z`NR`Ng4e?Aq%#r7OH6f~;Sk2#Zn>qBt;|&Xo&vy5(qFE;^ip@L;=L#N1Z12Et~p~G z3AmMZVyvUDHq)&!)6D9#Z`nv7wFDT9f(($xiSb?!(l%!9agGqP)O1_^r#LXR#jd)2 zd#%qE70PTegg1)Yhwz>Hx$8w&UEcO@LHr6$JCYv%?PlM{8iT z$8eex#b6NWpy&0TiGS;^9|_u1dZD9ewYly@tO%~i3$+fVWH97#u6D7XLV*?F3asp4?V z=bnAme}QKYfw3rUA$>FkP)&&rBV{;#u0BuH6J!;PYd?Tt{tzIwL%0**@Se^2;Qyn* zgYHlp4do~ht!+n1Pw4z}&ha~Ia|HLVvH*ISx^jRBAUya53K|1I0x(`G0U++{9qvP1 zGd;1kPHN>qQKJ~3c0Y^D&YOFro6>z2A@rb?G&dBE{_1ofik&)0tM7B2}n7m!Wa#*N6iD0DS@0n(((F~bSV6J!}C7hX463w<4Ku1VIXj|4jC^>lw&QO;T=*cfOvs%{|#zA zQwzaB-%4qz`f+XGqJqQUBM&{~4v_u@c#QFRUDB{PExo*PU_NRC0J?lIDG$#CK0nSXnUCm~5@nTq=XgF`Jr^QWW=8 z*TdI(=rW4_h~GwG_>06tYehQpv$z11fy#hnWx+K-u{ywR3gbgnb-*DPbVWsJ4K<38 zngWQIXu(JQ@Q3afTAA%hGA5cE0t$wE#*6uv>KI}^9s>A_bU9%d(z1%hA3n?CXC7z8 zl~$_75#|%!$G~EMv9g)VoQv;%D`q@8WYG`lkQH|D&>)Oj0?1zajf}7PvP%)$XN#k1 z*BFh<0pmZ^n$3}#cw_`t1%>hB&r58AMA8`8LpP4wuER7Q*Gco8q9?T`Sd@^O!_+X0 zG69H}QNGsIlsM}!ptz^Vn2k#dMcE%NvC2nnxmOhtSDggP8S&Ek#s$(P{8=~LOzMRB z=Q9PJqO#y*mEI^bfC#{`x@=+INJHE^rEBygv9`6jrW=ls{l5sB@SZy>+BxcDplY!X&@HrN0uK2+LLoK$aMN=?VJ%OyBmx1_dy&3{iGL*5b!~MT@-m zOQB>=ge}xe5Kapew$i-$?PT{wUg-KqjT+^T70jDA-Ve)G3P6@P8DjH3KZq51zspiK zFt}I~Vre&;*u!3nJBNNIW!3Zxm2lL3HJc2`K8eotRxIa!9_NvDaEPRbBvWR0#P z0BV&nx*!0?Z+fLcB^RR0O!Q^tX&!^Wv^Xgv0LnEAON*#`uaN_D$r7*(O$!pp%Gd=^ znVN1A7E{tPG$jC3S^_0y>;kAvO*aY4ihCJ)x5Qdi)^x+Uv#epl_pFRv0EJws$j{<# z8R8tIPE*+r^;sFa0O~+ZVX9h&ro>!V*)*(-T>zD-=_X;BBPl~=D>qBpWz(=Sb^(-y z+d1E16}}8rWl_*74`tJ^GIjyfipvF`v7@34b;1rP&QIAitc+a%#hk6+nq44eh}rs1 zQ`t1EjD5=@vC{?ZsrW;_;193cSS993uSpTw-X@QhX4=d4EG;kZ z%QlSreLvSPV{~s}3TB~gFw(%n)Y5DlAbR10M0#~4P{f!jE?FiB zTX(Y-9Rny#yW8ycKLZ;s76V-gWSpwlW#50;x(z_BDkRLplu)8cBLq3= zhX4ulWBxGzl#y#Mfov}W+7N!zip+1%Eh2NyG)~EWKv+(=xwGBg`Z3h5+HZRemXBO#)3S9ziC9C-jHU{Y$}L z_{{v~hH-@c@OcoG_lD2RZ*CYz=ntRA@x|BSyXH4Hj5G9y&$GnGJ~bpzJ8D*8?3L%4 zrE6}Or_dihZ<}WF0%>H)W3%`uBYEs9(akti;yy#%v{6{A7EN*nC=Ob{-$`OMJ?_HV zr5EPEJB)9~trE{U%o81fvyobn0mi^$6~uCkmZ+&Qh#8n0(T`)9uDSs zcg&bEey^M{ouKBA0RwRANZ0mG-Tf*rltwIp48RTfiPFUu+Va;O#z)Ml>XPkAoG%no zRsi{mR6whwFpetx#Lq95Kw0z0wj+~}T?tf0jiki!x{hZVTw-q+hfsBDcLwIDtYzgr zc+>#KUOfYM7eFbMU&Sp(DW)ehi_a>=D#J@2DbKhZN?z7(xmmiz-7as|oK7`QLLHsc@=( zs{;(;3JNQbF04~^gKh?Z!t|)2R{62#92rd6j99fZf7h*;18?Xw5e{89aUWM$tKxab_?r2k zh1x7>SdwvtQi14D%oy{m4EeZp=($OsB5|=i6H`|QiaAp8HD(X<>iEB~H8%r8_zv0N zJ$8ViM*+k#gzm!{n@OLvxYE+Md*lV3E{1V;6qd%x3h(jtAQ;cE+$sYXqEhT$T9WpR zZ(J~`Sai=ki@KZ|7mmEr(u?m|`nYsolqIIF1d2J*fol{`hU78D017KCeiteBqP~xs zcS|x-XRyMS>AJ{^w?K?DrR%N)N?}UXxA@j8hW2a+HqelU`ElD3Ca8eub*)3CNrJTS t7>&)N5B>qnR$W(G*zg{bk20ju{{wXy?|q=fS`7dI002ovPDHLkV1i!jCyW39 literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/actionIcon.png b/src/SampleWebPlugin/images/actionIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..baf95bb260400e8a720c854de60a4758b8a8846f GIT binary patch literal 960 zcmV;x13&zUP)Px&dPzhw0OuuC-p)b=A|HS@v%Wsi1-R&zZ}anSahV z2YQ`O_-Ql(z<;q?r4llhHwF4H^78Wf<-A%-DsOL4hF=VO3BJC*FhoRPZEX#fuV2~a zkX{czKR;MzXIcKIfLg5al0US`{z59`3MRQ#*1gq(B%%ej|^l*KtKRaBqu`% zflot2__ngbIeax5$fP!sB^MPHF-yN;@{5a)M_+e0`*MYHcP=v%RW&sTrfibr@7*Xa z#?yudmffGb<>h$(3j?hK%FtA^lQ7U?6&^?1BD%&NMhM zfT$x!pdp)^tjo)I+u4cB)W>&yecU^>T8+Yj0=ElPLH_<_J3Bjk^;fQ5g)TfCr_Y>$ zF)ItT48*CpVW@ z30SH79k??2{{1+W zmWK3<3bDg>JpQZIrv`2mu|`_mioqik$-v z4GywG{%%5IB4Vh@Yk7IB8=&TU(%pOaaDae*v!n#q3k&%&D;_-f*%~)&?v#}YyWLJ$ zb&Px+(Md!>R9FekSP5*;R~-LV4@ZmA)?H_&t{6oc5gk&;997p?r-;T8lO+t@5MzRj z*_>r_1|@aOW(ej;v(SxE*TflBRY$d`wrH#WeLv6t`}%(WW46{}pX8VK-uHdq_xF9r z_ju2vUSOb&82K+=Q1;WOsJ?Yn^zos9Dpiyo<=(nBuTkKCub`JX0S~kBCh8s@RG~rz zDp# SREzsi>%kJh;!x%S(MWn@zPrFW{qwK7m#cL{pG3l%=dxsS;JIUR{gG&CR9f z&z_O`Ju6kj%KH2JQ~C1cl~TpU#q{9*eK!iSm~w{ZT51_8{?)2cU|^t@ke!v~^pC=V z0;*fLuI7Q#PoF%|?f-NIYu2bi)dK=Zw(#<$OHR9F<5e>!@$%(M%FD@dRuB}u#k~By z&cu>mF-l!l*sQ; z-7b+xuOPP9$J0}Hl&0dv#$d{+!ar}*rj1rGmscj~=uwO4@bGYI%{+n!4<1m;$&=DF z6lCE(-rl;SG!0V9XsEJO$V1(~YE}9*DM=Yd_ntjz;E*8}qj>!25p7<( zR{!3*g8YNBK(C-(P9|Gq>Wv!|GisC;+qrXRU6;xWb}g`E;L7F8m;W9jOZD>QlHL^^l&tW&=u0m?zi!v_yi zbW992Yu;S3T)%dW61Q%pIYT$V6JA7Dw?K*UD;u<`3sHVXO;`o@btROtUxvkr_ zY@xWxlQnC^O-UB&!GixdqT7c9_isaO=u$jDH$gFgdmxj2V)jJOG&)SEX^xW%+dlc;&i zmdfzJggQPGPdN6DVOMnT-aV77>XtKzOykF0yEN0Mad8yZv7>G`Y}AP6%$uj%a5>km zUe#?^mAt$>8qm8ptzNm3;O|V}%pKUjpZY{Z&>u$hFnK&A|t%&S}Yq@`HA6%WZau9EnEE2$dOt$a0h)6bmGeKvC@`Euea*tl*TZQi(1nocF6Q0+Q(G<`ege>XY9 z7T_BCeSEw$$%o%$-tW^#w^6Yu2m(UVGyK{7GF%C?y_Hq?;4jO(2gBB zB3-(4q_yFDiwTPrOUE|O0TUAvs2j(~5YB*uIW%E*IB&>=ksZ5C`9*-eY}TTMh2ko1 z;~XN##1jdC|Cw;9AQ@&FmoLwSW>l-c$x-&YwT8XtHHC=2I(Z@K@#} z7JS%J@WE3Q@nQ+|3W9)bE)`^)ly)IVHZtum1^BriCk^T!!pCJ5w%ROq*a9RB;1y^E zL4<30lfXmJT|Qgzp@1i!D=)sJi!~#Wz!l@6{n~*4-{VQ)jYm+TAX7@cf+EdDnUZhsfYP?GwV7zW~XudTY!swhaIP002ovPDHLkV1jAt B2o(ST literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/category/categoryIcon.png b/src/SampleWebPlugin/images/category/categoryIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..2132054e0f859241b8fb5c79d555e91e4a694b54 GIT binary patch literal 675 zcmV;U0$lxxP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01R|RSaeirbZlh+ zaBOvFX>Q>;1n>X=02p*dSaefwW^{L9a%BK;VQFr3E^cLXAT%y9E;VFFSW*B00sKis zK~zXf?bbg?R#6zo@tfr$7NzJQ_J@cR63s9XYN-r@tY{G@T}4r63mRMv5ve6b2r5FO zHE47z0v+0{MI<6hjYLfc{rL9OqLiK+fsK zW=dy~bMn@(Fp!kIG`xr3_=P(v#H0n!F$-4{TPtp2&t6WW30Lt&g%l~n8eEOS9>E*M zMBpzT;y#vwn!Ld&xN;N=a5V^f2Jau5EhRXK>lQ6r73}E#242AR;WjP(AoSVZqJAV~ z2H}RTL-PkKp_=SEG-(??!KLjxKjDVsIEHe33u;E@hOeRZpGS=fB-~J^&_qjU|1NVw zlOgo^mtHM&ZB)bLE=*kyR)n3TY4{TFp>J5HLM}IU&hC7SPz{<&D0JRf*e>w1Cp18NTC9R28s1$f#c36i64&q}x&u+ie*kLw09uj6#5KH#cle2@ zCDqu{5YV#jYY$yH&_m-&UK{G)gCsho`s1p>5JeBJ{fvp{Z2=^C(&Xb|)A9fS002ov JPDHLkV1fhjAu<2} literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/category/categoryIcon@2x.png b/src/SampleWebPlugin/images/category/categoryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e8541bb1cd7e8007c236c312dea60993ee6ff872 GIT binary patch literal 1221 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 Z{TJD_ZTpeL>URJD002ovPDHLkV1glRLSFy? literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/images/pluginIcon@2x.png b/src/SampleWebPlugin/images/pluginIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..29705bfd51fc91f6cad43429f6bb12c40d11753f GIT binary patch literal 10851 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 literal 0 HcmV?d00001 diff --git a/src/SampleWebPlugin/manifest.json b/src/SampleWebPlugin/manifest.json new file mode 100644 index 0000000..a6b0efb --- /dev/null +++ b/src/SampleWebPlugin/manifest.json @@ -0,0 +1,58 @@ +{ + "Actions": [ + { + "Icon": "images/actionIcon", + "Name": "SamplePluginAction", + "States": [ + { + "Image": "images/actionDefaultImage", + "TitleAlignment": "middle", + "FontSize": "16" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "How many times did you get pwned today? Keep track with this counter.", + "UUID": "com.csharpfritz.samplePlugin.action" + }, + { + "Icon": "images/actionIcon", + "Name": "SamplePluginAction2", + "States": [ + { + "Image": "images/actionDefaultImage", + "TitleAlignment": "middle", + "FontSize": "16" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "How many times did you get pwned today? Keep track with this counter.", + "UUID": "com.csharpfritz.samplePlugin.action2" + } + ], + "Category": "Fritz & Friends", + "CategoryIcon": "images/category/categoryIcon.png", + "Disabled": false, + "Author": "Jeffrey T. Fritz", + "CodePathWin": "SamplePlugin.cmd", + "CodePathMac": "SamplePlugin", + "PropertyInspectorPath": "property_inspector/property_inspector.html", + "Description": "The Sample Plugin", + "Name": "Sample Plugin", + "Icon": "images/pluginIcon", + "URL": "https://github.com/FritzAndFriends", + "Version": "1.3", + "SDKVersion": 2, + "Software": { + "MinimumVersion": "4.1" + }, + "OS": [ + { + "Platform": "mac", + "MinimumVersion" : "10.11" + }, + { + "Platform": "windows", + "MinimumVersion" : "10" + } + ] +} diff --git a/src/SampleWebPlugin/property_inspector/css/property-inspector.css b/src/SampleWebPlugin/property_inspector/css/property-inspector.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/SampleWebPlugin/property_inspector/css/property-inspector.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/SampleWebPlugin/property_inspector/css/sdpi.css b/src/SampleWebPlugin/property_inspector/css/sdpi.css new file mode 100644 index 0000000..eeaaa22 --- /dev/null +++ b/src/SampleWebPlugin/property_inspector/css/sdpi.css @@ -0,0 +1,1386 @@ +html { + --sdpi-bgcolor: #2D2D2D; + --sdpi-background: #3D3D3D; + --sdpi-color: #d8d8d8; + --sdpi-bordercolor: #3a3a3a; + --sdpi-borderradius: 0px; + --sdpi-width: 224px; + --sdpi-fontweight: 600; + --sdpi-letterspacing: -0.25pt; + height: 100%; + width: 100%; + overflow: hidden; +} + +html, body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 9pt; + background-color: var(--sdpi-bgcolor); + color: #9a9a9a; +} + +body { + height: 100%; + padding: 0; + overflow-x: hidden; + overflow-y: auto; + margin: 0; + -webkit-overflow-scrolling: touch; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; +} + +mark { + background-color: var(--sdpi-bgcolor); + color: var(--sdpi-color); +} + +.hidden { + display: none; +} + +hr, hr2 { + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + border-style: none; + background: var(--sdpi-background); + height: 1px; +} + +hr2, +.sdpi-heading { + display: flex; + flex-basis: 100%; + align-items: center; + color: inherit; + font-size: 9pt; + margin: 8px 0px; +} + + .sdpi-heading::before, + .sdpi-heading::after { + content: ""; + flex-grow: 1; + background: var(--sdpi-background); + height: 1px; + font-size: 0px; + line-height: 0px; + margin: 0px 16px; + } + +hr2 { + height: 2px; +} + +hr, hr2 { + margin-left: 16px; + margin-right: 16px; +} + +.sdpi-item-value, +option, +input, +select, +button { + font-size: 10pt; + font-weight: var(--sdpi-fontweight); + letter-spacing: var(--sdpi-letterspacing); +} + + + +.win .sdpi-item-value, +.win option, +.win input, +.win select, +.win button { + font-size: 11px; + font-style: normal; + letter-spacing: inherit; + font-weight: 100; +} + +.win button { + font-size: 12px; +} + +::-webkit-progress-value, +meter::-webkit-meter-optimum-value { + border-radius: 2px; + /* background: linear-gradient(#ccf, #99f 20%, #77f 45%, #77f 55%, #cdf); */ +} + +::-webkit-progress-bar, +meter::-webkit-meter-bar { + border-radius: 3px; + background: var(--sdpi-background); +} + + ::-webkit-progress-bar:active, + meter::-webkit-meter-bar:active { + border-radius: 3px; + background: #222222; + } + +::-webkit-progress-value:active, +meter::-webkit-meter-optimum-value:active { + background: #99f; +} + +progress, +progress.sdpi-item-value { + min-height: 5px !important; + height: 5px; + background-color: #303030; +} + +progress { + margin-top: 8px !important; + margin-bottom: 8px !important; +} + + .full progress, + progress.full { + margin-top: 3px !important; + } + +::-webkit-progress-inner-element { + background-color: transparent; +} + + +.sdpi-item[type="progress"] { + margin-top: 4px !important; + margin-bottom: 12px; + min-height: 15px; +} + +.sdpi-item-child.full:last-child { + margin-bottom: 4px; +} + +.tabs { + /** + * Setting display to flex makes this container lay + * out its children using flexbox, the exact same + * as in the above "Stepper input" example. + */ + display: flex; + border-bottom: 1px solid #D7DBDD; +} + +.tab { + cursor: pointer; + padding: 5px 30px; + color: #16a2d7; + font-size: 9pt; + border-bottom: 2px solid transparent; +} + + .tab.is-tab-selected { + border-bottom-color: #4ebbe4; + } + +select { + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + background: url(caret.svg) no-repeat 97% center; +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button, +select { + color: var(--sdpi-color); + border: 1pt solid #303030; + font-size: 8pt; + background-color: var(--sdpi-background); + border-radius: var(--sdpi-borderradius); +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button { + border: 1pt solid var(--sdpi-color); + border-radius: var(--sdpi-borderradius); + min-height: 23px !important; + height: 23px !important; + margin-right: 8px; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type="file"] { + border-radius: var(--sdpi-borderradius); + max-width: 220px; +} + + +option { + height: 1.5em; + padding: 4px; +} + +/* SDPI */ + +.sdpi-wrapper { + overflow-x: hidden; +} + +.sdpi-item { + display: flex; + flex-direction: row; + min-height: 32px; + align-items: center; + margin-top: 2px; + max-width: 344px; +} + + .sdpi-item:first-child { + margin-top: 1px; + } + + .sdpi-item:last-child { + margin-bottom: 0px; + } + + .sdpi-item > *:not(.sdpi-item-label):not(meter):not(details) { + min-height: 26px; + padding: 0px 4px 0px 4px; + } + + .sdpi-item > *:not(.sdpi-item-label.empty):not(meter) { + min-height: 26px; + padding: 0px 4px 0px 4px; + } + + +.sdpi-item-group { + padding: 0 !important; +} + +meter.sdpi-item-value { + margin-left: 6px; +} + +.sdpi-item[type="group"] { + display: block; + margin-top: 12px; + margin-bottom: 12px; + /* border: 1px solid white; */ + flex-direction: unset; + text-align: left; +} + + .sdpi-item[type="group"] > .sdpi-item-label, + .sdpi-item[type="group"].sdpi-item-label { + width: 96%; + text-align: left; + font-weight: 700; + margin-bottom: 4px; + padding-left: 4px; + } + +dl, +ul, +ol { + -webkit-margin-before: 0px; + -webkit-margin-after: 4px; + -webkit-padding-start: 1em; + max-height: 90px; + overflow-y: scroll; + cursor: pointer; + user-select: none; +} + + table.sdpi-item-value, + dl.sdpi-item-value, + ul.sdpi-item-value, + ol.sdpi-item-value { + -webkit-margin-before: 4px; + -webkit-margin-after: 8px; + -webkit-padding-start: 1em; + width: var(--sdpi-width); + text-align: center; + } + +table > caption { + margin: 2px; +} + +.list, +.sdpi-item[type="list"] { + align-items: baseline; +} + +.sdpi-item-label { + text-align: right; + flex: none; + width: 94px; + padding-right: 4px; + font-weight: 600; + -webkit-user-select: none; +} + + .win .sdpi-item-label, + .sdpi-item-label > small { + font-weight: normal; + } + + .sdpi-item-label:after { + content: ": "; + } + + .sdpi-item-label.empty:after { + content: ""; + } + +.sdpi-test, +.sdpi-item-value { + flex: 1 0 0; + /* flex-grow: 1; + flex-shrink: 0; */ + margin-right: 14px; + margin-left: 4px; + justify-content: space-evenly; +} + +canvas.sdpi-item-value { + max-width: 144px; + max-height: 144px; + width: 144px; + height: 144px; + margin: 0 auto; + cursor: pointer; +} + +input.sdpi-item-value { + margin-left: 5px; +} + +.sdpi-item-value button, +button.sdpi-item-value { + margin-left: 7px; + margin-right: 19px; +} + +.sdpi-item-value.range { + margin-left: 0px; +} + +table, +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > dl, +.sdpi-item-value > ul, +.sdpi-item-value > ol { + list-style-type: none; + list-style-position: outside; + margin-left: -4px; + margin-right: -4px; + padding: 4px; + border: 1px solid var(--sdpi-bordercolor); +} + +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > ol { + list-style-type: none; + list-style-position: inside; + margin-left: 5px; + margin-right: 12px; + padding: 4px !important; +} + + ol.sdpi-item-value, + .sdpi-item-value > ol[listtype="none"] { + list-style-type: none; + } + + ol.sdpi-item-value[type="decimal"], + .sdpi-item-value > ol[type="decimal"] { + list-style-type: decimal; + } + + ol.sdpi-item-value[type="decimal-leading-zero"], + .sdpi-item-value > ol[type="decimal-leading-zero"] { + list-style-type: decimal-leading-zero; + } + + ol.sdpi-item-value[type="lower-alpha"], + .sdpi-item-value > ol[type="lower-alpha"] { + list-style-type: lower-alpha; + } + + ol.sdpi-item-value[type="upper-alpha"], + .sdpi-item-value > ol[type="upper-alpha"] { + list-style-type: upper-alpha; + } + + ol.sdpi-item-value[type="upper-roman"], + .sdpi-item-value > ol[type="upper-roman"] { + list-style-type: upper-roman; + } + + ol.sdpi-item-value[type="lower-roman"], + .sdpi-item-value > ol[type="lower-roman"] { + list-style-type: upper-roman; + } + + tr:nth-child(even), + .sdpi-item-value > ul > li:nth-child(even), + .sdpi-item-value > ol > li:nth-child(even), + li:nth-child(even) { + background-color: rgba(0,0,0,.2) + } + + td:hover, + .sdpi-item-value > ul > li:hover:nth-child(even), + .sdpi-item-value > ol > li:hover:nth-child(even), + li:hover:nth-child(even), + li:hover { + background-color: rgba(255,255,255,.1); + } + +td.selected, +td.selected:hover, +li.selected:hover, +li.selected { + color: white; + background-color: #77f; +} + +tr { + border: 1px solid var(--sdpi-bordercolor); +} + +td { + border-right: 1px solid var(--sdpi-bordercolor); + -webkit-user-select: none; +} + + tr:last-child, + td:last-child { + border: none; + } + +.sdpi-item-value.select, +.sdpi-item-value > select { + margin-right: 13px; + margin-left: 4px; +} + +.sdpi-item-child, +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0.4em; + margin-right: 4px; +} + + .full, + .full *, + .sdpi-item-value.full, + .sdpi-item-child > full > *, + .sdpi-item-child.full, + .sdpi-item-child.full > *, + .full > .sdpi-item-child, + .full > .sdpi-item-child > * { + display: flex; + flex: 1 1 0; + margin-bottom: 4px; + margin-left: 0px; + width: 100%; + justify-content: space-evenly; + } + +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0px; +} + +::-webkit-calendar-picker-indicator:focus, +input[type=file]::-webkit-file-upload-button:focus, +button:focus, +textarea:focus, +input:focus, +select:focus, +option:focus, +details:focus, +summary:focus, +.custom-select select { + outline: none; +} + +summary { + cursor: default; + -webkit-user-select: none; +} + + .pointer, + summary .pointer { + cursor: pointer; + } + +details.message { + padding: 4px 18px 4px 12px; +} + + details.message summary { + font-size: 10pt; + font-weight: 600; + min-height: 18px; + } + + details.message:first-child { + margin-top: 4px; + margin-left: 0; + padding-left: 106px; + } + + details.message h1 { + text-align: left; + } + +.message > summary::-webkit-details-marker { + display: none; +} + +.info20, +.question, +.caution, +.info { + background-repeat: no-repeat; + background-position: 70px center; +} + +.info20 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 Z M10,8 C8.8954305,8 8,8.84275812 8,9.88235294 L8,16.1176471 C8,17.1572419 8.8954305,18 10,18 C11.1045695,18 12,17.1572419 12,16.1176471 L12,9.88235294 C12,8.84275812 11.1045695,8 10,8 Z M10,3 C8.8954305,3 8,3.88165465 8,4.96923077 L8,5.03076923 C8,6.11834535 8.8954305,7 10,7 C11.1045695,7 12,6.11834535 12,5.03076923 L12,4.96923077 C12,3.88165465 11.1045695,3 10,3 Z'/%3E%3C/svg%3E%0A"); +} + +.info { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M10,8 C9.44771525,8 9,8.42137906 9,8.94117647 L9,14.0588235 C9,14.5786209 9.44771525,15 10,15 C10.5522847,15 11,14.5786209 11,14.0588235 L11,8.94117647 C11,8.42137906 10.5522847,8 10,8 Z M10,5 C9.44771525,5 9,5.44082732 9,5.98461538 L9,6.01538462 C9,6.55917268 9.44771525,7 10,7 C10.5522847,7 11,6.55917268 11,6.01538462 L11,5.98461538 C11,5.44082732 10.5522847,5 10,5 Z'/%3E%3C/svg%3E%0A"); +} + +.info2 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15'%3E%3Cpath fill='%23999' d='M7.5,15 C3.35786438,15 0,11.6421356 0,7.5 C0,3.35786438 3.35786438,0 7.5,0 C11.6421356,0 15,3.35786438 15,7.5 C15,11.6421356 11.6421356,15 7.5,15 Z M7.5,2 C6.67157287,2 6,2.66124098 6,3.47692307 L6,3.52307693 C6,4.33875902 6.67157287,5 7.5,5 C8.32842705,5 9,4.33875902 9,3.52307693 L9,3.47692307 C9,2.66124098 8.32842705,2 7.5,2 Z M5,6 L5,7.02155172 L6,7 L6,12 L5,12.0076778 L5,13 L10,13 L10,12 L9,12.0076778 L9,6 L5,6 Z'/%3E%3C/svg%3E%0A"); +} + +.sdpi-more-info { + background-image: linear-gradient(to right, #00000000 0%,#00000040 80%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpolygon fill='%23999' points='4 7 8 7 8 5 12 8 8 11 8 9 4 9'/%3E%3C/svg%3E%0A"); +} + +.caution { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' fill-rule='evenodd' d='M9.03952676,0.746646542 C9.57068894,-0.245797319 10.4285735,-0.25196227 10.9630352,0.746646542 L19.7705903,17.2030214 C20.3017525,18.1954653 19.8777595,19 18.8371387,19 L1.16542323,19 C0.118729947,19 -0.302490098,18.2016302 0.231971607,17.2030214 L9.03952676,0.746646542 Z M10,2.25584053 L1.9601405,17.3478261 L18.04099,17.3478261 L10,2.25584053 Z M10,5.9375 C10.531043,5.9375 10.9615385,6.37373537 10.9615385,6.91185897 L10.9615385,11.6923077 C10.9615385,12.2304313 10.531043,12.6666667 10,12.6666667 C9.46895697,12.6666667 9.03846154,12.2304313 9.03846154,11.6923077 L9.03846154,6.91185897 C9.03846154,6.37373537 9.46895697,5.9375 10,5.9375 Z M10,13.4583333 C10.6372516,13.4583333 11.1538462,13.9818158 11.1538462,14.6275641 L11.1538462,14.6641026 C11.1538462,15.3098509 10.6372516,15.8333333 10,15.8333333 C9.36274837,15.8333333 8.84615385,15.3098509 8.84615385,14.6641026 L8.84615385,14.6275641 C8.84615385,13.9818158 9.36274837,13.4583333 10,13.4583333 Z'/%3E%3C/svg%3E%0A"); +} + +.question { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M6.77783203,7.65332031 C6.77783203,7.84798274 6.85929281,8.02888914 7.0222168,8.19604492 C7.18514079,8.36320071 7.38508996,8.44677734 7.62207031,8.44677734 C8.02409055,8.44677734 8.29703704,8.20768468 8.44091797,7.72949219 C8.59326248,7.27245865 8.77945854,6.92651485 8.99951172,6.69165039 C9.2195649,6.45678594 9.56233491,6.33935547 10.027832,6.33935547 C10.4256205,6.33935547 10.7006836,6.37695313 11.0021973,6.68847656 C11.652832,7.53271484 10.942627,8.472229 10.3750916,9.1321106 C9.80755615,9.79199219 8.29492188,11.9897461 10.027832,12.1347656 C10.4498423,12.1700818 10.7027991,11.9147157 10.7832031,11.4746094 C11.0021973,9.59857178 13.1254883,8.82415771 13.1254883,7.53271484 C13.1254883,7.07568131 12.9974785,6.65250846 12.7414551,6.26318359 C12.4854317,5.87385873 12.1225609,5.56600048 11.652832,5.33959961 C11.1831031,5.11319874 10.6414419,5 10.027832,5 C9.36767248,5 8.79004154,5.13541531 8.29492187,5.40625 C7.79980221,5.67708469 7.42317837,6.01879677 7.16503906,6.43139648 C6.90689975,6.8439962 6.77783203,7.25130007 6.77783203,7.65332031 Z M10.0099668,15 C10.2713191,15 10.5016601,14.9108147 10.7009967,14.7324415 C10.9003332,14.5540682 11,14.3088087 11,13.9966555 C11,13.7157177 10.9047629,13.4793767 10.7142857,13.2876254 C10.5238086,13.0958742 10.2890379,13 10.0099668,13 C9.72646591,13 9.48726565,13.0958742 9.2923588,13.2876254 C9.09745196,13.4793767 9,13.7157177 9,13.9966555 C9,14.313268 9.10077419,14.5596424 9.30232558,14.735786 C9.50387698,14.9119295 9.73975502,15 10.0099668,15 Z'/%3E%3C/svg%3E%0A"); +} + + +.sdpi-more-info { + position: fixed; + left: 0px; + right: 0px; + bottom: 0px; + min-height: 16px; + padding-right: 16px; + text-align: right; + -webkit-touch-callout: none; + cursor: pointer; + user-select: none; + background-position: right center; + background-repeat: no-repeat; + border-radius: var(--sdpi-borderradius); + text-decoration: none; + color: var(--sdpi-color); +} + +.sdpi-more-info-button { + display: flex; + align-self: right; + margin-left: auto; + position: fixed; + right: 17px; + bottom: 0px; +} + +details a { + background-position: right !important; + min-height: 24px; + display: inline-block; + line-height: 24px; + padding-right: 28px; +} + + +input:not([type="range"]), +textarea { + -webkit-appearance: none; + background: var(--sdpi-background); + color: var(--sdpi-color); + font-weight: normal; + font-size: 9pt; + border: none; + margin-top: 2px; + margin-bottom: 2px; +} + + textarea + label { + display: flex; + justify-content: flex-end + } + +input[type="radio"], +input[type="checkbox"] { + display: none; +} + + input[type="radio"] + label, + input[type="checkbox"] + label { + font-size: 9pt; + color: var(--sdpi-color); + font-weight: normal; + margin-right: 8px; + -webkit-user-select: none; + } + + input[type="radio"] + label:after, + input[type="checkbox"] + label:after { + content: " " !important; + } + +.sdpi-item[type="radio"] > .sdpi-item-value, +.sdpi-item[type="checkbox"] > .sdpi-item-value { + padding-top: 2px; +} + + .sdpi-item[type="checkbox"] > .sdpi-item-value > * { + margin-top: 4px; + } + +.sdpi-item[type="checkbox"] .sdpi-item-child, +.sdpi-item[type="radio"] .sdpi-item-child { + display: inline-block; +} + +.sdpi-item[type="range"] .sdpi-item-value, +.sdpi-item[type="meter"] .sdpi-item-child, +.sdpi-item[type="progress"] .sdpi-item-child { + display: flex; +} + +.sdpi-item[type="range"] .sdpi-item-value { + min-height: 26px; +} + + .sdpi-item[type="range"] .sdpi-item-value span, + .sdpi-item[type="meter"] .sdpi-item-child span, + .sdpi-item[type="progress"] .sdpi-item-child span { + margin-top: -2px; + min-width: 8px; + text-align: right; + user-select: none; + cursor: pointer; + } + + .sdpi-item[type="range"] .sdpi-item-value span { + margin-top: 7px; + text-align: right; + } + +span + input[type="range"] { + display: flex; + max-width: 168px; +} + +.sdpi-item[type="range"] .sdpi-item-value span:first-child, +.sdpi-item[type="meter"] .sdpi-item-child span:first-child, +.sdpi-item[type="progress"] .sdpi-item-child span:first-child { + margin-right: 4px; +} + +.sdpi-item[type="range"] .sdpi-item-value span:last-child, +.sdpi-item[type="meter"] .sdpi-item-child span:last-child, +.sdpi-item[type="progress"] .sdpi-item-child span:last-child { + margin-left: 4px; +} + +.reverse { + transform: rotate(180deg); +} + +.sdpi-item[type="meter"] .sdpi-item-child meter + span:last-child { + margin-left: -10px; +} + +.sdpi-item[type="progress"] .sdpi-item-child meter + span:last-child { + margin-left: -14px; +} + +.sdpi-item[type="radio"] > .sdpi-item-value > * { + margin-top: 2px; +} + +details { + padding: 8px 18px 8px 12px; + min-width: 86px; +} + + details > h4 { + border-bottom: 1px solid var(--sdpi-bordercolor); + } + +legend { + display: none; +} + +.sdpi-item-value > textarea { + padding: 0px; + width: 227px; + margin-left: 1px; +} + +input[type="radio"] + label span, +input[type="checkbox"] + label span { + display: inline-block; + width: 16px; + height: 16px; + margin: 2px 4px 2px 0; + border-radius: 3px; + vertical-align: middle; + background: var(--sdpi-background); + cursor: pointer; + border: 1px solid rgb(0,0,0,.2); +} + +input[type="radio"] + label span { + border-radius: 100%; +} + +input[type="radio"]:checked + label span, +input[type="checkbox"]:checked + label span { + background-color: #77f; + background-image: url(check.svg); + background-repeat: no-repeat; + background-position: center center; + border: 1px solid rgb(0,0,0,.4); +} + +input[type="radio"]:active:checked + label span, +input[type="radio"]:active + label span, +input[type="checkbox"]:active:checked + label span, +input[type="checkbox"]:active + label span { + background-color: #303030; +} + +input[type="radio"]:checked + label span { + background-image: url(rcheck.svg); +} + + +/* +input[type="radio"] + label span { + background: url(buttons.png) -38px top no-repeat; +} + +input[type="radio"]:checked + label span { + background: url(buttons.png) -57px top no-repeat; +} +*/ + +input[type="range"] { + width: var(--sdpi-width); + height: 30px; + overflow: hidden; + cursor: pointer; + background: transparent !important; +} + +.sdpi-item > input[type="range"] { + margin-left: 8px; + max-width: var(--sdpi-width); + width: var(--sdpi-width); + padding: 0px; +} + +/* +input[type="range"], +input[type="range"]::-webkit-slider-runnable-track, +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; +} +*/ + +input[type="range"]::-webkit-slider-runnable-track { + height: 5px; + background: #979797; + border-radius: 3px; + padding: 0px !important; + border: 1px solid var(--sdpi-background); +} + +input[type="range"]::-webkit-slider-thumb { + position: relative; + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -5px; + border: none; +} + +input[type="range" i] { + margin: 0; +} + +input[type="range"]::-webkit-slider-thumb::before { + position: absolute; + content: ""; + height: 5px; /* equal to height of runnable track or 1 less */ + width: 500px; /* make this bigger than the widest range input element */ + left: -502px; /* this should be -2px - width */ + top: 8px; /* don't change this */ + background: #77f; +} + +input[type="color"] { + min-width: 32px; + min-height: 32px; + width: 32px; + height: 32px; + padding: 0; + background-color: var(--sdpi-bgcolor); + flex: none; +} + +::-webkit-color-swatch { + min-width: 24px; +} + +textarea { + height: 3em; + word-break: break-word; + line-height: 1.5em; +} + +.textarea { + padding: 0px !important; +} + +textarea { + width: 221px; /*98%;*/ + height: 96%; + min-height: 6em; + resize: none; + border-radius: var(--sdpi-borderradius); +} + +/* CAROUSEL */ + +.sdpi-item[type="carousel"] { +} + +.sdpi-item.card-carousel-wrapper, +.sdpi-item > .card-carousel-wrapper { + padding: 0; +} + + +.card-carousel-wrapper { + display: flex; + align-items: center; + justify-content: center; + margin: 12px auto; + color: #666a73; +} + +.card-carousel { + display: flex; + justify-content: center; + width: 278px; +} + +.card-carousel--overflow-container { + overflow: hidden; +} + +.card-carousel--nav__left, +.card-carousel--nav__right { + /* display: inline-block; */ + width: 12px; + height: 12px; + border-top: 2px solid #42b883; + border-right: 2px solid #42b883; + cursor: pointer; + margin: 0 4px; + transition: transform 150ms linear; +} + + .card-carousel--nav__left[disabled], + .card-carousel--nav__right[disabled] { + opacity: 0.2; + border-color: black; + } + +.card-carousel--nav__left { + transform: rotate(-135deg); +} + + .card-carousel--nav__left:active { + transform: rotate(-135deg) scale(0.85); + } + +.card-carousel--nav__right { + transform: rotate(45deg); +} + + .card-carousel--nav__right:active { + transform: rotate(45deg) scale(0.85); + } + +.card-carousel-cards { + display: flex; + transition: transform 150ms ease-out; + transform: translatex(0px); +} + + .card-carousel-cards .card-carousel--card { + margin: 0 5px; + cursor: pointer; + /* box-shadow: 0 4px 15px 0 rgba(40, 44, 53, 0.06), 0 2px 2px 0 rgba(40, 44, 53, 0.08); */ + background-color: #fff; + border-radius: 4px; + z-index: 3; + } + +.xxcard-carousel-cards .card-carousel--card:first-child { + margin-left: 0; +} + +.xxcard-carousel-cards .card-carousel--card:last-child { + margin-right: 0; +} + +.card-carousel-cards .card-carousel--card img { + vertical-align: bottom; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + transition: opacity 150ms linear; + width: 60px; +} + + .card-carousel-cards .card-carousel--card img:hover { + opacity: 0.5; + } + +.card-carousel-cards .card-carousel--card--footer { + border-top: 0; + max-width: 80px; + overflow: hidden; + display: flex; + height: 100%; + flex-direction: column; +} + + .card-carousel-cards .card-carousel--card--footer p { + padding: 3px 0; + margin: 0; + margin-bottom: 2px; + font-size: 15px; + font-weight: 500; + color: #2c3e50; + } + + .card-carousel-cards .card-carousel--card--footer p:nth-of-type(2) { + font-size: 12px; + font-weight: 300; + padding: 6px; + color: #666a73; + } + + +h1 { + font-size: 1.3em; + font-weight: 500; + text-align: center; + margin-bottom: 12px; +} + + + +::-webkit-datetime-edit { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + background: url(elg_calendar_inv.svg) no-repeat left center; + padding-right: 1em; + padding-left: 25px; + background-position: 4px 0px; +} + +::-webkit-datetime-edit-fields-wrapper { +} + +::-webkit-datetime-edit-text { + padding: 0 0.3em; +} + +::-webkit-datetime-edit-month-field { +} + +::-webkit-datetime-edit-day-field { +} + +::-webkit-datetime-edit-year-field { +} + +::-webkit-inner-spin-button { + /* display: none; */ +} + +::-webkit-calendar-picker-indicator { + background: transparent; + font-size: 17px; +} + + ::-webkit-calendar-picker-indicator:focus { + background-color: rgba(0,0,0,0.2); + } + +input[type="date"] { + -webkit-align-items: center; + display: -webkit-inline-flex; + font-family: monospace; + overflow: hidden; + padding: 0; + -webkit-padding-start: 1px; +} + +input::-webkit-datetime-edit { + -webkit-flex: 1; + -webkit-user-modify: read-only !important; + display: inline-block; + min-width: 0; + overflow: hidden; +} + +/* +input::-webkit-datetime-edit-fields-wrapper { + -webkit-user-modify: read-only !important; + display: inline-block; + padding: 1px 0; + white-space: pre; + +} +*/ + +/* +input[type="date"] { + background-color: red; + outline: none; +} + +input[type="date"]::-webkit-clear-button { + font-size: 18px; + height: 30px; + position: relative; +} + +input[type="date"]::-webkit-inner-spin-button { + height: 28px; +} + +input[type="date"]::-webkit-calendar-picker-indicator { + font-size: 15px; +} */ + +input[type="file"] { + opacity: 0; + display: none; +} + +.sdpi-item > input[type="file"] { + opacity: 1; + display: flex; +} + +input[type="file"] + span { + display: flex; + flex: 0 1 auto; + background-color: #0000ff50; +} + +label.sdpi-file-label { + cursor: pointer; + user-select: none; + display: inline-block; + min-height: 21px !important; + height: 21px !important; + line-height: 20px; + padding: 0px 4px; + margin: auto; + margin-right: 0px; + float: right; +} + + .sdpi-file-label > label:active, + .sdpi-file-label.file:active, + label.sdpi-file-label:active, + label.sdpi-file-info:active, + input[type="file"]::-webkit-file-upload-button:active, + button:active { + background-color: var(--sdpi-color); + color: #303030; + } + + +input:required:invalid, input:focus:invalid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPgogICAgPHBhdGggZmlsbD0iI0Q4RDhEOCIgZD0iTTQuNSwwIEM2Ljk4NTI4MTM3LC00LjU2NTM4NzgyZS0xNiA5LDIuMDE0NzE4NjMgOSw0LjUgQzksNi45ODUyODEzNyA2Ljk4NTI4MTM3LDkgNC41LDkgQzIuMDE0NzE4NjMsOSAzLjA0MzU5MTg4ZS0xNiw2Ljk4NTI4MTM3IDAsNC41IEMtMy4wNDM1OTE4OGUtMTYsMi4wMTQ3MTg2MyAyLjAxNDcxODYzLDQuNTY1Mzg3ODJlLTE2IDQuNSwwIFogTTQsMSBMNCw2IEw1LDYgTDUsMSBMNCwxIFogTTQuNSw4IEM0Ljc3NjE0MjM3LDggNSw3Ljc3NjE0MjM3IDUsNy41IEM1LDcuMjIzODU3NjMgNC43NzYxNDIzNyw3IDQuNSw3IEM0LjIyMzg1NzYzLDcgNCw3LjIyMzg1NzYzIDQsNy41IEM0LDcuNzc2MTQyMzcgNC4yMjM4NTc2Myw4IDQuNSw4IFoiLz4KICA8L3N2Zz4) no-repeat 98% center; +} + +input:required:valid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPjxwb2x5Z29uIGZpbGw9IiNEOEQ4RDgiIHBvaW50cz0iNS4yIDEgNi4yIDEgNi4yIDcgMy4yIDcgMy4yIDYgNS4yIDYiIHRyYW5zZm9ybT0icm90YXRlKDQwIDQuNjc3IDQpIi8+PC9zdmc+) no-repeat 98% center; +} + +.tooltip, +:tooltip, +:title { + color: yellow; +} + +[title]:hover { + display: flex; + align-items: center; + justify-content: center; +} + + [title]:hover::after { + content: ''; + position: absolute; + bottom: -1000px; + left: 8px; + display: none; + color: #fff; + border: 8px solid transparent; + border-bottom: 8px solid #000; + } + + [title]:hover::before { + content: attr(title); + display: flex; + justify-content: center; + align-self: center; + padding: 6px 12px; + border-radius: 5px; + background: rgba(0,0,0,0.8); + color: var(--sdpi-color); + font-size: 9pt; + font-family: sans-serif; + opacity: 1; + position: absolute; + height: auto; + /* width: 50%; + left: 35%; */ + text-align: center; + bottom: 2px; + z-index: 100; + box-shadow: 0px 3px 6px rgba(0, 0, 0, .5); + /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */ + } + +.sdpi-item-group.file { + width: 232px; + display: flex; + align-items: center; +} + +.sdpi-file-info { + overflow-wrap: break-word; + word-wrap: break-word; + hyphens: auto; + min-width: 132px; + max-width: 144px; + max-height: 32px; + margin-top: 0px; + margin-left: 5px; + display: inline-block; + overflow: hidden; + padding: 6px 4px; + background-color: var(--sdpi-background); +} + + +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); +} + +::-webkit-scrollbar-thumb { + background-color: #999999; + outline: 1px solid slategrey; + border-radius: 8px; +} + +a { + color: #7397d2; +} + +.testcontainer { + display: flex; + background-color: #0000ff20; + max-width: 400px; + height: 200px; + align-content: space-evenly; +} + +input[type=range] { + -webkit-appearance: none; + /* background-color: green; */ + height: 6px; + margin-top: 12px; + z-index: 0; + overflow: visible; +} + +/* +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -6px; + border: none; +} */ + +:-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 16px; + height: 16px; + border-radius: 20px; + margin-top: -6px; + border: 1px solid #999999; +} + +.sdpi-item[type="range"] .sdpi-item-group { + display: flex; + flex-direction: column; +} + +.xxsdpi-item[type="range"] .sdpi-item-group input { + max-width: 204px; +} + +.sdpi-item[type="range"] .sdpi-item-group span { + margin-left: 0px !important; +} + +.sdpi-item[type="range"] .sdpi-item-group > .sdpi-item-child { + display: flex; + flex-direction: row; +} + +:disabled { + color: #993333; +} + +select, +select option { + color: var(--sdpi-color); +} + + select.disabled, + select option:disabled { + color: #fd9494; + font-style: italic; + } + +.runningAppsContainer { + display: none; +} + +/* debug +div { + background-color: rgba(64,128,255,0.2); +} +*/ + +.min80 > .sdpi-item-child { + min-width: 80px; +} + +.min100 > .sdpi-item-child { + min-width: 100px; +} + +.min120 > .sdpi-item-child { + min-width: 120px; +} + +.min140 > .sdpi-item-child { + min-width: 140px; +} + +.min160 > .sdpi-item-child { + min-width: 160px; +} + +.min200 > .sdpi-item-child { + min-width: 200px; +} + +.max40 { + flex-basis: 40%; + flex-grow: 0; +} + +.max30 { + flex-basis: 30%; + flex-grow: 0; +} + +.max20 { + flex-basis: 20%; + flex-grow: 0; +} + +.up20 { + margin-top: -20px; +} + +.alignCenter { + align-items: center; +} + +.alignTop { + align-items: flex-start; +} + +.alignBaseline { + align-items: baseline; +} + +.noMargins, +.noMargins *, +.noInnerMargins * { + margin: 0; + padding: 0; +} diff --git a/src/SampleWebPlugin/property_inspector/js/property-inspector.js b/src/SampleWebPlugin/property_inspector/js/property-inspector.js new file mode 100644 index 0000000..8e090fc --- /dev/null +++ b/src/SampleWebPlugin/property_inspector/js/property-inspector.js @@ -0,0 +1,60 @@ +// global websocket, used to communicate from/to Stream Deck software +// as well as some info about our plugin, as sent by Stream Deck software +var websocket = null, + uuid = null, + inInfo = null, + actionInfo = {}, + settingsModel = { + Counter: 0 + }; + +function connectElgatoStreamDeckSocket(inPort, inUUID, inRegisterEvent, inInfo, inActionInfo) { + uuid = inUUID; + actionInfo = JSON.parse(inActionInfo); + inInfo = JSON.parse(inInfo); + websocket = new WebSocket('ws://localhost:' + inPort); + + //initialize values + if (actionInfo.payload.settings.settingsModel) { + settingsModel.Counter = actionInfo.payload.settings.settingsModel.Counter; + } + + document.getElementById('txtCounterValue').value = settingsModel.Counter; + + websocket.onopen = function () { + var json = { event: inRegisterEvent, uuid: inUUID }; + // register property inspector to Stream Deck + websocket.send(JSON.stringify(json)); + + }; + + websocket.onmessage = function (evt) { + // Received message from Stream Deck + var jsonObj = JSON.parse(evt.data); + var sdEvent = jsonObj['event']; + switch (sdEvent) { + case "didReceiveSettings": + if (jsonObj.payload.settings.settingsModel.Counter) { + settingsModel.Counter = jsonObj.payload.settings.settingsModel.Counter; + document.getElementById('txtCounterValue').value = settingsModel.Counter; + } + break; + default: + break; + } + }; +} + +function setSettings(value, param) { + if (websocket) { + settingsModel[param] = value; + var json = { + "event": "setSettings", + "context": uuid, + "payload": { + "settingsModel": settingsModel + } + }; + websocket.send(JSON.stringify(json)); + } +}; diff --git a/src/SampleWebPlugin/property_inspector/property_inspector.html b/src/SampleWebPlugin/property_inspector/property_inspector.html new file mode 100644 index 0000000..7ed2669 --- /dev/null +++ b/src/SampleWebPlugin/property_inspector/property_inspector.html @@ -0,0 +1,25 @@ + + + + + SamplePlugin Property Inspector + + + + +
    + + +
    +
    Counter Value
    + +
    + +
    + + + diff --git a/src/StreamDeckLib.Config/StreamDeckLib.Config.csproj b/src/StreamDeckLib.Config/StreamDeckLib.Config.csproj index 2c61f0e..c642aa9 100644 --- a/src/StreamDeckLib.Config/StreamDeckLib.Config.csproj +++ b/src/StreamDeckLib.Config/StreamDeckLib.Config.csproj @@ -5,11 +5,11 @@ - - + + - - + + diff --git a/src/StreamDeckLib.Test/ActionManager_UnitTests.cs b/src/StreamDeckLib.Test/ActionManager_UnitTests.cs index 6834f99..070fe9d 100644 --- a/src/StreamDeckLib.Test/ActionManager_UnitTests.cs +++ b/src/StreamDeckLib.Test/ActionManager_UnitTests.cs @@ -13,10 +13,12 @@ public void ThrowActionNotRegisteredException_WhenRetrievingAnUnregisteredAction // Arrange using (var SUT = new ActionManager(null)) { + var cm = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) + .RegisterActionType("Unique_Action_ID_1", typeof(StubAction)); // Act // Assert - Assert.Throws(() => SUT.GetAction("UUID1")); + Assert.Throws(() => SUT.GetAction(cm, "UUID1")); } } @@ -29,16 +31,18 @@ public void ShowOneSingleActionRegistered_WhenRegisteringOnlyOneAction() // var testAction = new StubAction(); - BaseStreamDeckAction returnedAction; + BaseStreamDeckAction returnedAction=null; // // Act // using (var SUT = new ActionManager(null)) { + var cm = ConnectionManager.Initialize(StubProxy.ValidCommandLineArguments) + .RegisterActionType("Unique_Action_ID_1", typeof(StubAction)); SUT.RegisterAction("UUID1"); - returnedAction = SUT.GetActionInstance("UUID1"); + returnedAction = SUT.GetActionInstance(cm, "UUID1"); } // @@ -120,4 +124,4 @@ public void ShouldReturnTrue_WhenInquiredAboutRegistrationOfActionUUIDWithDiffer } } -} \ No newline at end of file +} diff --git a/src/StreamDeckLib/ActionManager.cs b/src/StreamDeckLib/ActionManager.cs index 456c683..d6e44e0 100644 --- a/src/StreamDeckLib/ActionManager.cs +++ b/src/StreamDeckLib/ActionManager.cs @@ -8,317 +8,314 @@ namespace StreamDeckLib { + public partial class ActionManager : IDisposable + { + #region Type and instance properties - public partial class ActionManager : IDisposable - { - #region Type and instance properties - - // We will use a string equality comparer for our dictionaries which ignores case and is for invariant culture. - private static readonly IEqualityComparer _StringEqualityComparer = StringComparer.Create(CultureInfo.InvariantCulture, true); - - //string is the action UUID, type is the class type of the action - private readonly Dictionary _Actions; + // We will use a string equality comparer for our dictionaries which ignores case and is for invariant culture. + private static readonly IEqualityComparer _StringEqualityComparer = StringComparer.Create(CultureInfo.InvariantCulture, true); - //string is the context, there will only ever be one action per context - private readonly Dictionary _ActionInstances; + //string is the action UUID, type is the class type of the action + private readonly Dictionary _Actions; - // The logger we will receive when being instantiated. Defaults to a NullLogger is none is specified. - private readonly ILogger _Logger; + //string is the context, there will only ever be one action per context + private readonly Dictionary _ActionInstances; - private ConnectionManager _ConnectionManager; + // The logger we will receive when being instantiated. Defaults to a NullLogger is none is specified. + private readonly ILogger _Logger; - #endregion + #endregion - #region Constructors + #region Constructors - private ActionManager() - { - this._Actions = new Dictionary(_StringEqualityComparer); - this._ActionInstances = new Dictionary(_StringEqualityComparer); - } + private ActionManager() + { + this._Actions = new Dictionary(_StringEqualityComparer); + this._ActionInstances = new Dictionary(_StringEqualityComparer); + } - /// - /// Initializes a new instance of the class. - /// - /// An instance of a logger ( class. - public ActionManager(ConnectionManager manager, ILogger logger = null) : this() - { - this._Logger = logger ?? NullLoggerFactory.Instance.CreateLogger(nameof(ActionManager)); - this._ConnectionManager = manager; - } + /// + /// Initializes a new instance of the class. + /// + /// An instance of a logger ( class. + public ActionManager(ILogger logger = null) : this() + { + this._Logger = logger ?? NullLoggerFactory.Instance.CreateLogger(); + } - #endregion + #endregion - #region Action registration methods + #region Action registration methods - /// - /// Registers an action type for a given UUID. - /// - /// The instance of . - /// The UUID for the action. - /// The type to be registered for the . Must inherit from . - public ActionManager RegisterAction(string actionUUID) - where TActionType : BaseStreamDeckAction - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAction)}(string)"); + /// + /// Registers an action type for a given UUID. + /// + /// The instance of . + /// The UUID for the action. + /// The type to be registered for the . Must inherit from . + public ActionManager RegisterAction(string actionUUID) + where TActionType : BaseStreamDeckAction + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAction)}(string)"); - this._Actions.Add(actionUUID, typeof(TActionType)); - return this; - } + this._Actions.Add(actionUUID, typeof(TActionType)); + return this; + } - /// - /// Registers an action type for a given UUID. - /// - /// The instance of . - /// The UUID for the action. - /// The type to be registered for the . Must inherit from . - /// If the does not inherit from , - /// a exception is thrown. - public ActionManager RegisterActionType(string actionUuid, Type actionType) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterActionType)}(string, Type)"); - - // Check that we've got a UUID to use for registration. - if (string.IsNullOrWhiteSpace(actionUuid)) - { - throw new IncompleteActionDefinitionException($"The UUID for the \"{actionType.Name}\" action was not specified."); - } - - if (_Actions.ContainsKey(actionUuid)) - { - throw new DuplicateActionRegistrationException(actionUuid); - } - - // Ensure that the type we're registering inherits from BaseStreamDeckAction. - if (!actionType.IsSubclassOf(typeof(BaseStreamDeckAction))) - { - throw new TypeDoesNotInheritFromBaseStreamDeckAction(actionType.Name, actionType.FullName, actionType.Assembly.FullName); - } - - this._Actions.Add(actionUuid, actionType); - return this; - } + /// + /// Registers an action type for a given UUID. + /// + /// The instance of . + /// The UUID for the action. + /// The type to be registered for the . Must inherit from . + /// If the does not inherit from , + /// a exception is thrown. + public ActionManager RegisterActionType(string actionUuid, Type actionType) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterActionType)}(string, Type)"); + + // Check that we've got a UUID to use for registration. + if (string.IsNullOrWhiteSpace(actionUuid)) + { + throw new IncompleteActionDefinitionException($"The UUID for the \"{actionType.Name}\" action was not specified."); + } + + if (_Actions.ContainsKey(actionUuid)) + { + throw new DuplicateActionRegistrationException(actionUuid); + } + + // Ensure that the type we're registering inherits from BaseStreamDeckAction. + if (!actionType.IsSubclassOf(typeof(BaseStreamDeckAction))) + { + throw new TypeDoesNotInheritFromBaseStreamDeckAction(actionType.Name, actionType.FullName, actionType.Assembly.FullName); + } + + this._Actions.Add(actionUuid, actionType); + return this; + } - /// - /// Registers all actions which are decorated with an - /// withn a given . - /// - /// The instance of . - /// The from within which actions are to be registered. - public ActionManager RegisterAllActions(Assembly actionsAssembly) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAllActions)}(assembly)"); - - var actions = actionsAssembly.GetTypes().Where(type => Attribute.IsDefined(type, typeof(ActionUuidAttribute))); - foreach (var actionType in actions) - { - var attr = actionType.GetCustomAttributes(typeof(ActionUuidAttribute), true).FirstOrDefault() as ActionUuidAttribute; - this.RegisterActionType(attr.Uuid, actionType); - } - return this; - } + /// + /// Registers all actions which are decorated with an + /// withn a given . + /// + /// The instance of . + /// The from within which actions are to be registered. + public ActionManager RegisterAllActions(Assembly actionsAssembly) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAllActions)}(assembly)"); + + var actions = actionsAssembly.GetTypes().Where(type => Attribute.IsDefined(type, typeof(ActionUuidAttribute))); + foreach (var actionType in actions) + { + var attr = actionType.GetCustomAttributes(typeof(ActionUuidAttribute), true).FirstOrDefault() as ActionUuidAttribute; + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAllActions)}({actionType}) {attr.Uuid}"); + this.RegisterActionType(attr.Uuid, actionType); + } + return this; + } - #endregion + #endregion - #region Action instance creation and retrieval + #region Action instance creation and retrieval - /// - /// Gets an instance of an action from an action UUID. - /// - /// A new instance of an action. - /// The UUID of the action type which is requested. - /// The specific type of action to be returned. - /// If no type is found to match the , an exception - /// of type is thrown. - public TActionType GetActionInstance(string actionUUID) - where TActionType : BaseStreamDeckAction - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(GetActionInstance)}(string)"); + /// + /// Gets an instance of an action from an action UUID. + /// + /// A new instance of an action. + /// The UUID of the action type which is requested. + /// The specific type of action to be returned. + /// If no type is found to match the , an exception + /// of type is thrown. + public TActionType GetActionInstance(ConnectionManager connectionManager, string actionUUID) + where TActionType : BaseStreamDeckAction + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(GetActionInstance)}(string)"); - if (this._Actions.ContainsKey(actionUUID)) - { - var instance = Activator.CreateInstance(this._Actions[actionUUID]) as TActionType; - instance.Logger = _Logger; - instance.Manager = _ConnectionManager; - return instance; - } + if (this._Actions.ContainsKey(actionUUID)) + { + var instance = Activator.CreateInstance(this._Actions[actionUUID]) as TActionType; + instance.Logger = _Logger; + instance.Manager = connectionManager; + return instance; + } - throw new ActionNotRegisteredException(actionUUID); - } + throw new ActionNotRegisteredException(actionUUID); + } - /// - /// Checks whether an action is registered for a given UUID. - /// - /// true, if action registered was registered, false otherwise. - /// The UUID to check - public bool IsActionRegistered(string actionUUID) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(IsActionRegistered)}(string)"); + /// + /// Checks whether an action is registered for a given UUID. + /// + /// true, if action registered was registered, false otherwise. + /// The UUID to check + public bool IsActionRegistered(string actionUUID) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(IsActionRegistered)}(string)"); - return this._Actions.ContainsKey(actionUUID); - } + return this._Actions.ContainsKey(actionUUID); + } - /// - /// Gets a new instance of an registered with a UUID - /// of . This instance will not be stored or managed, - /// and cannot be reused. - /// - /// A new instance of the action - /// The UUID of the action type which is to be instantiated - /// - /// Throws a exception if there is no action with - /// a UUID of registered. - /// - public BaseStreamDeckAction GetAction(string actionUUID) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(GetAction)}(string)"); + /// + /// Gets a new instance of an registered with a UUID + /// of . This instance will not be stored or managed, + /// and cannot be reused. + /// + /// A new instance of the action + /// The UUID of the action type which is to be instantiated + /// + /// Throws a exception if there is no action with + /// a UUID of registered. + /// + public BaseStreamDeckAction GetAction(ConnectionManager connectionManager, string actionUUID) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(GetAction)}(string)"); - return this.CreateActionInstanceByUUID(actionUUID); - } + return this.CreateActionInstanceByUUID(connectionManager, actionUUID); + } - private BaseStreamDeckAction CreateActionInstanceByUUID(string actionUuid, bool throwIfNotRegistered = true) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(CreateActionInstanceByUUID)}(string, bool)"); - if (this._Actions.ContainsKey(actionUuid)) - { - var instance = Activator.CreateInstance(this._Actions[actionUuid]) as BaseStreamDeckAction; - instance.Logger = _Logger; - instance.Manager = _ConnectionManager; - return instance; - - } - - if (throwIfNotRegistered) - { - throw new ActionNotRegisteredException(actionUuid); - } - - return null; - } + private BaseStreamDeckAction CreateActionInstanceByUUID(ConnectionManager connectionManager, string actionUuid, bool throwIfNotRegistered = true) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(CreateActionInstanceByUUID)}(string, bool)"); + if (this._Actions.ContainsKey(actionUuid)) + { + var instance = Activator.CreateInstance(this._Actions[actionUuid]) as BaseStreamDeckAction; + instance.Logger = _Logger; + instance.Manager = connectionManager; + return instance; + + } + + if (throwIfNotRegistered) + { + throw new ActionNotRegisteredException(actionUuid); + } + + return null; + } - #endregion + #endregion - #region Specific action instance creation, registration, and retrieval (by Stream Deck context) + #region Specific action instance creation, registration, and retrieval (by Stream Deck context) - /// - /// Registers the action instance. - /// - /// The action instance. - /// The key to be used when registering the action instance. - /// This is typically the value of the . - /// Action instance. - public ActionManager RegisterActionInstance(string instanceKey, BaseStreamDeckAction actionInstance) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAction)}(string, BaseStreamDeckAction)"); - return this.RegisterActionInstanceInternal(instanceKey, actionInstance); - } + /// + /// Registers the action instance. + /// + /// The action instance. + /// The key to be used when registering the action instance. + /// This is typically the value of the . + /// Action instance. + public ActionManager RegisterActionInstance(string instanceKey, BaseStreamDeckAction actionInstance) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterAction)}(string, BaseStreamDeckAction)"); + return this.RegisterActionInstanceInternal(instanceKey, actionInstance); + } - private ActionManager RegisterActionInstanceInternal(string instanceKey, BaseStreamDeckAction actionInstance, bool throwIfInstanceIsNull = true) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterActionInstanceInternal)}(string, BaseStreamDeckAction, bool)"); + private ActionManager RegisterActionInstanceInternal(string instanceKey, BaseStreamDeckAction actionInstance, bool throwIfInstanceIsNull = true) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(RegisterActionInstanceInternal)}(string, BaseStreamDeckAction, bool)"); - if (null == actionInstance && (!throwIfInstanceIsNull)) - { - this._Logger.LogDebug($"The instance to register with a key of {instanceKey} was null, but prevent raising an exception was specified."); - return this; - } + if (null == actionInstance && (!throwIfInstanceIsNull)) + { + this._Logger?.LogDebug($"The instance to register with a key of {instanceKey} was null, but prevent raising an exception was specified."); + return this; + } - if (null == actionInstance && throwIfInstanceIsNull) - { - throw new ArgumentNullException($"Could not register an action instance with a key of \"{instanceKey}\""); - } + if (null == actionInstance && throwIfInstanceIsNull) + { + throw new ArgumentNullException($"Could not register an action instance with a key of \"{instanceKey}\""); + } - this._Logger.LogDebug($"Registering an instance of {actionInstance.GetType().FullName} with a key of \"{instanceKey}\"."); - if (this._ActionInstances.ContainsKey(instanceKey)) - { - throw new DuplicateActionInstanceRegistrationException(instanceKey); - } + this._Logger?.LogDebug($"Registering an instance of {actionInstance.GetType().FullName} with a key of \"{instanceKey}\"."); + if (this._ActionInstances.ContainsKey(instanceKey)) + { + throw new DuplicateActionInstanceRegistrationException(instanceKey); + } - this._ActionInstances.Add(instanceKey, actionInstance); + this._ActionInstances.Add(instanceKey, actionInstance); - return this; - } + return this; + } - /// - /// Gets the instance of action. - /// - /// The instance of action. - /// Context. - /// Action UUID. - internal BaseStreamDeckAction GetActionForContext(string context, string actionUuid) - { - this._Logger.LogTrace($"{nameof(ActionManager)}.{nameof(GetActionForContext)}(string, string)"); + /// + /// Gets the instance of action. + /// + /// The instance of action. + /// Context. + /// Action UUID. + internal BaseStreamDeckAction GetActionForContext(ConnectionManager connectionManager, string context, string actionUuid) + { + this._Logger?.LogTrace($"{nameof(ActionManager)}.{nameof(GetActionForContext)}(string, string)"); - //see if context exists, if so, return the associated action - if (this._ActionInstances.ContainsKey(context)) - { - return this._ActionInstances[context]; - } + //see if context exists, if so, return the associated action + if (this._ActionInstances.ContainsKey(context)) + { + return this._ActionInstances[context]; + } - //see if we have a recorded type for the action - var actionInstance = this.CreateActionInstanceByUUID(actionUuid, false); - this.RegisterActionInstanceInternal(context, actionInstance, false); + //see if we have a recorded type for the action + var actionInstance = this.CreateActionInstanceByUUID(connectionManager, actionUuid, false); + this.RegisterActionInstanceInternal(context, actionInstance, false); - return actionInstance; - } + return actionInstance; + } - public Dictionary GetAllActions() - { - return _ActionInstances; - } + public Dictionary GetAllActions() + { + return _ActionInstances; + } - #endregion + #endregion - #region IDisposable Support + #region IDisposable Support - private bool disposedValue = false; // To detect redundant calls + private bool disposedValue = false; // To detect redundant calls - protected virtual void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) + protected virtual void Dispose(bool disposing) { - // TODO: dispose managed state (managed objects). + if (!disposedValue) + { + if (disposing) + { + // TODO: dispose managed state (managed objects). + } + + // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. + // TODO: set large fields to null. + + disposedValue = true; + } } - // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. - // TODO: set large fields to null. + // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources. + // ~ActionManager() { + // // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + // Dispose(false); + // } - disposedValue = true; - } - } + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // TODO: uncomment the following line if the finalizer is overridden above. + // GC.SuppressFinalize(this); + } - // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources. - // ~ActionManager() { - // // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - // Dispose(false); - // } + #endregion - // This code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - // TODO: uncomment the following line if the finalizer is overridden above. - // GC.SuppressFinalize(this); } - - #endregion - - } } diff --git a/src/StreamDeckLib/ConnectionManager.cs b/src/StreamDeckLib/ConnectionManager.cs index de7a6a7..f55fe27 100644 --- a/src/StreamDeckLib/ConnectionManager.cs +++ b/src/StreamDeckLib/ConnectionManager.cs @@ -1,8 +1,10 @@ using McMaster.Extensions.CommandLineUtils; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; using Newtonsoft.Json; using StreamDeckLib.Messages; +using StreamDeckLib.Models; using System; using System.Diagnostics; using System.IO; @@ -13,403 +15,400 @@ namespace StreamDeckLib { - /// - /// This class manages the connection to the StreamDeck hardware - /// - public partial class ConnectionManager : IDisposable - { - private int _Port; - private string _Uuid; - private string _RegisterEvent; - private IStreamDeckProxy _Proxy; - private IGlobalSettings _GlobalSettings; - - // Cheer 225 cpayette 26/2/19 - // Cheer 10700 roberttables 26/2/19 - // Cheer 840 auth0bobby 26/2/19 - // Cheer 13629 themichaeljolley 26/2/19 - // Cheer 182 sqlmistermagoo 26/2/19 - // Cheer 100 acrophobicpixie 26/2/19 - // Cheer 492 danerd 26/2/19 - // Cheer 500 tealoldman 26/2/19 - // Cheer 500 kittishomestead 26/2/19 - // Cheer 5500 electrichavoc 26/2/19 - - private ConnectionManager() + /// + /// This class manages the connection to the StreamDeck hardware + /// + public partial class ConnectionManager : IDisposable { - this._ActionManager = new ActionManager(this, _Logger); - } + private readonly int _port; + private readonly string _uuid; + private readonly string _registerEvent; + private IStreamDeckProxy _proxy; + private IGlobalSettings _globalSettings; + public Info Info { get; private set; } + + private ConnectionManager() + { + this._ActionManager = new ActionManager(_LoggerFactory?.CreateLogger()); + } - public Messages.Info Info { get; private set; } + public ConnectionManager(IOptions options, ActionManager actionManager, ILogger logger, IStreamDeckProxy streamDeckProxy = null) + { + if (options == null) throw new ArgumentNullException("options", "Options cannot be null, these should be retrieved from commandline args."); + if (actionManager == null) throw new ArgumentNullException("actionManager", "ActionManager cannot be null, these should be retrieved from commandline args."); + + _ActionManager = actionManager; + _logger = logger; + + var myInfo = JsonConvert.DeserializeObject(options.Value.Info); + Info = myInfo; + _port = options.Value.Port; + _uuid = options.Value.PluginUUID; + _registerEvent = options.Value.RegisterEvent; + _proxy = streamDeckProxy; + } - public static ConnectionManager Initialize(string[] commandLineArgs, - ILoggerFactory loggerFactory = null, - IStreamDeckProxy streamDeckProxy = null) - { - using (var app = new CommandLineApplication()) - { - app.HelpOption(); + private ConnectionManager(StreamDeckToolkitOptions options, ILoggerFactory loggerFactory = null, IStreamDeckProxy streamDeckProxy = null) : this() + { + var myInfo = JsonConvert.DeserializeObject(options.Info); + Info = myInfo; + _port = options.Port; + _uuid = options.PluginUUID; + _registerEvent = options.RegisterEvent; + _proxy = streamDeckProxy; + + _LoggerFactory = loggerFactory ?? NullLoggerFactory.Instance; + _logger = loggerFactory?.CreateLogger(); + } - var optionPort = app.Option("-port|--port ", - "The port the Elgato StreamDeck software is listening on", - CommandOptionType.SingleValue); + public static ConnectionManager Initialize(string[] commandLineArgs, ILoggerFactory loggerFactory = null, IStreamDeckProxy streamDeckProxy = null) + { + try + { + var options = ParseCommandlineArgs(commandLineArgs); + return new ConnectionManager(options, loggerFactory, streamDeckProxy); + } + catch + { + throw new ArgumentException($"{nameof(commandLineArgs)} must be the commandline args that the StreamDeck application calls this program with."); + } + } - var optionPluginUUID = app.Option("-pluginUUID ", - "The UUID that the Elgato StreamDeck software knows this plugin as.", - CommandOptionType.SingleValue); + public ConnectionManager RegisterGlobalSettings(IGlobalSettings settings) + { + _globalSettings = settings; + return this; + } - var optionRegisterEvent = app.Option("-registerEvent ", "The registration event", - CommandOptionType.SingleValue); + public async Task StartAsync(CancellationToken token) + { - var optionInfo = app.Option("-info ", "Some information", CommandOptionType.SingleValue); + TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; - var optionBreak = app.Option("-break", "Attach the debugger", CommandOptionType.NoValue); + await Run(token); - app.Parse(commandLineArgs); + return this; - try - { - return Initialize(optionPort.ParsedValue, optionPluginUUID.Values[0], optionRegisterEvent.Values[0], - optionInfo.Values[0], loggerFactory, - streamDeckProxy ?? new StreamDeckProxy()); } - catch + + public async Task StartAsync() { - throw new ArgumentException($"{nameof(commandLineArgs)} must be the commandline args that the StreamDeck application calls this program with."); + var source = new CancellationTokenSource(); + return await this.StartAsync(source.Token); } - } - } - private static ConnectionManager Initialize(int port, string uuid, - string registerEvent, string info, - ILoggerFactory loggerFactory, - IStreamDeckProxy streamDeckProxy, - ActionManager actionManager = null) - { - // TODO: Validate the info parameter - var myInfo = JsonConvert.DeserializeObject(info); - - _LoggerFactory = loggerFactory ?? NullLoggerFactory.Instance; - _Logger = loggerFactory?.CreateLogger("ConnectionManager") ?? NullLogger.Instance; - - var manager = new ConnectionManager() - { - _Port = port, - _Uuid = uuid, - _RegisterEvent = registerEvent, - Info = myInfo, - _Proxy = streamDeckProxy - }; - - return manager; - } + private static StreamDeckToolkitOptions ParseCommandlineArgs(string[] args) + { + using (var app = new CommandLineApplication()) + { + app.HelpOption(); - public ConnectionManager RegisterGlobalSettings(IGlobalSettings settings) - { - _GlobalSettings = settings; - return this; - } + var optionPort = app.Option("-port|--port ", + "The port the Elgato StreamDeck software is listening on", + CommandOptionType.SingleValue); - public async Task StartAsync(CancellationToken token) - { + var optionPluginUUID = app.Option("-pluginUUID ", + "The UUID that the Elgato StreamDeck software knows this plugin as.", + CommandOptionType.SingleValue); - TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; + var optionRegisterEvent = app.Option("-registerEvent ", "The registration event", + CommandOptionType.SingleValue); - await Run(token); + var optionInfo = app.Option("-info ", "Some information", CommandOptionType.SingleValue); - return this; + // var optionBreak = app.Option("-break", "Attach the debugger", CommandOptionType.NoValue); - } + app.Parse(args); - public async Task StartAsync() - { + return new StreamDeckToolkitOptions + { + // Break = optionBreak., + Info = optionInfo.ParsedValue, + PluginUUID = optionPluginUUID.ParsedValue, + Port = optionPort.ParsedValue, + RegisterEvent = optionRegisterEvent.ParsedValue + }; + } + } - var source = new CancellationTokenSource(); + private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) + { + _logger?.LogError(e.Exception, "Error handling StreamDeck information"); + } - return await this.StartAsync(source.Token); - } + private async Task Run(CancellationToken token) + { + _logger?.LogTrace($"{nameof(ConnectionManager)}.{nameof(Run)} port:{_port}, event: {_registerEvent}, uuid: {_uuid}"); - private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) - { - _Logger.LogError(e.Exception, "Error handling StreamDeck information"); - } + await _proxy.ConnectAsync(new Uri($"ws://localhost:{_port}"), token); + _logger?.LogTrace($"{nameof(ConnectionManager)}.{nameof(Run)} Connected"); + await _proxy.Register(_registerEvent, _uuid); + _logger?.LogTrace($"{nameof(ConnectionManager)}.{nameof(Run)} Registered"); - private async Task Run(CancellationToken token) - { + var keepRunning = true; - await _Proxy.ConnectAsync(new Uri($"ws://localhost:{_Port}"), token); - await _Proxy.Register(_RegisterEvent, _Uuid); + while (!token.IsCancellationRequested && keepRunning) + { + // Exit loop if the socket is closed or aborted + switch (_proxy.State) + { + case WebSocketState.CloseReceived: + case WebSocketState.Closed: + case WebSocketState.Aborted: + keepRunning = false; - var keepRunning = true; + break; + } - while (!token.IsCancellationRequested && keepRunning) - { - // Exit loop if the socket is closed or aborted - switch (_Proxy.State) - { - case WebSocketState.CloseReceived: - case WebSocketState.Closed: - case WebSocketState.Aborted: - keepRunning = false; + if (!keepRunning) break; - break; - } + var jsonString = await _proxy.GetMessageAsString(token); - if (!keepRunning) break; + if (!string.IsNullOrEmpty(jsonString) && !jsonString.StartsWith("\0")) + { + try + { + var msg = JsonConvert.DeserializeObject(jsonString); - var jsonString = await _Proxy.GetMessageAsString(token); + if (msg == null) + { + _logger?.LogError($"Unknown message received: {jsonString}"); - if (!string.IsNullOrEmpty(jsonString) && !jsonString.StartsWith("\0")) - { - try - { - var msg = JsonConvert.DeserializeObject(jsonString); + continue; + } - if (msg == null) - { - _Logger.LogError($"Unknown message received: {jsonString}"); + if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) + { + this.BroadcastMessage(msg); + } + else + { + var action = GetInstanceOfAction(msg.context, msg.action); + if (action == null) + { + _logger?.LogWarning($"The action requested (\"{msg.action}\") was not found as being registered with the plugin"); + continue; + } - continue; - } - if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) - { - this.BroadcastMessage(msg); - } - else - { + if (!_EventDictionary.ContainsKey(msg.Event)) + { + _logger?.LogWarning($"Plugin does not handle the event '{msg.Event}'"); - // if (string.IsNullOrWhiteSpace(msg.context) && string.IsNullOrWhiteSpace(msg.action)) - // { - //_Logger.LogInformation($"System event received: ${msg.Event}"); - //continue; - // } - var action = GetInstanceOfAction(msg.context, msg.action); - if (action == null) - { - _Logger.LogWarning($"The action requested (\"{msg.action}\") was not found as being registered with the plugin"); - continue; - } + continue; + } + _EventDictionary[msg.Event]?.Invoke(action, msg); - if (!_EventDictionary.ContainsKey(msg.Event)) - { - _Logger.LogWarning($"Plugin does not handle the event '{msg.Event}'"); + } - continue; - } - _EventDictionary[msg.Event]?.Invoke(action, msg); + } + catch (Exception ex) + { + _logger?.LogError(ex, "Error while processing payload from StreamDeck"); + } + } + await Task.Delay(100); } - - } - catch (Exception ex) - { - _Logger.LogError(ex, "Error while processing payload from StreamDeck"); - } + Dispose(); } - await Task.Delay(100); - } - - Dispose(); - } - - #region StreamDeck Methods + #region StreamDeck Methods - public async Task SetTitleAsync(string context, string newTitle) - { - var args = new SetTitleArgs() - { - context = context, - payload = new SetTitleArgs.Payload + public async Task SetTitleAsync(string context, string newTitle) { - title = newTitle, - TargetType = SetTitleArgs.TargetType.HardwareAndSoftware + var args = new SetTitleArgs() + { + context = context, + payload = new SetTitleArgs.Payload + { + title = newTitle, + TargetType = SetTitleArgs.TargetType.HardwareAndSoftware + } + }; + + await _proxy.SendStreamDeckEvent(args); } - }; - - await _Proxy.SendStreamDeckEvent(args); - } - public async Task SetImageAsync(string context, string imageLocation) - { + public async Task SetImageAsync(string context, string imageLocation) + { - Debug.WriteLine($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); - _Logger.LogDebug($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); + Debug.WriteLine($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); + _logger?.LogDebug($"Getting Image from {new FileInfo(imageLocation).FullName} on disk"); - var imgString = Convert.ToBase64String(File.ReadAllBytes(imageLocation), Base64FormattingOptions.None); + var imgString = Convert.ToBase64String(File.ReadAllBytes(imageLocation), Base64FormattingOptions.None); - var args = new SetImageArgs - { - context = context, - payload = new SetImageArgs.Payload - { - TargetType = SetTitleArgs.TargetType.HardwareAndSoftware, - image = $"data:image/{new FileInfo(imageLocation).Extension.ToLowerInvariant().Substring(1)};base64, {imgString}" + var args = new SetImageArgs + { + context = context, + payload = new SetImageArgs.Payload + { + TargetType = SetTitleArgs.TargetType.HardwareAndSoftware, + image = $"data:image/{new FileInfo(imageLocation).Extension.ToLowerInvariant().Substring(1)};base64, {imgString}" + } + }; + + await _proxy.SendStreamDeckEvent(args); } - }; - - await _Proxy.SendStreamDeckEvent(args); - } - public async Task ShowAlertAsync(string context) - { - var args = new ShowAlertArgs() - { - context = context - }; + public async Task ShowAlertAsync(string context) + { + var args = new ShowAlertArgs() + { + context = context + }; - await _Proxy.SendStreamDeckEvent(args); - } + await _proxy.SendStreamDeckEvent(args); + } - public async Task ShowOkAsync(string context) - { - var args = new ShowOkArgs() - { - context = context - }; + public async Task ShowOkAsync(string context) + { + var args = new ShowOkArgs() + { + context = context + }; - await _Proxy.SendStreamDeckEvent(args); - } + await _proxy.SendStreamDeckEvent(args); + } - public async Task SetSettingsAsync(string context, dynamic value) - { - var args = new SetSettingsArgs() - { - context = context, - payload = new { settingsModel = value } - }; + public async Task SetSettingsAsync(string context, dynamic value) + { + var args = new SetSettingsArgs() + { + context = context, + payload = new { settingsModel = value } + }; - await _Proxy.SendStreamDeckEvent(args); - } + await _proxy.SendStreamDeckEvent(args); + } - public async Task SetGlobalSettingsAsync(string context, dynamic value) - { - var args = new SetGlobalSettingsArgs() - { - context = context, - payload = new { settingsModel = value } - }; + public async Task SetGlobalSettingsAsync(string context, dynamic value) + { + var args = new SetGlobalSettingsArgs() + { + context = context, + payload = new { settingsModel = value } + }; - await _Proxy.SendStreamDeckEvent(args); - } + await _proxy.SendStreamDeckEvent(args); + } - public async Task SetStateAsync(string context, int state) - { - var args = new SetStateArgs - { - context = context, - payload = new SetStateArgs.Payload + public async Task SetStateAsync(string context, int state) { - state = state + var args = new SetStateArgs + { + context = context, + payload = new SetStateArgs.Payload + { + state = state + } + }; + + await _proxy.SendStreamDeckEvent(args); } - }; - await _Proxy.SendStreamDeckEvent(args); - } + public async Task SwitchToProfileAsync(string context, string device, string profileName) + { - public async Task SwitchToProfileAsync(string context, string device, string profileName) - { + var args = new SwitchToProfileArgs + { + context = context, + device = device, + payload = new SwitchToProfileArgs.Payload + { + profile = profileName + } + }; + + await _proxy.SendStreamDeckEvent(args); + } - var args = new SwitchToProfileArgs - { - context = context, - device = device, - payload = new SwitchToProfileArgs.Payload + public async Task OpenUrlAsync(string context, string url) { - profile = profileName + var args = new OpenUrlArgs() + { + context = context, + payload = new OpenUrlArgs.Payload() + { + url = url + } + }; + + await _proxy.SendStreamDeckEvent(args); } - }; - await _Proxy.SendStreamDeckEvent(args); - } - public async Task OpenUrlAsync(string context, string url) - { - var args = new OpenUrlArgs() - { - context = context, - payload = new OpenUrlArgs.Payload() + public async Task GetSettingsAsync(string context) { - url = url + var args = new GetSettingsArgs() { context = context }; + await _proxy.SendStreamDeckEvent(args); } - }; - - await _Proxy.SendStreamDeckEvent(args); - } - - public async Task GetSettingsAsync(string context) - { - var args = new GetSettingsArgs() { context = context }; - await _Proxy.SendStreamDeckEvent(args); - } + public async Task GetGlobalSettingsAsync(string context) + { + var args = new GetGlobalSettingsArgs() { context = context }; + await _proxy.SendStreamDeckEvent(args); + } - public async Task GetGlobalSettingsAsync(string context) - { - var args = new GetGlobalSettingsArgs() { context = context }; - await _Proxy.SendStreamDeckEvent(args); - } - - public async Task LogMessageAsync(string context, string logMessage) - { - var args = new LogMessageArgs() - { - context = context, - payload = new LogMessageArgs.Payload() + public async Task LogMessageAsync(string context, string logMessage) { - message = logMessage + var args = new LogMessageArgs() + { + context = context, + payload = new LogMessageArgs.Payload() + { + message = logMessage + } + }; + await _proxy.SendStreamDeckEvent(args); } - }; - await _Proxy.SendStreamDeckEvent(args); - } - public async Task SendToPropertyInspectorAsync(string context, dynamic settings) - { - var args = new SendToPropertyInspectorArgs() - { - context = context, - payload = settings - }; - await _Proxy.SendStreamDeckEvent(args); - } + public async Task SendToPropertyInspectorAsync(string context, dynamic settings) + { + var args = new SendToPropertyInspectorArgs() + { + context = context, + payload = settings + }; + await _proxy.SendStreamDeckEvent(args); + } - #endregion + #endregion - #region IDisposable Support + #region IDisposable Support - private bool disposedValue = false; // To detect redundant calls - private static ILoggerFactory _LoggerFactory; - private static ILogger _Logger; + private bool disposedValue = false; // To detect redundant calls + private static ILoggerFactory _LoggerFactory; + private readonly ILogger _logger; - void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) + void Dispose(bool disposing) { - _Proxy.Dispose(); + if (!disposedValue) + { + if (disposing) + { + _proxy.Dispose(); + } + + disposedValue = true; + } } - disposedValue = true; - } - } + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // TODO: uncomment the following line if the finalizer is overridden above. + //GC.SuppressFinalize(this); + } - // This code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - // TODO: uncomment the following line if the finalizer is overridden above. - //GC.SuppressFinalize(this); + #endregion } - #endregion - } - } diff --git a/src/StreamDeckLib/ConnectionManager_Actions.cs b/src/StreamDeckLib/ConnectionManager_Actions.cs index 9febc4e..f8adff5 100644 --- a/src/StreamDeckLib/ConnectionManager_Actions.cs +++ b/src/StreamDeckLib/ConnectionManager_Actions.cs @@ -1,3 +1,4 @@ +using Microsoft.Extensions.Logging; using StreamDeckLib.Messages; using System; using System.Collections.Generic; @@ -5,41 +6,42 @@ namespace StreamDeckLib { - partial class ConnectionManager - { - private ActionManager _ActionManager; - - //Cheer 100 svavablount 15/2/19 - public ConnectionManager RegisterActionType(string actionUuid, Type actionType) + partial class ConnectionManager { - this._ActionManager.RegisterActionType(actionUuid, actionType); - return this; - } + private ActionManager _ActionManager; - public BaseStreamDeckAction GetInstanceOfAction(string context, string actionUuid) - { - return this._ActionManager.GetActionForContext(context, actionUuid); - } + public ConnectionManager RegisterActionType(string actionUuid, Type actionType) + { + this._ActionManager.RegisterActionType(actionUuid, actionType); + return this; + } - public ConnectionManager RegisterAllActions(Assembly assembly) - { - this._ActionManager.RegisterAllActions(assembly); - return this; - } + public BaseStreamDeckAction GetInstanceOfAction(string context, string actionUuid) + { + return this._ActionManager.GetActionForContext(this, context, actionUuid); + } - public void BroadcastMessage(StreamDeckEventPayload msg) - { - var actions = GetAllActions(); - foreach (var entry in actions) - { - _EventDictionary[msg.Event]?.Invoke(entry.Value, msg); - } - } + public ConnectionManager RegisterAllActions(Assembly assembly) + { + _logger?.LogInformation("ConnectionManager:RegisterAllActions: Started"); + _ActionManager.RegisterAllActions(assembly); + _logger?.LogInformation("ConnectionManager:RegisterAllActions: Finished"); + return this; + } - public Dictionary GetAllActions() - { - return this._ActionManager.GetAllActions(); - } + public void BroadcastMessage(StreamDeckEventPayload msg) + { + var actions = GetAllActions(); + foreach (var entry in actions) + { + _EventDictionary[msg.Event]?.Invoke(entry.Value, msg); + } + } + + public Dictionary GetAllActions() + { + return this._ActionManager.GetAllActions(); + } - } + } } diff --git a/src/StreamDeckLib/Extensions/DependencyInjectionExtensions.cs b/src/StreamDeckLib/Extensions/DependencyInjectionExtensions.cs new file mode 100644 index 0000000..114bd7f --- /dev/null +++ b/src/StreamDeckLib/Extensions/DependencyInjectionExtensions.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using StreamDeckLib.HostedServices; +using StreamDeckLib.Models; +using System.Reflection; + +namespace StreamDeckLib.DependencyInjection +{ + public static class DependencyInjectionExtensions + { + public static IServiceCollection AddStreamDeck(this IServiceCollection services, IConfiguration configuration, Assembly registrationAssembly) + { + services.Configure(configuration.GetSection("StreamDeck")); + services.Configure(config => { + config.Assembly = registrationAssembly; + }); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddHostedService(); + return services; + } + } +} + diff --git a/src/StreamDeckLib/Extensions/HostingExtensions.cs b/src/StreamDeckLib/Extensions/HostingExtensions.cs new file mode 100644 index 0000000..7406329 --- /dev/null +++ b/src/StreamDeckLib/Extensions/HostingExtensions.cs @@ -0,0 +1,28 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using System.Collections.Generic; + +namespace StreamDeckLib.Hosting +{ + public static class DependencyInjectionExtensions + { + public static IHostBuilder ConfigureStreamDeckToolkit(this IHostBuilder hostBuilder, string[] args) + { + hostBuilder + .ConfigureAppConfiguration((context, config) => + { + var switchMappings = new Dictionary() + { + { "-port", "StreamDeck:Port" }, + { "--port", "StreamDeck:Port" }, + { "-pluginUUID", "StreamDeck:PluginUUID" }, + { "-info", "StreamDeck:Info" }, + { "-registerEvent", "StreamDeck:RegisterEvent" }, + { "-break", "Break" }, + }; + config.AddCommandLine(args, switchMappings); + }); + return hostBuilder; + } + } +} diff --git a/src/StreamDeckLib/HostedServices/StreamDeckHostedService.cs b/src/StreamDeckLib/HostedServices/StreamDeckHostedService.cs new file mode 100644 index 0000000..6c73a87 --- /dev/null +++ b/src/StreamDeckLib/HostedServices/StreamDeckHostedService.cs @@ -0,0 +1,43 @@ +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using StreamDeckLib.Models; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace StreamDeckLib.HostedServices +{ + public class StreamDeckHostedService : IHostedService, IAsyncDisposable + { + private readonly ILogger _logger; + private readonly ConnectionManager _connectionManager; + private readonly StreamDeckRegistrationOptions _options; + public StreamDeckHostedService(ILogger logger, ConnectionManager connectionManager, IOptions options) + { + _logger = logger; + _connectionManager = connectionManager; + _options = options.Value; + } + + public ValueTask DisposeAsync() + { + return new ValueTask(Task.CompletedTask); + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger?.LogInformation("StreamDeckHostedService: Starting"); + _connectionManager.RegisterAllActions(_options.Assembly); + await Task.Factory.StartNew(async () => await _connectionManager.StartAsync(), TaskCreationOptions.LongRunning); + _logger?.LogInformation("StreamDeckHostedService: Started"); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger?.LogInformation("StreamDeckHostedService: Stopping"); + _logger?.LogInformation("StreamDeckHostedService: Stopped"); + return Task.CompletedTask; + } + } +} diff --git a/src/StreamDeckLib/Models/StreamDeckRegistrationOptions.cs b/src/StreamDeckLib/Models/StreamDeckRegistrationOptions.cs new file mode 100644 index 0000000..8435fab --- /dev/null +++ b/src/StreamDeckLib/Models/StreamDeckRegistrationOptions.cs @@ -0,0 +1,9 @@ +using System.Reflection; + +namespace StreamDeckLib.Models +{ + public class StreamDeckRegistrationOptions + { + public Assembly Assembly { get; set; } + } +} diff --git a/src/StreamDeckLib/Models/StreamDeckToolkitOptions.cs b/src/StreamDeckLib/Models/StreamDeckToolkitOptions.cs new file mode 100644 index 0000000..29a55b8 --- /dev/null +++ b/src/StreamDeckLib/Models/StreamDeckToolkitOptions.cs @@ -0,0 +1,11 @@ + +namespace StreamDeckLib.Models +{ + public class StreamDeckToolkitOptions + { + public int Port { get; set; } + public string PluginUUID { get; set; } + public string RegisterEvent { get; set; } + public string Info { get; set; } + } +} diff --git a/src/StreamDeckLib/StreamDeckLib.csproj b/src/StreamDeckLib/StreamDeckLib.csproj index 29d7cb4..14c3a05 100644 --- a/src/StreamDeckLib/StreamDeckLib.csproj +++ b/src/StreamDeckLib/StreamDeckLib.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.2.0-preview + 0.3.0-preview @@ -10,10 +10,17 @@ - + + - - + + + + + + + + diff --git a/src/StreamDeckLib/StreamDeckProxy.cs b/src/StreamDeckLib/StreamDeckProxy.cs index d270259..0adeab5 100644 --- a/src/StreamDeckLib/StreamDeckProxy.cs +++ b/src/StreamDeckLib/StreamDeckProxy.cs @@ -12,14 +12,6 @@ namespace StreamDeckLib internal class StreamDeckProxy : IStreamDeckProxy { - - /* - * Cheer 100 Auth0bobby January 27, 2019 - * Cheer 100 cpayette January 27, 2019 - * Cheer 100 RamblingGeek January 27, 2019 - * Cheer 100 PharEwings January 27, 2019 - * */ - private readonly ClientWebSocket _Socket = new ClientWebSocket(); public WebSocketState State { get { return _Socket.State; } } diff --git a/src/StreamDeckToolkit.sln b/src/StreamDeckToolkit.sln index 1b0abd7..a71de10 100644 --- a/src/StreamDeckToolkit.sln +++ b/src/StreamDeckToolkit.sln @@ -28,7 +28,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Registration", "Registratio ..\scripts\registration\RegisterPluginAndStartStreamDeck.sh = ..\scripts\registration\RegisterPluginAndStartStreamDeck.sh EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamDeckLib.Config", "StreamDeckLib.Config\StreamDeckLib.Config.csproj", "{32D1D35F-58ED-4BB2-B1CE-473C89757282}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StreamDeckLib.Config", "StreamDeckLib.Config\StreamDeckLib.Config.csproj", "{32D1D35F-58ED-4BB2-B1CE-473C89757282}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleWebPlugin", "SampleWebPlugin\SampleWebPlugin.csproj", "{6CCD81B1-964E-49F6-AACD-577FE52B5317}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleDIPlugin", "SampleDIPlugin\SampleDIPlugin.csproj", "{FF0C8635-DDA9-4799-9B63-850119435DAC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -52,6 +56,14 @@ Global {32D1D35F-58ED-4BB2-B1CE-473C89757282}.Debug|Any CPU.Build.0 = Debug|Any CPU {32D1D35F-58ED-4BB2-B1CE-473C89757282}.Release|Any CPU.ActiveCfg = Release|Any CPU {32D1D35F-58ED-4BB2-B1CE-473C89757282}.Release|Any CPU.Build.0 = Release|Any CPU + {6CCD81B1-964E-49F6-AACD-577FE52B5317}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CCD81B1-964E-49F6-AACD-577FE52B5317}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CCD81B1-964E-49F6-AACD-577FE52B5317}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CCD81B1-964E-49F6-AACD-577FE52B5317}.Release|Any CPU.Build.0 = Release|Any CPU + {FF0C8635-DDA9-4799-9B63-850119435DAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF0C8635-DDA9-4799-9B63-850119435DAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF0C8635-DDA9-4799-9B63-850119435DAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF0C8635-DDA9-4799-9B63-850119435DAC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE

l^R#TxKh?hv!rZ2K_ThS*D`y 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