Index: extensions/browser/api/system_display/system_display_api.cc |
diff --git a/extensions/browser/api/system_display/system_display_api.cc b/extensions/browser/api/system_display/system_display_api.cc |
index ab613a46b45d79892f90dfaf38d8922f48c20915..bf9583ac094a27dd8697e97ca5a420befdff74bc 100644 |
--- a/extensions/browser/api/system_display/system_display_api.cc |
+++ b/extensions/browser/api/system_display/system_display_api.cc |
@@ -138,4 +138,46 @@ SystemDisplayOverscanCalibrationCompleteFunction::Run() { |
return RespondNow(NoArguments()); |
} |
+ExtensionFunction::ResponseAction |
+SystemDisplayTouchCalibrationStartFunction::Run() { |
+ std::unique_ptr<display::TouchCalibrationStart::Params> params( |
+ display::TouchCalibrationStart::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->IsTouchCalibrationActive(params->id)) { |
+ return RespondNow(Error( |
+ "Another touch calibration is already active.")); |
+ } |
+ if (!DisplayInfoProvider::Get()->TouchCalibrationStart(params->id)) |
+ return RespondNow(Error("Invalid display ID: " + params->id)); |
+ return RespondNow(NoArguments()); |
+} |
+ |
+ExtensionFunction::ResponseAction |
+SystemDisplayTouchCalibrationSetFunction::Run() { |
+ std::unique_ptr<display::TouchCalibrationSet::Params> params( |
+ display::TouchCalibrationSet::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->IsTouchCalibrationActive(params->id)) { |
+ return RespondNow(Error( |
+ "Another touch calibration is already active.")); |
+ } |
+ if (!DisplayInfoProvider::Get()->TouchCalibrationSet(params->id, |
+ params->pairs, |
+ params->bounds)) { |
+ return RespondNow(Error("Invalid display ID: " + params->id)); |
+ } |
+ return RespondNow(NoArguments()); |
+} |
+ |
+ExtensionFunction::ResponseAction |
+SystemDisplayTouchCalibrationResetFunction::Run() { |
+ std::unique_ptr<display::TouchCalibrationReset::Params> params( |
+ display::TouchCalibrationReset::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->IsTouchCalibrationActive(params->id)) { |
+ return RespondNow(Error( |
+ "Another touch calibration is already active.")); |
+ } |
+ if (!DisplayInfoProvider::Get()->TouchCalibrationReset(params->id)) |
+ return RespondNow(Error("Invalid display ID: " + params->id)); |
+ return RespondNow(NoArguments()); |
+} |
+ |
} // namespace extensions |