summaryrefslogtreecommitdiff
path: root/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'client.go')
-rw-r--r--client.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/client.go b/client.go
new file mode 100644
index 0000000..27e5d54
--- /dev/null
+++ b/client.go
@@ -0,0 +1,31 @@
+package soundbox
+
+import (
+ "fmt"
+ "net"
+)
+
+// Port is the default network port a soundbox is listening to for incoming
+// audio stream data.
+const Port = 5316
+
+type Client struct {
+ HardwareAddr net.HardwareAddr
+}
+
+func NewClient(mac string) (Client, error) {
+ hardwareAddr, err := net.ParseMAC(mac)
+ if err != nil {
+ return Client{}, err
+ }
+
+ return fromHardwareAddr(hardwareAddr)
+}
+
+func fromHardwareAddr(addr net.HardwareAddr) (Client, error) {
+ if len(addr) != 6 {
+ return Client{}, fmt.Errorf("Only IEEE 802 MAC-48 addresses supported")
+ }
+
+ return Client{HardwareAddr: addr}, nil
+}