Imports InnerCore.Api.SonosHttp
Imports System.Threading.Tasks
Imports System.Xml.Serialization
Public SonosRooms As List(Of SonosRoom)
Dim ip = My.Settings.SonosHTTP_IP
Dim client = New SonosClient(ip, port)
Dim zones = Await client.GetAllZones()
Console.WriteLine("the following rooms have been found:")
For Each roomName In zones.SelectMany(Function(z) z.Members.Select(Function(m) m.RoomName))
SonosRooms.Add(New SonosRoom With {
Dim roomToChange = zones.FirstOrDefault()?.Members.FirstOrDefault()?.RoomName
If Not String.IsNullOrEmpty(roomToChange) Then
Console.WriteLine($"lowering volume by 10% on {roomToChange}")
Await client.SetRelativeVolume(roomToChange, -10)
Console.WriteLine($"increasing volume by 10% on {roomToChange}")
Await client.SetRelativeVolume(roomToChange, 10)
Console.WriteLine($"pause on {roomToChange}")
Await client.Pause(roomToChange)
Console.WriteLine($"resume on {roomToChange}")
Await client.Resume(roomToChange)
Dim r As Models.State = Await client.GetState(roomToChange)
Await client.Favorites(roomToChange, "Liked Songs")
Await client.Playlist(roomToChange, "Liked Songs")
Await client.Preset("all")
Implements IEquatable(Of SonosRoom)
<XmlElement(ElementName:="Name")>
Public Property Name As String
Public Overloads Function Equals(other As SonosRoom) As Boolean _
Implements IEquatable(Of SonosRoom).Equals
If Me Is Nothing Or other Is Nothing Then
Return (Me.Name.Equals(other.Name))