blob: 1e3e9385a33e547dc098bf36ee5be0e3442bf380 [file] [log] [blame]
// Copyright 2014 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 "ui/display/chromeos/test/action_logger_util.h"
#include <stddef.h>
#include "base/format_macros.h"
#include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "ui/display/types/display_mode.h"
#include "ui/display/types/display_snapshot.h"
#include "ui/display/types/gamma_ramp_rgb_entry.h"
#include "ui/display/types/native_display_delegate.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/size.h"
namespace ui {
namespace test {
std::string DisplaySnapshotToString(const DisplaySnapshot& output) {
return base::StringPrintf("id=%" PRId64, output.display_id());
}
std::string GetBackgroundAction(uint32_t color_argb) {
return base::StringPrintf("background(0x%x)", color_argb);
}
std::string GetAddOutputModeAction(const DisplaySnapshot& output,
const DisplayMode* mode) {
return base::StringPrintf("add_mode(output=%" PRId64 ",mode=%s)",
output.display_id(), mode->ToString().c_str());
}
std::string GetCrtcAction(const DisplaySnapshot& output,
const DisplayMode* mode,
const gfx::Point& origin) {
return base::StringPrintf("crtc(display=[%s],x=%d,y=%d,mode=[%s])",
DisplaySnapshotToString(output).c_str(), origin.x(),
origin.y(),
mode ? mode->ToString().c_str() : "NULL");
}
std::string GetFramebufferAction(const gfx::Size& size,
const DisplaySnapshot* out1,
const DisplaySnapshot* out2) {
return base::StringPrintf(
"framebuffer(width=%d,height=%d,display1=%s,display2=%s)", size.width(),
size.height(), out1 ? DisplaySnapshotToString(*out1).c_str() : "NULL",
out2 ? DisplaySnapshotToString(*out2).c_str() : "NULL");
}
std::string GetSetHDCPStateAction(const DisplaySnapshot& output,
HDCPState state) {
return base::StringPrintf("set_hdcp(id=%" PRId64 ",state=%d)",
output.display_id(), state);
}
std::string SetGammaRampAction(const ui::DisplaySnapshot& output,
const std::vector<GammaRampRGBEntry>& lut) {
std::string table;
for (size_t i = 0; i < lut.size(); ++i) {
table += base::StringPrintf(",rgb[%" PRIuS "]=%04x%04x%04x", i, lut[i].r,
lut[i].g, lut[i].b);
}
return base::StringPrintf("set_gamma_ramp(id=%" PRId64 "%s)",
output.display_id(), table.c_str());
}
std::string JoinActions(const char* action, ...) {
std::string actions;
va_list arg_list;
va_start(arg_list, action);
while (action) {
if (!actions.empty())
actions += ",";
actions += action;
action = va_arg(arg_list, const char*);
}
va_end(arg_list);
return actions;
}
} // namespace test
} // namespace ui