Stream Deck plugin v0.3.0.0 (#23)
|
|
@ -1,5 +1,32 @@
|
|||
# Release notes
|
||||
|
||||
## 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
|
||||
|
||||

|
||||
|
||||
## Version 0.2.0.0 (2024-12-28)
|
||||
|
||||
### Download
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 573 KiB |
|
After Width: | Height: | Size: 573 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 575 KiB |
|
After Width: | Height: | Size: 575 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
|
@ -1,69 +1,21 @@
|
|||
{
|
||||
"Name": "iGoX BusyLight",
|
||||
"Version": "0.2.0.0",
|
||||
"Version": "0.3.0.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",
|
||||
"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/category",
|
||||
"SDKVersion": 2,
|
||||
"Software": {
|
||||
"MinimumVersion": "6.4"
|
||||
|
|
|
|||
|
|
@ -25,5 +25,14 @@
|
|||
value="getGlobalSettings()">
|
||||
</sdpi-textfield>
|
||||
</sdpi-item>
|
||||
<sdpi-item label="Status">
|
||||
<sdpi-select setting="status" placeholder="Please choose a status">
|
||||
<option value="available">Available</option>
|
||||
<option value="away">Away</option>
|
||||
<option value="busy">Busy</option>
|
||||
<option value="on">On</option>
|
||||
<option value="off">Off</option>
|
||||
</sdpi-select>
|
||||
</sdpi-item>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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<void> {
|
||||
setStatus('available');
|
||||
@action({ UUID: "org.igox.busylight.status.set" })
|
||||
export class SetStatus extends SingletonAction {
|
||||
override async onKeyDown(ev: KeyDownEvent<statusSettings>): Promise<void> {
|
||||
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<void> {
|
||||
setStatus('busy');
|
||||
}
|
||||
}
|
||||
override async onDidReceiveSettings(ev: DidReceiveSettingsEvent<statusSettings>): Promise<void> {
|
||||
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<void> {
|
||||
setStatus('away');
|
||||
}
|
||||
}
|
||||
|
||||
@action({ UUID: "org.igox.busylight.status.off" })
|
||||
export class SetStatusOff extends SingletonAction {
|
||||
override async onKeyDown(ev: KeyDownEvent): Promise<void> {
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
type statusSettings = {
|
||||
status?: string;
|
||||
};
|
||||
|
|
@ -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());
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 152 KiB |
BIN
streamdeck-plugin/img/v0.3.0.0.png
Normal file
|
After Width: | Height: | Size: 104 KiB |