From: Bartlomiej Kunikowski Date: Fri, 8 Sep 2017 07:33:30 +0000 (+0200) Subject: Adds getter and setter to efl window brightness X-Git-Tag: submit/tizen/20171027.033318~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=262ea6d4ff6c81b70b17f7a80873c0905badda31;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Adds getter and setter to efl window brightness This functions were added, because actually there isn't any brightness control function for Native Window. New Wrt message type is added also, so brightness setting and getting could be added to Web API now. Change-Id: Id2422a24dedffd7e75e18709d6cc7bab69da10a7 Signed-off-by: Bartlomiej Kunikowski Signed-off-by: Szymon Jastrzebski --- diff --git a/runtime/browser/native_window.cc b/runtime/browser/native_window.cc index 43f6bef4a..e08964fdc 100755 --- a/runtime/browser/native_window.cc +++ b/runtime/browser/native_window.cc @@ -16,6 +16,7 @@ #include "runtime/browser/native_window.h" +#include #include #include #include @@ -291,6 +292,17 @@ void NativeWindow::SetCurrentViewModeFullScreen(bool mode) { currentViewModeFullScreen_ = mode; } +int NativeWindow::SetWindowBrightness(int brightness) { + if (brightness > 100) + brightness = 100; + + return efl_util_set_window_brightness(window_, brightness); +} + +int NativeWindow::GetWindowBrightness(int& brightness) { + return efl_util_get_window_brightness(window_, &brightness); +} + void NativeWindow::Show() { evas_object_show(window_); } diff --git a/runtime/browser/native_window.h b/runtime/browser/native_window.h index a30538975..3cd094d2b 100755 --- a/runtime/browser/native_window.h +++ b/runtime/browser/native_window.h @@ -51,6 +51,8 @@ class NativeWindow { void SetRotationLock(ScreenOrientation orientation); void SetAutoRotation(); void SetCurrentViewModeFullScreen(bool mode); + int SetWindowBrightness(int brightness); + int GetWindowBrightness(int& brightness); int AddRotationHandler(RotationHandler handler); void RemoveRotationHandler(int id); int rotation() const { return rotation_; } diff --git a/runtime/browser/web_application.cc b/runtime/browser/web_application.cc index 390f99008..3ed29602b 100755 --- a/runtime/browser/web_application.cc +++ b/runtime/browser/web_application.cc @@ -22,9 +22,11 @@ #include #include +#include #include #include #include +#include #include #include @@ -916,6 +918,31 @@ void WebApplication::OnReceivedWrtMessage(WebView* view, ewk_ipc_wrt_message_data_del(ans); } else if (TYPE_IS("tizen://hide_splash_screen")) { splash_screen_->HideSplashScreen(SplashScreen::HideReason::CUSTOM); + } else if (TYPE_IS("tizen://set_window_brightness")) { + // Brightness value parsing + long l_brightness = strtol(msg_value, nullptr, 10); + if (l_brightness == 0 && strncmp(msg_value, "0", 1)) { + LOGGER(ERROR) << "Received invalid brightness value: " << msg_value; + ewk_ipc_wrt_message_data_value_set(msg, "error"); + } + + int brightness = static_cast(l_brightness); + if (!window_->SetWindowBrightness(brightness)) { + ewk_ipc_wrt_message_data_value_set(msg, "success"); + } else { + ewk_ipc_wrt_message_data_value_set(msg, "error"); + } + } else if (TYPE_IS("tizen://get_window_brightness")) { + int brightness; + int status = window_->GetWindowBrightness(brightness); + std::string answer = "{\"status\":\""; + if (status == 0) { + answer += "success\",\"result\":"; + answer += std::to_string(brightness) + "}"; + } else { + answer += "error\"}"; + } + ewk_ipc_wrt_message_data_value_set(msg, answer.c_str()); } eina_stringshare_del(msg_ref_id);