package soundbox_test

import (
	"context"
	"log"
	"net"
	"time"

	"xengineering.eu/soundbox-go/soundbox"
)

func Example_url() {
	ctx, cancel := context.WithCancel(context.Background())

	// all soundboxes are referenced by their MAC address
	soundboxes := []net.HardwareAddr{
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x01},
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x02},
		{0x00, 0x00, 0x5E, 0x00, 0x53, 0x03},
	}

	// currently only web radio is supported
	url := "https://example.org/radio.mp3"

	// start streaming
	go func() {
		err := soundbox.StreamURLContext(ctx, url, soundboxes)
		if err != nil {
			log.Fatal(err)
		}
	}()

	// let it play for some time
	time.Sleep(time.Minute)

	// stop it
	cancel()
}