mirror of
https://github.com/godotengine/godot.git
synced 2026-01-08 00:25:01 +03:00
Add API to access battery power state
Done: - X11, server (tested) - Windows (developed, would be nice to retest) - OSX (not tested) Prepared (not developed): - Android (code is here, but may not compile) - iphone - winrt - bb10 - haiku - javascript
This commit is contained in:
committed by
Rémi Verschelde
parent
ef174abf6d
commit
94103c0c02
@@ -259,6 +259,8 @@ void OS_JavaScript::initialize(const VideoMode& p_desired,int p_video_driver,int
|
||||
physics_2d_server->init();
|
||||
|
||||
input = memnew( InputDefault );
|
||||
|
||||
power_manager = memnew( PowerJavascript );
|
||||
|
||||
#define EM_CHECK(ev) if (result!=EMSCRIPTEN_RESULT_SUCCESS)\
|
||||
ERR_PRINTS("Error while setting " #ev " callback: Code " + itos(result))
|
||||
@@ -853,8 +855,19 @@ String OS_JavaScript::get_joy_guid(int p_device) const {
|
||||
return input->get_joy_guid_remapped(p_device);
|
||||
}
|
||||
|
||||
OS_JavaScript::OS_JavaScript(GFXInitFunc p_gfx_init_func,void*p_gfx_init_ud, GetDataDirFunc p_get_data_dir_func) {
|
||||
PowerState OS_JavaScript::get_power_state() {
|
||||
return power_manager->get_power_state();
|
||||
}
|
||||
|
||||
int OS_JavaScript::get_power_seconds_left() {
|
||||
return power_manager->get_power_seconds_left();
|
||||
}
|
||||
|
||||
int OS_JavaScript::get_power_percent_left() {
|
||||
return power_manager->get_power_percent_left();
|
||||
}
|
||||
|
||||
OS_JavaScript::OS_JavaScript(GFXInitFunc p_gfx_init_func,void*p_gfx_init_ud, GetDataDirFunc p_get_data_dir_func) {
|
||||
gfx_init_func=p_gfx_init_func;
|
||||
gfx_init_ud=p_gfx_init_ud;
|
||||
last_button_mask=0;
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "os/input.h"
|
||||
#include "drivers/unix/os_unix.h"
|
||||
#include "os/main_loop.h"
|
||||
#include "power_javascript.h"
|
||||
#include "servers/physics/physics_server_sw.h"
|
||||
#include "servers/audio_server.h"
|
||||
#include "servers/physics_2d/physics_2d_server_sw.h"
|
||||
@@ -81,6 +82,8 @@ private:
|
||||
|
||||
GetDataDirFunc get_data_dir_func;
|
||||
|
||||
PowerJavascript *power_manager;
|
||||
|
||||
#ifdef JAVASCRIPT_EVAL_ENABLED
|
||||
JavaScript* javascript_eval;
|
||||
#endif
|
||||
@@ -174,6 +177,10 @@ public:
|
||||
virtual bool is_joy_known(int p_device);
|
||||
virtual String get_joy_guid(int p_device) const;
|
||||
bool joy_connection_changed(int p_type, const EmscriptenGamepadEvent *p_event);
|
||||
|
||||
virtual PowerState get_power_state();
|
||||
virtual int get_power_seconds_left();
|
||||
virtual int get_power_percent_left();
|
||||
|
||||
OS_JavaScript(GFXInitFunc p_gfx_init_func,void*p_gfx_init_ud, GetDataDirFunc p_get_data_dir_func);
|
||||
~OS_JavaScript();
|
||||
|
||||
76
platform/javascript/power_javascript.cpp
Normal file
76
platform/javascript/power_javascript.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
/*************************************************************************/
|
||||
/* power_javascript.cpp */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#include "core/error_macros.h"
|
||||
#include "power_javascript.h"
|
||||
|
||||
|
||||
bool PowerJavascript::UpdatePowerInfo() {
|
||||
// TODO Javascript implementation
|
||||
return false;
|
||||
}
|
||||
|
||||
PowerState PowerJavascript::get_power_state() {
|
||||
if (UpdatePowerInfo()) {
|
||||
return power_state;
|
||||
}
|
||||
else {
|
||||
WARN_PRINT("Power management is not implemented on this platform, defaulting to POWERSTATE_UNKNOWN");
|
||||
return POWERSTATE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
int PowerJavascript::get_power_seconds_left() {
|
||||
if (UpdatePowerInfo()) {
|
||||
return nsecs_left;
|
||||
}
|
||||
else {
|
||||
WARN_PRINT("Power management is not implemented on this platform, defaulting to -1");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int PowerJavascript::get_power_percent_left() {
|
||||
if (UpdatePowerInfo()) {
|
||||
return percent_left;
|
||||
}
|
||||
else {
|
||||
WARN_PRINT("Power management is not implemented on this platform, defaulting to -1");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PowerJavascript::PowerJavascript() : nsecs_left(-1), percent_left(-1), power_state(POWERSTATE_UNKNOWN) {
|
||||
|
||||
}
|
||||
|
||||
PowerJavascript::~PowerJavascript() {
|
||||
}
|
||||
51
platform/javascript/power_javascript.h
Normal file
51
platform/javascript/power_javascript.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*************************************************************************/
|
||||
/* power_javascript.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#ifndef PLATFORM_JAVASCRIPT_POWER_JAVASCRIPT_H_
|
||||
#define PLATFORM_JAVASCRIPT_POWER_JAVASCRIPT_H_
|
||||
|
||||
class PowerJavascript {
|
||||
private:
|
||||
int nsecs_left;
|
||||
int percent_left;
|
||||
PowerState power_state;
|
||||
|
||||
bool UpdatePowerInfo();
|
||||
|
||||
public:
|
||||
PowerJavascript();
|
||||
virtual ~PowerJavascript();
|
||||
|
||||
PowerState get_power_state();
|
||||
int get_power_seconds_left();
|
||||
int get_power_percent_left();
|
||||
};
|
||||
|
||||
#endif /* PLATFORM_JAVASCRIPT_POWER_JAVASCRIPT_H_ */
|
||||
Reference in New Issue
Block a user