blob: fd37cf88c3b34d1596730a86dda9e75c34cc06f8 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/common/media_router/mojo/media_status_struct_traits.h"
#include "base/strings/string_util.h"
#include "mojo/common/time_struct_traits.h"
namespace mojo {
// static
bool StructTraits<media_router::mojom::MediaStatusDataView,
media_router::MediaStatus>::
Read(media_router::mojom::MediaStatusDataView data,
media_router::MediaStatus* out) {
if (!data.ReadTitle(&out->title) || !base::IsStringUTF8(out->title))
return false;
if (!data.ReadDescription(&out->description) ||
!base::IsStringUTF8(out->description)) {
return false;
}
out->can_play_pause = data.can_play_pause();
out->can_mute = data.can_mute();
out->can_set_volume = data.can_set_volume();
out->can_seek = data.can_seek();
if (!data.ReadPlayState(&out->play_state))
return false;
out->is_muted = data.is_muted();
out->volume = data.volume();
if (!data.ReadDuration(&out->duration))
return false;
if (!data.ReadCurrentTime(&out->current_time))
return false;
if (!data.ReadHangoutsExtraData(&out->hangouts_extra_data))
return false;
return true;
}
bool StructTraits<media_router::mojom::HangoutsMediaStatusExtraDataDataView,
media_router::HangoutsMediaStatusExtraData>::
Read(media_router::mojom::HangoutsMediaStatusExtraDataDataView data,
media_router::HangoutsMediaStatusExtraData* out) {
out->local_present = data.local_present();
return true;
}
} // namespace mojo