}).then(function(result) {
if (result.state === "granted") {
InitializeGyroscope(JS_Gyroscope_frequencyRequest)
} else {
warnOnce("No permission to use Gyroscope.")
}
JS_Gyroscope_frequencyRequest = 0
})
}
}
function _JS_Gyroscope_Stop() {
if (JS_Gyroscope) {
JS_Gyroscope.stop();
JS_Gyroscope.removeEventListener("reading", JS_Gyroscope_eventHandler);
JS_Gyroscope = null;
JS_Gyroscope_callback = 0
} else if (JS_Gyroscope_callback != 0) {
JS_Gyroscope_callback = 0;
JS_DeviceMotion_remove()
}
}
function _JS_Init_ContextMenuHandler() {
const _handleContextMenu = function(event) {
if (event.target.localName !== "canvas")
_ReleaseKeys()
};
document.addEventListener("contextmenu", _handleContextMenu);
Module.deinitializers.push(function() {
document.removeEventListener("contextmenu", _handleContextMenu)
})
}
function _JS_LinearAccelerationSensor_IsRunning() {
return JS_LinearAccelerationSensor && JS_LinearAccelerationSensor.activated || JS_LinearAccelerationSensor_callback != 0
}
function _JS_Log_Dump(ptr, type) {
var str = UTF8ToString(ptr);
if (typeof dump == "function")
dump(str);
switch (type) {
case 0:
case 1:
case 4:
console.error(str);
return;
case 2:
console.warn(str);
return;
case 3:
case 5:
console.log(str);
return;
default:
console.error("Unknown console message type!");
console.error(str)
}
}
function _JS_Log_StackTrace(buffer, bufferSize) {
var trace = stackTrace();
if (buffer)
stringToUTF8(trace, buffer, bufferSize);
return lengthBytesUTF8(trace)
}
var mobile_input_hide_delay = null;
var mobile_input_text = null;
var mobile_input = null;
var mobile_input_ignore_blur_event = false;
function _JS_MobileKeybard_GetIgnoreBlurEvent() {
return mobile_input_ignore_blur_event
}
function _JS_MobileKeyboard_GetKeyboardStatus() {
var kKeyboardStatusVisible = 0;
var kKeyboardStatusDone = 1;
if (!mobile_input)
return kKeyboardStatusDone;
return kKeyboardStatusVisible
}
function _JS_MobileKeyboard_GetText(buffer, bufferSize) {
var text = mobile_input && mobile_input.input ? mobile_input.input.value : mobile_input_text ? mobile_input_text : "";
if (buffer)
stringToUTF8(text, buffer, bufferSize);
return lengthBytesUTF8(text)
}
function _JS_MobileKeyboard_GetTextSelection(outStart, outLength) {
if (!mobile_input) {
HEAP32[outStart >> 2] = 0;
HEAP32[outLength >> 2] = 0;
return
}
HEAP32[outStart >> 2] = mobile_input.input.selectionStart;
HEAP32[outLength >> 2] = mobile_input.input.selectionEnd - mobile_input.input.selectionStart
}
function _JS_MobileKeyboard_Hide(delay) {
if (mobile_input_hide_delay)
return;
mobile_input_ignore_blur_event = true;
function hideMobileKeyboard() {
if (mobile_input && mobile_input.input) {
mobile_input_text = mobile_input.input.value;
mobile_input.input = null;
if (mobile_input.parentNode && mobile_input.parentNode) {
mobile_input.parentNode.removeChild(mobile_input)
}
}
mobile_input = null;
mobile_input_hide_delay = null;
setTimeout(function() {
mobile_input_ignore_blur_event = false
}, 100)
}
if (delay) {
var hideDelay = 200;
mobile_input_hide_delay = setTimeout(hideMobileKeyboard, hideDelay)
} else {
hideMobileKeyboard()
}
}
function _JS_MobileKeyboard_SetCharacterLimit(limit) {
if (!mobile_input)
return;
mobile_input.input.maxLength = limit
}
function _JS_MobileKeyboard_SetText(text) {
if (!mobile_input)
return;
text = UTF8ToString(text);
mobile_input.input.value = text
}
function _JS_MobileKeyboard_SetTextSelection(start, length) {
if (!mobile_input)
return;
if (mobile_input.input.type === "number") {
mobile_input.input.type = "text";
mobile_input.input.setSelectionRange(start, start + length);
mobile_input.input.type = "number"
} else {
mobile_input.input.setSelectionRange(start, start + length)
}
}
function _JS_MobileKeyboard_Show(text, keyboardType, autocorrection, multiline, secure, alert, placeholder, characterLimit) {
if (mobile_input_hide_delay) {
clearTimeout(mobile_input_hide_delay);
mobile_input_hide_delay = null
}
text = UTF8ToString(text);
mobile_input_text = text;
placeholder = UTF8ToString(placeholder);
var container = document.body;
var hasExistingMobileInput = !!mobile_input;
var input_type;
var KEYBOARD_TYPE_NUMBERS_AND_PUNCTUATION = 2;
var KEYBOARD_TYPE_URL = 3;
var KEYBOARD_TYPE_NUMBER_PAD = 4;
var KEYBOARD_TYPE_PHONE_PAD = 5;
var KEYBOARD_TYPE_EMAIL_ADDRESS = 7;
if (!secure) {
|