protected async Task UpdateDevice()
        {
            deviceInvalidated = false;

            if (DeviceID.HasValue)
            {
                var devices = await Controller.GetPlaybackDevicesAsync();

                Device = devices.FirstOrDefault(d => d.Id == DeviceID.Value);

                // Even if a specific device is selected and not available, do not fall back to the default device
                return;
            }

            Device = await Controller.GetDefaultDeviceAsync(DeviceType.Playback, Role.Multimedia);
        }