streamdeck

package module
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2023 License: MIT Imports: 10 Imported by: 1

README

streamdeck

Latest Release Software License Build Status Go ReportCard Go Doc

A Go library to control your Elgato Stream Deck on Linux.

Installation

Make sure you have a working Go environment (Go 1.12 or higher is required). See the install instructions.

To install streamdeck, simply run:

go get github.com/Doridian/go-streamdeck

Configuration

On Linux you need to set up some udev rules to be able to access the device as a regular user. Edit /etc/udev/rules.d/99-streamdeck.rules and add these lines:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0090", MODE:="666", GROUP="plugdev"

Make sure your user is part of the plugdev group and reload the rules with sudo udevadm control --reload-rules. Unplug and replug the device and you should be good to go.

Credits

This is a modified fork of https://github.com/muesli/streamdeck

Documentation

Index

Constants

View Source
const (
	VID_ELGATO              = 0x0fd9
	PID_STREAMDECK          = 0x0060
	PID_STREAMDECK_V2       = 0x006d
	PID_STREAMDECK_MK2      = 0x0080
	PID_STREAMDECK_MINI     = 0x0063
	PID_STREAMDECK_MINI_MK2 = 0x0090
	PID_STREAMDECK_XL       = 0x006c
)

Stream Deck Vendor & Product IDs.

Variables

This section is empty.

Functions

This section is empty.

Types

type Device

type Device struct {
	Columns uint8
	Rows    uint8
	Keys    uint8
	Pixels  uint
	DPI     uint
	Padding uint
	// contains filtered or unexported fields
}

Device represents a single Stream Deck device.

func Devices

func Devices() ([]Device, error)

Devices returns all attached Stream Decks.

func (*Device) Clear

func (d *Device) Clear() error

Clears the Stream Deck, setting a black image on all buttons.

func (*Device) Close

func (d *Device) Close() error

Close the connection with the device.

func (*Device) ConvertImage

func (d *Device) ConvertImage(img image.Image) (*ImageData, error)

func (*Device) FirmwareVersion

func (d *Device) FirmwareVersion() (string, error)

FirmwareVersion returns the firmware version of the device.

func (*Device) Open

func (d *Device) Open() error

Open the device for input/output. This must be called before trying to communicate with the device.

func (*Device) ReadKeys

func (d *Device) ReadKeys() (chan Key, error)

ReadKeys returns a channel, which it will use to emit key presses/releases.

func (*Device) Reset

func (d *Device) Reset() error

Resets the Stream Deck, clears all button images and shows the standby image.

func (*Device) SetBrightness

func (d *Device) SetBrightness(percent uint8) error

SetBrightness sets the background lighting brightness from 0 to 100 percent.

func (*Device) SetConvertedImage

func (d *Device) SetConvertedImage(index uint8, imageData *ImageData) error

func (*Device) SetImage

func (d *Device) SetImage(index uint8, img image.Image) error

SetImage sets the image of a button on the Stream Deck. The provided image needs to be in the correct resolution for the device. The index starts with 0 being the top-left button.

type ImageData

type ImageData struct {
	// contains filtered or unexported fields
}

ImageData allows to access raw image data in a byte array through pages of a given size.

type Key

type Key struct {
	Index   uint8
	Pressed bool
}

Key holds the current status of a key on the device.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL