-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make the first 2 calls to the speakers
- Loading branch information
Showing
1 changed file
with
56 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |