fredemmott / StreamDeck-CPPSDK

A fork of Elgato's C++ StreamDeck SDK, focussing on reusability
MIT License
43 stars 10 forks source link

KeyDown/KeyUp and DialPress/Release consistency #21

Open fredemmott opened 1 year ago

fredemmott commented 1 year ago

The DialPress event makes some of StreamDeck-CPPSDK's goals contradictory:

  1. it should be internally consistent
  2. it should be clear and unambiguous
  3. it should very closely match the Elgato SDK documentation

These conflict because:

refs #14 refs 6d2e76dcc8c0f0f3633ac89a12a2c1183077107a

I'm mostly likely going to make v4 a larger breaking change and go for ESDAction::KeyPress, KeyRelease, DialPress, and DialRelease, prioritizing 1 & 2 over 3

jberredj commented 1 year ago

When I implemented those function, documentation wasn't released yet. I wasn't satisfied with the inconsistency of the event added for the SD+, DialPress and DialRotate seems to generic to me, no distinction between press up or down, just a flag in the payload. Same for Clockwise and conter clockwise.

Now that there is documentation, I feel that it might be a good Idea to stay close to it, as people will work with it when when trying to use this library. One thing I would find interesting, but I sincerely don't now if it's a good idea or practice. Is to keep those "specialization" and add the more generic event expected by the official documentation.

fredemmott commented 8 months ago

solving 1 by naming them 'DialUp'/'DialDown' conflict with 3 as the names are different, but conflicts with 2 as dial rotation can be thought as setting a value 'up' or 'down

Elgato have taken this option from v6.1 onwards, and DialPress/DialRelease will be removed in v6.5 of the SteamDeck software: https://docs.elgato.com/sdk/plugins/changelog