From 2e800af97dada92c3a6ed0a09ebe4b1fa8ade1d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Hilligs=C3=B8e?= Date: Mon, 19 Feb 2024 16:43:57 +0100 Subject: [PATCH] Update README --- README.md | 106 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 6269dc3..7d03ba4 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,30 @@ # go-kef-w2 -Library, CLI and Apps for controlling KEFs W2 platform based speakers over the network. +CLI, library and apps (planed) for controlling KEFs W2 platform based speakers over the network. -## Library +## Command line tool -### Usage +### Installation -```go -package main +#### General -import ( - "fmt" - "log" +Grap a version for your OS from the [releases](https://github.com/hilli/go-kef-w2/releases) page. - "github.com/hilli/go-kef-w2/kefw2" -) +#### macOS -func main() { - speaker, err := kef.NewSpeaker("10.0.0.93") - if err != nil { - log.Fatal(err) - } +Install with Homebrew: - fmt.Println(speaker.Name) - fmt.Println(speaker.Model) - fmt.Println(speaker.MacAddress) - fmt.Println(speaker.IPAddress) - fmt.Println(speaker.Version) - fmt.Println(speaker.SerialNumber) - fmt.Println(speaker.MacAddress) -} +```shell +brew install hilli/tap/kefw2 ``` -## Command line tool +#### Linux -### Plan +Install with Homebrew: -- [x] Set volume -- [x] Mute/unmute -- [x] Select source -- [x] Get status -- [x] Turn on/off -- [x] Track next/previous -- [x] Discover speakers automatically -- [x] Display cover art in ASCII (wifi media) -- [x] Backup speaker settings/eq profiles to file -- [ ] Restore speaker settings/eq profiles to file -- [ ] Play Podcasts/Radio -- [ ] Play titles from built-in music streaming services (Amazon Music, Deezer, Qobus, Spotify, Tidal) +```shell +brew install hilli/tap/kefw2 +``` ### Usage @@ -63,7 +40,7 @@ If you only have one set of speakers, then that will be the default, otherwise c kefw2 config speaker default ``` -If you want to controll a speaker that is not the default use the `-s` global flag +If you want to controll a speaker that is not the default use the `-s` global flag. Eksample: ```shell kefw2 -s 10.0.0.93 status @@ -125,18 +102,63 @@ kefw2 config eq_profile > my_profile.json Set the max volume limit ```shell -$ kefw2 config maxvol 65 -$ kefw2 config maxvol -65 +kefw2 config maxvol 65 ``` +All with tab completion available of the options, where applicable. -All with tab completion available of the options. +### Plan + +- [x] Set volume +- [x] Mute/unmute +- [x] Select source +- [x] Get status +- [x] Turn on/off +- [x] Track next/previous +- [x] Discover speakers automatically +- [x] Display cover art in ASCII (wifi media) +- [x] Backup speaker settings/eq profiles to file +- [ ] Restore speaker settings/eq profiles to file +- [ ] Play Podcasts/Radio +- [ ] Play titles from built-in music streaming services (Amazon Music, Deezer, Qobus, Spotify, Tidal) + +## Library + +### Usage + +```go +package main + +import ( + "fmt" + "log" + + "github.com/hilli/go-kef-w2/kefw2" +) + +func main() { + speaker, err := kefw2.NewSpeaker("10.0.0.93") + if err != nil { + log.Fatal(err) + } + + fmt.Println(speaker.Name) + fmt.Println(speaker.Model) + fmt.Println(speaker.MacAddress) + fmt.Println(speaker.IPAddress) + fmt.Println(speaker.Version) + fmt.Println(speaker.SerialNumber) + fmt.Println(speaker.MacAddress) +} +``` ## Player UI for controlling the speakers, show whats playing etc. +The idea is to create a [Fyne](https://fyne.io/) App that will let you select inputs, show whats playing etc. +My own needs is to have a Raspberry Pi with a touch screen interact with the speakers and not least control the brigtness of the screen. + ### Plan - [ ] Cross compilation of Fyne apps