diff --git a/ESP32/static/index.html b/ESP32/static/index.html index 9945a6b..3234a9d 100644 --- a/ESP32/static/index.html +++ b/ESP32/static/index.html @@ -4,38 +4,194 @@ BusyLight + -

Status

- +

BusyLight Status

-
-
-
-
- +
-
@@ -48,7 +204,6 @@ alphaChannel: false }; - //var colorPicker = new JSColor("colorPicker", "{preset:'default', onChange: 'putColor(this)'}") var colorPickerOpts = {}; colorPickerOpts["preset"] = "rgb"; colorPickerOpts["format"] = "rgb"; @@ -102,7 +257,6 @@ statusRadio.checked = true; } - async function putStatus(status) { var s = await setStatus(status); setColorPickerColor(status); @@ -131,6 +285,5 @@ var b = await setBrightness(brightness); } - - \ No newline at end of file + diff --git a/README.md b/README.md index 2449780..15ee8e6 100644 --- a/README.md +++ b/README.md @@ -16,28 +16,33 @@ **Let people know if they can bother you with light signals!** -A simple to build, nice looking, portable DIY **Busy Light**. +A cheap, simple to build, nice looking and portable DIY **Busy Light**. -It comes with a with a rudimentary (and ugly) **Web UI** and a simple (but hopefully convenient) **Rest API**. +It comes with a with a simplistic but neat **Web UI** and a simple (but hopefully convenient) **Rest API**. | Controlled by Stream Deck with REST API | Light roll | |-------------------------------------------------|---------------------------------------| | ![busylight and stream deck](img/busylight.jpg) | ![busylight roll](img/busylight.gif) | +![showoff video](img/busylight-showoff.mp4) + # Web UI -A very simplistic (and ugly) UI is available on port `80`. \ +A very simplistic but neat UI is available on port `80` (thanks @nicolaeser). \ Default hostname is `igox-busylight`. -You can try to reach the web UI @ `http://igox-busylight.local`. +You can try to reach the web UI @ [http://igox-busylight.local](http://igox-busylight.local). -| What an ugly UI ! :smile: | +| What an neat UI ! :smile: | |---------------------------| | ![Web UI](img/web-ui.png) | # Stream Deck plug-in -You can download a Stream Deck plugin to control your BusyLight [here](streamdeck-plugin/README.md). +You can download a Stream Deck plugin to control your BusyLight: -I will (hopefully) publish it to the [Elgato Market Place](https://marketplace.elgato.com/stream-deck/plugins) soon. +[![get it on marketplace](img/elgato-marketplace.png "Get iGoX BusyLight on Marketplace")](https://marketplace.elgato.com/product/igox-busylight-7448a0be-6dd6-4711-ba0d-86c52b9075b9) + + +Or directly from [here](streamdeck-plugin/README.md). # BusyLight API ## End points @@ -154,4 +159,4 @@ https://micropython.org https://microdot.readthedocs.io/en/latest/index.html ## JSColor -https://jscolor.com \ No newline at end of file +https://jscolor.com diff --git a/img/busylight-showoff.mp4 b/img/busylight-showoff.mp4 new file mode 100644 index 0000000..3e45dee Binary files /dev/null and b/img/busylight-showoff.mp4 differ diff --git a/img/elgato-marketplace.png b/img/elgato-marketplace.png new file mode 100644 index 0000000..60b0a12 Binary files /dev/null and b/img/elgato-marketplace.png differ diff --git a/img/web-ui.png b/img/web-ui.png index e5193f0..e610198 100644 Binary files a/img/web-ui.png and b/img/web-ui.png differ diff --git a/streamdeck-plugin/README.md b/streamdeck-plugin/README.md index 134a97d..b594c6d 100644 --- a/streamdeck-plugin/README.md +++ b/streamdeck-plugin/README.md @@ -1,4 +1,59 @@ -# Release notes +# BusyLight Stream Deck plugin - Release notes + +## Version 0.3.1.0 (2024-01-06) + +### Download + +[org.igox.busylight.v0.3.1.0.streamDeckPlugin](download/org.igox.busylight.v0.3.1.0.streamDeckPlugin) + +### Features + +- None added + +### Enhancements + +- Add colored button for "Set color" action. +- Add colored button for "Set brightness" action. +- Update plugin and plugin category icons + +### Fixes + +- None. + +### Bugs & known limitations + +- None known at publication time. + +### Screenshot + +![v0.3.1.0 screenshot](img/v0.3.1.0.png) + +## Version 0.3.0.0 (2024-01-06) + +### Download + +[org.igox.busylight.v0.3.0.0.streamDeckPlugin](download/org.igox.busylight.v0.3.0.0.streamDeckPlugin) + +### Features + +- None added + +### Enhancements + +- Rework icons to comply with plugin guidelines for Elgato Marketplace +- Combine the 3 "status" actions into a single action and having the status be selected with a dropdown + +### Fixes + +- None. + +### Bugs & known limitations + +- None known at publication time. + +### Screenshot + +![v0.3.0.0 screenshot](img/v0.3.0.0.png) ## Version 0.2.0.0 (2024-12-28) diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness.png deleted file mode 100644 index c1f28b5..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness@2x.png deleted file mode 100644 index c1f28b5..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/brightness/brightness@2x.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/available/available.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/available/available.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/available/available.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/available/available.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/available/available@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/available/available@2x.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/available/available@2x.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/available/available@2x.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/away/away.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/away/away.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/away/away.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/away/away.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/away/away@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/away/away@2x.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/away/away@2x.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/away/away@2x.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness.png new file mode 100644 index 0000000..1a58795 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness@2x.png new file mode 100644 index 0000000..1a58795 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/brigthness/brigthness@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/busy/busy.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/busy/busy.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/busy/busy.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/busy/busy.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/busy/busy@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/busy/busy@2x.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/busy/busy@2x.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/busy/busy@2x.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored.png new file mode 100644 index 0000000..280270d Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored@2x.png new file mode 100644 index 0000000..280270d Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/colored/colored@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/off/off.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/off/off.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/off/off.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/off/off.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/off/off@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/off/off@2x.png similarity index 100% rename from streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/off/off@2x.png rename to streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/off/off@2x.png diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on.png new file mode 100644 index 0000000..6b4ea24 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on@2x.png new file mode 100644 index 0000000..6b4ea24 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/buttons/on/on@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color.png deleted file mode 100644 index 82d3f44..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color@2x.png deleted file mode 100644 index 82d3f44..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/color/color@2x.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness.png new file mode 100644 index 0000000..ecadc7b Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness@2x.png new file mode 100644 index 0000000..e49f4aa Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/brightness/brightness@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color.png new file mode 100644 index 0000000..5f6bfb8 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color@2x.png new file mode 100644 index 0000000..5f6bfb8 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/color/color@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status.png new file mode 100644 index 0000000..37e4696 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status@2x.png new file mode 100644 index 0000000..37e4696 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/icons/status/status@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored.png deleted file mode 100644 index 82d3f44..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored@2x.png deleted file mode 100644 index 82d3f44..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/actions/status/colored/colored@2x.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon.png index c9faaa2..0a7bfdc 100644 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon.png and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon@2x.png index cae11dc..9b95bb0 100644 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon@2x.png and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/category-icon@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon.png new file mode 100644 index 0000000..e3811f7 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon@2x.png new file mode 100644 index 0000000..e3811f7 Binary files /dev/null and b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/icon@2x.png differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace.png deleted file mode 100644 index ca6226c..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace@2x.png b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace@2x.png deleted file mode 100644 index e1ce3bf..0000000 Binary files a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/imgs/plugin/marketplace@2x.png and /dev/null differ diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/manifest.json b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/manifest.json index 854197d..673f234 100644 --- a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/manifest.json +++ b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/manifest.json @@ -1,69 +1,21 @@ { "Name": "iGoX BusyLight", - "Version": "0.2.0.0", + "Version": "0.3.1.0", "Author": "iGoX", "$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json", "Actions": [ { - "Name": "Set status as 'Available'", - "UUID": "org.igox.busylight.status.available", - "Icon": "imgs/actions/status/available/available", - "Tooltip": "Set status as 'Available'", + "Name": "Set BusyLight status", + "UUID": "org.igox.busylight.status.set", + "Icon": "imgs/actions/icons/status/status", + "Tooltip": "Set BusyLight status", "PropertyInspectorPath": "ui/status-config.html", "Controllers": [ "Keypad" ], "States": [ { - "Image": "imgs/actions/status/available/available", - "TitleAlignment": "bottom" - } - ] - }, - { - "Name": "Set status as 'Away'", - "UUID": "org.igox.busylight.status.away", - "Icon": "imgs/actions/status/away/away", - "Tooltip": "Set status as 'Away'", - "PropertyInspectorPath": "ui/status-config.html", - "Controllers": [ - "Keypad" - ], - "States": [ - { - "Image": "imgs/actions/status/away/away", - "TitleAlignment": "bottom" - } - ] - }, - { - "Name": "Set status as 'Busy'", - "UUID": "org.igox.busylight.status.busy", - "Icon": "imgs/actions/status/busy/busy", - "Tooltip": "Set status as 'Busy'", - "PropertyInspectorPath": "ui/status-config.html", - "Controllers": [ - "Keypad" - ], - "States": [ - { - "Image": "imgs/actions/status/busy/busy", - "TitleAlignment": "bottom" - } - ] - }, - { - "Name": "Turn off the BusyLight", - "UUID": "org.igox.busylight.status.off", - "Icon": "imgs/actions/status/off/off", - "Tooltip": "Turn off the BusyLight", - "PropertyInspectorPath": "ui/status-config.html", - "Controllers": [ - "Keypad" - ], - "States": [ - { - "Image": "imgs/actions/status/off/off", + "Image": "imgs/actions/icons/status/status", "TitleAlignment": "bottom" } ] @@ -71,7 +23,7 @@ { "Name": "Set brightness", "UUID": "org.igox.busylight.brigthness.set", - "Icon": "imgs/actions/brightness/brightness", + "Icon": "imgs/actions/icons/brightness/brightness", "Tooltip": "Set LED brightness", "PropertyInspectorPath": "ui/brightness-config.html", "Controllers": [ @@ -79,7 +31,7 @@ ], "States": [ { - "Image": "imgs/actions/brightness/brightness", + "Image": "imgs/actions/icons/brightness/brightness", "TitleAlignment": "bottom" } ] @@ -87,7 +39,7 @@ { "Name": "Set color", "UUID": "org.igox.busylight.color.set", - "Icon": "imgs/actions/color/color", + "Icon": "imgs/actions/icons/color/color", "Tooltip": "Set BusyLight displayed color", "PropertyInspectorPath": "ui/color-config.html", "Controllers": [ @@ -95,17 +47,17 @@ ], "States": [ { - "Image": "imgs/actions/color/color", + "Image": "imgs/actions/icons/color/color", "TitleAlignment": "bottom" } ] } ], "Category": "iGoX BusyLight", - "CategoryIcon": "imgs/plugin/marketplace", + "CategoryIcon": "imgs/plugin/category-icon", "CodePath": "bin/plugin.js", "Description": "Control your DIY BusyLight (https://github.com/igox/busylight) from your Stream Deck", - "Icon": "imgs/plugin/marketplace", + "Icon": "imgs/plugin/icon", "SDKVersion": 2, "Software": { "MinimumVersion": "6.4" diff --git a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/ui/status-config.html b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/ui/status-config.html index 409695d..cc2cfb2 100644 --- a/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/ui/status-config.html +++ b/streamdeck-plugin/busylight/org.igox.busylight.sdPlugin/ui/status-config.html @@ -25,5 +25,14 @@ value="getGlobalSettings()"> + + + + + + + + + \ No newline at end of file diff --git a/streamdeck-plugin/busylight/src/actions/set-brightness.ts b/streamdeck-plugin/busylight/src/actions/set-brightness.ts index 115026c..4821fc7 100644 --- a/streamdeck-plugin/busylight/src/actions/set-brightness.ts +++ b/streamdeck-plugin/busylight/src/actions/set-brightness.ts @@ -1,4 +1,4 @@ -import streamDeck, { action, DidReceiveSettingsEvent, WillAppearEvent, KeyDownEvent, SingletonAction } from "@elgato/streamdeck"; +import streamDeck, { action, DidReceiveSettingsEvent, WillAppearEvent, KeyDownEvent, PropertyInspectorDidAppearEvent, SingletonAction } from "@elgato/streamdeck"; @action({ UUID: "org.igox.busylight.brigthness.set" }) export class SetBrightness extends SingletonAction { @@ -25,7 +25,13 @@ export class SetBrightness extends SingletonAction { const { settings } = ev.payload; await ev.action.setSettings(settings); - await ev.action.setTitle(`${settings.brightness} %`); + await ev.action.setTitle(`${settings.brightness}%`); + } + + override async onPropertyInspectorDidAppear(ev: PropertyInspectorDidAppearEvent): Promise { + streamDeck.logger.debug(`>>> Received onPropertyInspectorDidAppear. Setting action icon <<<`); + + await ev.action.setImage(`imgs/actions/buttons/brigthness/brigthness.png`); } } diff --git a/streamdeck-plugin/busylight/src/actions/set-color.ts b/streamdeck-plugin/busylight/src/actions/set-color.ts index 6e6d19f..b1839c7 100644 --- a/streamdeck-plugin/busylight/src/actions/set-color.ts +++ b/streamdeck-plugin/busylight/src/actions/set-color.ts @@ -1,4 +1,4 @@ -import streamDeck, { action, JsonObject, KeyDownEvent, DidReceiveSettingsEvent, SingletonAction } from "@elgato/streamdeck"; +import streamDeck, { action, JsonObject, KeyDownEvent, DidReceiveSettingsEvent, PropertyInspectorDidAppearEvent, SingletonAction } from "@elgato/streamdeck"; @action({ UUID: "org.igox.busylight.color.set" }) export class SetColor extends SingletonAction { @@ -18,6 +18,12 @@ export class SetColor extends SingletonAction { const { settings } = ev.payload; await ev.action.setSettings(settings); } + + override async onPropertyInspectorDidAppear(ev: PropertyInspectorDidAppearEvent): Promise { + streamDeck.logger.debug(`>>> Color button property inspector diplayed! <<<`); + + await ev.action.setImage(`imgs/actions/buttons/colored/colored.png`); + } } function hexToRgb(hex: string): { r: number, g: number, b: number } { diff --git a/streamdeck-plugin/busylight/src/actions/set-status.ts b/streamdeck-plugin/busylight/src/actions/set-status.ts index bf90212..59bd9d7 100644 --- a/streamdeck-plugin/busylight/src/actions/set-status.ts +++ b/streamdeck-plugin/busylight/src/actions/set-status.ts @@ -1,31 +1,21 @@ -import streamDeck, { action, KeyDownEvent, SingletonAction } from "@elgato/streamdeck"; +import streamDeck, { action, KeyDownEvent, SingletonAction, DidReceiveSettingsEvent } from "@elgato/streamdeck"; -@action({ UUID: "org.igox.busylight.status.available" }) -export class SetStatusAvailable extends SingletonAction { - override async onKeyDown(ev: KeyDownEvent): Promise { - setStatus('available'); +@action({ UUID: "org.igox.busylight.status.set" }) +export class SetStatus extends SingletonAction { + override async onKeyDown(ev: KeyDownEvent): Promise { + const { settings } = ev.payload; + settings.status ??= 'available'; + setStatus(settings.status); } -} -@action({ UUID: "org.igox.busylight.status.busy" }) -export class SetStatusBusy extends SingletonAction { - override async onKeyDown(ev: KeyDownEvent): Promise { - setStatus('busy'); - } -} + override async onDidReceiveSettings(ev: DidReceiveSettingsEvent): Promise { + const { settings } = ev.payload; + let status = settings.status; + streamDeck.logger.debug(`>>> Config status changed to: ${status} <<<`); + + await ev.action.setImage(`imgs/actions/buttons/${status}/${status}.png`); -@action({ UUID: "org.igox.busylight.status.away" }) -export class SetStatusAway extends SingletonAction { - override async onKeyDown(ev: KeyDownEvent): Promise { - setStatus('away'); - } -} - -@action({ UUID: "org.igox.busylight.status.off" }) -export class SetStatusOff extends SingletonAction { - override async onKeyDown(ev: KeyDownEvent): Promise { - setStatus('off'); - } + } } async function setStatus(status: string) { @@ -43,4 +33,8 @@ async function setStatus(status: string) { }) .then(response => response.json()) .then(data => streamDeck.logger.debug(data)); -} \ No newline at end of file +} + +type statusSettings = { + status?: string; +}; \ No newline at end of file diff --git a/streamdeck-plugin/busylight/src/plugin.ts b/streamdeck-plugin/busylight/src/plugin.ts index a59808e..98e70d5 100644 --- a/streamdeck-plugin/busylight/src/plugin.ts +++ b/streamdeck-plugin/busylight/src/plugin.ts @@ -1,7 +1,6 @@ import streamDeck, { LogLevel, SingletonAction, action, type DidReceiveSettingsEvent } from "@elgato/streamdeck"; -//import { IncrementCounter } from "./actions/increment-counter"; -import { SetStatusAvailable, SetStatusBusy, SetStatusAway, SetStatusOff } from "./actions/set-status"; +import { SetStatus} from "./actions/set-status"; import { SetBrightness } from "./actions/set-brightness"; import { SetColor } from "./actions/set-color"; @@ -9,10 +8,7 @@ import { SetColor } from "./actions/set-color"; streamDeck.logger.setLevel(LogLevel.INFO); // Register the actions. -streamDeck.actions.registerAction(new SetStatusAvailable()); -streamDeck.actions.registerAction(new SetStatusBusy()); -streamDeck.actions.registerAction(new SetStatusAway()); -streamDeck.actions.registerAction(new SetStatusOff()); +streamDeck.actions.registerAction(new SetStatus()); streamDeck.actions.registerAction(new SetBrightness()); streamDeck.actions.registerAction(new SetColor()); diff --git a/streamdeck-plugin/download/org.igox.busylight.v0.3.0.0.streamDeckPlugin b/streamdeck-plugin/download/org.igox.busylight.v0.3.0.0.streamDeckPlugin new file mode 100644 index 0000000..8ce2639 Binary files /dev/null and b/streamdeck-plugin/download/org.igox.busylight.v0.3.0.0.streamDeckPlugin differ diff --git a/streamdeck-plugin/download/org.igox.busylight.v0.3.1.0.streamDeckPlugin b/streamdeck-plugin/download/org.igox.busylight.v0.3.1.0.streamDeckPlugin new file mode 100644 index 0000000..88571e2 Binary files /dev/null and b/streamdeck-plugin/download/org.igox.busylight.v0.3.1.0.streamDeckPlugin differ diff --git a/streamdeck-plugin/img/v0.1.0.0.png b/streamdeck-plugin/img/v0.1.0.0.png index dea12bc..434937b 100644 Binary files a/streamdeck-plugin/img/v0.1.0.0.png and b/streamdeck-plugin/img/v0.1.0.0.png differ diff --git a/streamdeck-plugin/img/v0.2.0.0.png b/streamdeck-plugin/img/v0.2.0.0.png index 6cca3df..3bda0c7 100644 Binary files a/streamdeck-plugin/img/v0.2.0.0.png and b/streamdeck-plugin/img/v0.2.0.0.png differ diff --git a/streamdeck-plugin/img/v0.3.0.0.png b/streamdeck-plugin/img/v0.3.0.0.png new file mode 100644 index 0000000..249e53e Binary files /dev/null and b/streamdeck-plugin/img/v0.3.0.0.png differ diff --git a/streamdeck-plugin/img/v0.3.1.0.png b/streamdeck-plugin/img/v0.3.1.0.png new file mode 100644 index 0000000..9d5e673 Binary files /dev/null and b/streamdeck-plugin/img/v0.3.1.0.png differ