Skip to content

Commit

Permalink
Make the first 2 calls to the speakers
Browse files Browse the repository at this point in the history
  • Loading branch information
hilli committed Apr 20, 2023
1 parent d486a57 commit f63425d
Showing 1 changed file with 56 additions and 22 deletions.
78 changes: 56 additions & 22 deletions kefw2/kefw2.go
Original file line number Diff line number Diff line change
@@ -1,56 +1,90 @@
package kefw2

import (
"encoding/json"
"fmt"
"time"
)

type KEFSpeaker struct {
KEFSpeakerIP string
Name string
Model string
MacAddress string
IPAddress string
Version string
IPAddress string
Name string
Model string
MacAddress string
Version string
SerialNumber string
pollingQueue string
lastPollTime time.Time
}

func NewSpeaker(KEFSpeakerIP string) (KEFSpeaker, error) {
if KEFSpeakerIP == "" {
func NewSpeaker(IPAddress string) (KEFSpeaker, error) {
if IPAddress == "" {
return KEFSpeaker{}, fmt.Errorf("KEF Speaker IP is empty")
}
return KEFSpeaker{
KEFSpeakerIP: KEFSpeakerIP,
}, nil
speaker := KEFSpeaker{
IPAddress: IPAddress,
}
err := speaker.UpdateInfo()
if err != nil {
return speaker, err
}
return speaker, nil
}

func (s KEFSpeaker) UpdateInfo() (error) {
func (s *KEFSpeaker) UpdateInfo() (err error) {
s.MacAddress, err = s.getMACAddress()
if err != nil {
return err
}
s.Name, err = s.getName()
if err != nil {
return err
}
return nil
}

func (s KEFSpeaker) SetVolume(volume int) (error) {
return nil
func (s *KEFSpeaker) getMACAddress() (string, error) {
var macAddressData []map[string]interface{}
data, err := s.getData("settings:/system/primaryMacAddress")
if err != nil {
return "", err
}
json.Unmarshal(data, &macAddressData)
return macAddressData[0]["string_"].(string), nil
}

func (s *KEFSpeaker) getName() (string, error) {
var nameData []map[string]interface{}
data, err := s.getData("settings:/deviceName")
if err != nil {
return "", err
}
json.Unmarshal(data, &nameData)
return nameData[0]["string_"].(string), nil
}

func (s KEFSpeaker) Mute() (error) {
func (s KEFSpeaker) GetVolume() (int, error) {

return 0, nil
}

func (s KEFSpeaker) SetVolume(volume int) error {
return nil
}

func (s KEFSpeaker) Unmute() (error) {
func (s KEFSpeaker) Mute() error {
return nil
}

func (s KEFSpeaker) PowerOn(power bool) (error) {
func (s KEFSpeaker) Unmute() error {
return nil
}

func (s KEFSpeaker) PowerOff(power bool) (error) {
func (s KEFSpeaker) PowerOn(power bool) error {
return nil
}

func (s KEFSpeaker) SetSource(source string) (error) {
func (s KEFSpeaker) PowerOff(power bool) error {
return nil
}

func (s KEFSpeaker) SetSource(source string) error {
return nil
}

0 comments on commit f63425d

Please sign in to comment.