blob: 753390439dedb3b05961f4abdd6c04744791b293 [file] [log] [blame]
// Copyright 2019 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 "chromeos/services/power/public/mojom/mojom_traits.h"
namespace mojo {
using chromeos::power::mojom::BacklightBrightnessChangeCause;
using chromeos::power::mojom::SetBacklightBrightnessRequestCause;
using chromeos::power::mojom::SetBacklightBrightnessRequestTransition;
// static
SetBacklightBrightnessRequestTransition
EnumTraits<SetBacklightBrightnessRequestTransition,
power_manager::SetBacklightBrightnessRequest_Transition>::
ToMojom(
power_manager::SetBacklightBrightnessRequest_Transition transition) {
switch (transition) {
case power_manager::SetBacklightBrightnessRequest_Transition_GRADUAL:
return SetBacklightBrightnessRequestTransition::kGradual;
case power_manager::SetBacklightBrightnessRequest_Transition_INSTANT:
return SetBacklightBrightnessRequestTransition::kInstant;
}
NOTREACHED();
return SetBacklightBrightnessRequestTransition::kGradual;
}
// static
bool EnumTraits<SetBacklightBrightnessRequestTransition,
power_manager::SetBacklightBrightnessRequest_Transition>::
FromMojom(SetBacklightBrightnessRequestTransition transition,
power_manager::SetBacklightBrightnessRequest_Transition* out) {
switch (transition) {
case SetBacklightBrightnessRequestTransition::kGradual:
*out = power_manager::SetBacklightBrightnessRequest_Transition_GRADUAL;
return true;
case SetBacklightBrightnessRequestTransition::kInstant:
*out = power_manager::SetBacklightBrightnessRequest_Transition_INSTANT;
return true;
}
NOTREACHED();
return false;
}
// static
SetBacklightBrightnessRequestCause
EnumTraits<SetBacklightBrightnessRequestCause,
power_manager::SetBacklightBrightnessRequest_Cause>::
ToMojom(power_manager::SetBacklightBrightnessRequest_Cause cause) {
switch (cause) {
case power_manager::SetBacklightBrightnessRequest_Cause_USER_REQUEST:
return SetBacklightBrightnessRequestCause::kUserRequest;
case power_manager::SetBacklightBrightnessRequest_Cause_MODEL:
return SetBacklightBrightnessRequestCause::kModel;
}
NOTREACHED();
return SetBacklightBrightnessRequestCause::kUserRequest;
}
// static
bool EnumTraits<SetBacklightBrightnessRequestCause,
power_manager::SetBacklightBrightnessRequest_Cause>::
FromMojom(SetBacklightBrightnessRequestCause cause,
power_manager::SetBacklightBrightnessRequest_Cause* out) {
switch (cause) {
case SetBacklightBrightnessRequestCause::kUserRequest:
*out = power_manager::SetBacklightBrightnessRequest_Cause_USER_REQUEST;
return true;
case SetBacklightBrightnessRequestCause::kModel:
*out = power_manager::SetBacklightBrightnessRequest_Cause_MODEL;
return true;
}
NOTREACHED();
return false;
}
// static
bool StructTraits<chromeos::power::mojom::SetBacklightBrightnessRequestDataView,
power_manager::SetBacklightBrightnessRequest>::
Read(chromeos::power::mojom::SetBacklightBrightnessRequestDataView data,
power_manager::SetBacklightBrightnessRequest* out) {
if (data.percent() < 0. || data.percent() > 100.)
return false;
out->set_percent(data.percent());
power_manager::SetBacklightBrightnessRequest_Transition transition;
power_manager::SetBacklightBrightnessRequest_Cause cause;
if (!data.ReadTransition(&transition) || !data.ReadCause(&cause))
return false;
out->set_transition(transition);
out->set_cause(cause);
return true;
}
// static
BacklightBrightnessChangeCause
EnumTraits<BacklightBrightnessChangeCause,
power_manager::BacklightBrightnessChange_Cause>::
ToMojom(power_manager::BacklightBrightnessChange_Cause cause) {
switch (cause) {
case power_manager::BacklightBrightnessChange_Cause_USER_REQUEST:
return BacklightBrightnessChangeCause::kUserRequest;
case power_manager::BacklightBrightnessChange_Cause_USER_ACTIVITY:
return BacklightBrightnessChangeCause::kUserActivity;
case power_manager::BacklightBrightnessChange_Cause_USER_INACTIVITY:
return BacklightBrightnessChangeCause::kUserInactivity;
case power_manager::BacklightBrightnessChange_Cause_AMBIENT_LIGHT_CHANGED:
return BacklightBrightnessChangeCause::kAmbientLightChanged;
case power_manager::
BacklightBrightnessChange_Cause_EXTERNAL_POWER_CONNECTED:
return BacklightBrightnessChangeCause::kExternalPowerConnected;
case power_manager::
BacklightBrightnessChange_Cause_EXTERNAL_POWER_DISCONNECTED:
return BacklightBrightnessChangeCause::kExternalPowerDisconnected;
case power_manager::BacklightBrightnessChange_Cause_FORCED_OFF:
return BacklightBrightnessChangeCause::kForcedOff;
case power_manager::BacklightBrightnessChange_Cause_NO_LONGER_FORCED_OFF:
return BacklightBrightnessChangeCause::kNoLongerForcedOff;
case power_manager::BacklightBrightnessChange_Cause_OTHER:
return BacklightBrightnessChangeCause::kOther;
case power_manager::BacklightBrightnessChange_Cause_MODEL:
return BacklightBrightnessChangeCause::kModel;
case power_manager::BacklightBrightnessChange_Cause_WAKE_NOTIFICATION:
return BacklightBrightnessChangeCause::kWakeNotification;
}
NOTREACHED();
return BacklightBrightnessChangeCause::kUserRequest;
}
// static
bool EnumTraits<BacklightBrightnessChangeCause,
power_manager::BacklightBrightnessChange_Cause>::
FromMojom(BacklightBrightnessChangeCause cause,
power_manager::BacklightBrightnessChange_Cause* out) {
switch (cause) {
case BacklightBrightnessChangeCause::kUserRequest:
*out = power_manager::BacklightBrightnessChange_Cause_USER_REQUEST;
return true;
case BacklightBrightnessChangeCause::kUserActivity:
*out = power_manager::BacklightBrightnessChange_Cause_USER_ACTIVITY;
return true;
case BacklightBrightnessChangeCause::kUserInactivity:
*out = power_manager::BacklightBrightnessChange_Cause_USER_INACTIVITY;
return true;
case BacklightBrightnessChangeCause::kAmbientLightChanged:
*out =
power_manager::BacklightBrightnessChange_Cause_AMBIENT_LIGHT_CHANGED;
return true;
case BacklightBrightnessChangeCause::kExternalPowerConnected:
*out = power_manager::
BacklightBrightnessChange_Cause_EXTERNAL_POWER_CONNECTED;
return true;
case BacklightBrightnessChangeCause::kExternalPowerDisconnected:
*out = power_manager::
BacklightBrightnessChange_Cause_EXTERNAL_POWER_DISCONNECTED;
return true;
case BacklightBrightnessChangeCause::kForcedOff:
*out = power_manager::BacklightBrightnessChange_Cause_FORCED_OFF;
return true;
case BacklightBrightnessChangeCause::kNoLongerForcedOff:
*out =
power_manager::BacklightBrightnessChange_Cause_NO_LONGER_FORCED_OFF;
return true;
case BacklightBrightnessChangeCause::kOther:
*out = power_manager::BacklightBrightnessChange_Cause_OTHER;
return true;
case BacklightBrightnessChangeCause::kModel:
*out = power_manager::BacklightBrightnessChange_Cause_MODEL;
return true;
case BacklightBrightnessChangeCause::kWakeNotification:
*out = power_manager::BacklightBrightnessChange_Cause_WAKE_NOTIFICATION;
return true;
}
NOTREACHED();
return false;
}
// static
bool StructTraits<chromeos::power::mojom::BacklightBrightnessChangeDataView,
power_manager::BacklightBrightnessChange>::
Read(chromeos::power::mojom::BacklightBrightnessChangeDataView data,
power_manager::BacklightBrightnessChange* out) {
if (data.percent() < 0. || data.percent() > 100.)
return false;
out->set_percent(data.percent());
power_manager::BacklightBrightnessChange_Cause cause;
if (!data.ReadCause(&cause))
return false;
out->set_cause(cause);
return true;
}
} // namespace mojo