/go-stagelinq

Golang library implementing the StagelinQ protocol to access live Denon device information.

Primary LanguageGoMIT LicenseMIT

StagelinQ for Golang

Go Reference

This library implements Denon's StagelinQ protocol, allowing any Go application to talk to devices that are compatible with this protocol on the network.

An example application is provided that, if running successfully, will output information like this:

Screenshot of the example CLI

Features

  • Automatically discover StagelinQ-compatible devices on the network
  • Access state map information such as currently playing track metadata, fader values, etc.

Stability

The code of this project is an experimental reverse-engineering effort and therefor can behave erratically in untested cases. Currently, this code only has been practically tested with the Denon Prime 4.

If you have any other Denon devices you would like to test this library against, please do! Even better, you can let me know if you run into any bugs by reporting them as an issue ticket.

Building

Make sure you have a recent version of Go with module support enabled, then you can install the stagelinq-discover example binary by one of two means:

  • git clone this repository and run go build -v ./cmd/stagelinq-discover to build the binary.
  • Run go install github.com/icedream/go-stagelinq/cmd/stagelinq-discover to install the binary to your $GOPATH.

Usage

To use this library, import "github.com/icedream/go-stagelinq" in your Go project. This will give you access to the stagelinq library namespace.

Go code documentation is available.

Testing

This project uses Go tests, they can be run with this command:

go test ./...

License

This code is licensed under the MIT license. For more information, please read LICENSE.