geekyeggo / sharpdeck Goto Github PK
View Code? Open in Web Editor NEWA .NET wrapper for the official Elgato Stream Deck SDK.
License: MIT License
A .NET wrapper for the official Elgato Stream Deck SDK.
License: MIT License
Hi.
Not sure if I am using the plugin wrong here, or this is a bug.
I have a button, when I press it, it calls a service and changes a value.
When this value is changed, the service will send a callback that triggers an event, that then calls SetStateAsync
from a method inside the Action.
I have added Trace.WriteLine
that writes out the state I want, but sometimes this is not updated on the button.
If I change the value in the application, without pressing the button, I have not seen this fail (yet).
Similar to HttpPost
/ HttpGet
, it would be nice if it were possible to decorate methods within a controller that intercepted requests from a Property Inspector, and where desired, "returned" a result.
It should be possible to
sendToPlugin
.Missing endpoints from the new v4.1 SDK.
Events Sent
Events Received
Unless I am mistake, the example on the main page that has:
SharpDeck.StreamDeckClient.Run();
ought to be
SharpDeck.StreamDeckPlugin.Run();
ActionPayload
currently supports loading the settings, however this uses JObject
; it is possible to convert the settings using the helper method T GetSettings<T>()
, however it may be beneficial if there were settings and methods directly within the action.
Considerations
StreamDeckAction<TSettings>
be added to provide helpers?INotifyPropertyChanged
vs manual?When creating a new release in GitHub, the new version should be published automatically to NuGet.org.
With the introduction of better DI coming in 1.0.2, unit tests should be added to ensure everything is running smoothly.
The example should be updated to better demonstrate the usage of the Property Inspector decorators being introduced in #5. This should include a sample PI, ideally using the recommended JS from the Elgato SDK github.
When a button is pressed repeatedly and faster than LongKeyPressInterval
, the implementation of StreamDeckAction
triggers falsely OnKeyLongPress
.
The flow is as follows:
OnKeyDown()
puts the EventArgs on the stack and starts Task.Delay()
OnKeyUp()
successfully pops the EventArgs from the stack and thus calls OnKeyPress()
(the callback for short keypress).Task.Delay()
is still active and waiting.<= LongKeyPressInterval
)OnKeyDown()
puts the EventArgs on the stackTask.Delay()
from the first button press finishes and successfully pops an event from the stack. Unfortunately, this is the event from the second button press and not from the first button press. In consequence, the callback OnKeyLongPresss()
is getting called.I think that TryHandleKeyPress()
must also cancel Task.Delay()
when it successfully popped an item from the stack.
Would be nice if examples included at least one entry into an action's property inspector so we could figure out the rest via elgato's docs.
Using 7.0.0 beta for SD+ support and I can't seem to figure out how to get the property inspector to show some controls.
To better handle deadlocking of async methods, particularly those triggered within the main StreamDeckClient
, we should.
ConfigureAwait(false)
on the top level of start.async
; a QOL improvement for overriding within custom actions.Steps to replicate bug:
Play Action
at location [1,1]
(ref: action 1).Play Action
at location [1,2]
(ref: action 2).[1,1]
(where action 1 was).Pending release
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.