From 32afcbc48258ea970ef4b0707f69543baf0f2f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 8 May 2017 22:22:20 +0200 Subject: [PATCH] Put brave old bb10 platform to a well-deserved rest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add some 🔥 to appease @reduz. Fixes #8692. --- doc/base/classes.xml | 2 +- modules/gdnative/gdnative.cpp | 1 - modules/webm/libvpx/SCsub | 2 +- platform/bb10/SCsub | 23 - platform/bb10/audio_driver_bb10.cpp | 254 -------- platform/bb10/audio_driver_bb10.h | 77 --- platform/bb10/bar/bar-descriptor.xml | 53 -- platform/bb10/bar/icon.png | Bin 8809 -> 0 bytes platform/bb10/bbutil.c | 529 ----------------- platform/bb10/bbutil.h | 88 --- platform/bb10/detect.py | 92 --- platform/bb10/export/export.cpp | 829 --------------------------- platform/bb10/export/export.h | 30 - platform/bb10/godot_bb10.cpp | 48 -- platform/bb10/logo.png | Bin 1244 -> 0 bytes platform/bb10/os_bb10.cpp | 608 -------------------- platform/bb10/os_bb10.h | 153 ----- platform/bb10/payment_service.cpp | 149 ----- platform/bb10/payment_service.h | 64 --- platform/bb10/platform_config.h | 30 - platform/bb10/power_bb10.cpp | 72 --- platform/bb10/power_bb10.h | 51 -- 22 files changed, 2 insertions(+), 3153 deletions(-) delete mode 100644 platform/bb10/SCsub delete mode 100644 platform/bb10/audio_driver_bb10.cpp delete mode 100644 platform/bb10/audio_driver_bb10.h delete mode 100644 platform/bb10/bar/bar-descriptor.xml delete mode 100644 platform/bb10/bar/icon.png delete mode 100644 platform/bb10/bbutil.c delete mode 100644 platform/bb10/bbutil.h delete mode 100644 platform/bb10/detect.py delete mode 100644 platform/bb10/export/export.cpp delete mode 100644 platform/bb10/export/export.h delete mode 100644 platform/bb10/godot_bb10.cpp delete mode 100644 platform/bb10/logo.png delete mode 100644 platform/bb10/os_bb10.cpp delete mode 100644 platform/bb10/os_bb10.h delete mode 100644 platform/bb10/payment_service.cpp delete mode 100644 platform/bb10/payment_service.h delete mode 100644 platform/bb10/platform_config.h delete mode 100644 platform/bb10/power_bb10.cpp delete mode 100644 platform/bb10/power_bb10.h diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 03dd151eb2e..d1ae66c02c7 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -26264,7 +26264,7 @@ - Return the name of the host OS. Possible values are: "Android", "BlackBerry 10", "Flash", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11" + Return the name of the host OS. Possible values are: "Android", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11". diff --git a/modules/gdnative/gdnative.cpp b/modules/gdnative/gdnative.cpp index 09859d95bd0..e74d601d744 100644 --- a/modules/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative.cpp @@ -515,7 +515,6 @@ static const char *_dl_platforms_info[] = { "unix|x11|so|X11", "unix|server|so|Server", "unix|android|so|Android", - "unix|blackberry|so|Blackberry 10", "unix|haiku|so|Haiku", // Right? "|mac|dynlib|Mac", "mac|ios|dynlib|iOS", diff --git a/modules/webm/libvpx/SCsub b/modules/webm/libvpx/SCsub index 241d6e30cdd..0ee2ed45b80 100644 --- a/modules/webm/libvpx/SCsub +++ b/modules/webm/libvpx/SCsub @@ -273,7 +273,7 @@ else: webm_cpu_x86 = True else: webm_cpu_x86 = not is_x11_or_server_arm and (cpu_bits == '32' or cpu_bits == '64') and (env["platform"] == 'windows' or env["platform"] == 'x11' or env["platform"] == 'osx' or env["platform"] == 'haiku' or is_android_x86 or is_ios_x86) - webm_cpu_arm = is_x11_or_server_arm or (not is_ios_x86 and env["platform"] == 'iphone') or env["platform"] == 'bb10' or (not is_android_x86 and env["platform"] == 'android') + webm_cpu_arm = is_x11_or_server_arm or (not is_ios_x86 and env["platform"] == 'iphone') or (not is_android_x86 and env["platform"] == 'android') if webm_cpu_x86: import subprocess diff --git a/platform/bb10/SCsub b/platform/bb10/SCsub deleted file mode 100644 index c19f46d5795..00000000000 --- a/platform/bb10/SCsub +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python - -Import('env') - -bb10_lib = [ - - 'bbutil.c', - 'os_bb10.cpp', - 'audio_driver_bb10.cpp', - 'godot_bb10.cpp', - 'payment_service.cpp', -] - -env_bps = env.Clone() -if env['bb10_payment_service'] == "yes": - env_bps.Append(CPPFLAGS=['-DPAYMENT_SERVICE_ENABLED']) - -if env['bb10_lgles_override'] == "yes": - env_bps.Append(CPPFLAGS=['-DBB10_LGLES_OVERRIDE']) - - -prog = None -prog = env_bps.Program('#bin/godot', bb10_lib) diff --git a/platform/bb10/audio_driver_bb10.cpp b/platform/bb10/audio_driver_bb10.cpp deleted file mode 100644 index 5658dc5334c..00000000000 --- a/platform/bb10/audio_driver_bb10.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/*************************************************************************/ -/* audio_driver_bb10.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "audio_driver_bb10.h" - -#include - -Error AudioDriverBB10::init() { - return init(NULL); -}; - -Error AudioDriverBB10::init(const char *p_name) { - - active = false; - thread_exited = false; - exit_thread = false; - pcm_open = false; - samples_in = NULL; - samples_out = NULL; - - mix_rate = 44100; - speaker_mode = SPEAKER_MODE_STEREO; - - char *dev_name; - if (p_name == NULL) { - dev_name = "pcmPreferred"; - } else { - dev_name = (char *)p_name; - } - printf("******** reconnecting to device %s\n", dev_name); - int ret = snd_pcm_open_name(&pcm_handle, dev_name, SND_PCM_OPEN_PLAYBACK); - ERR_FAIL_COND_V(ret < 0, FAILED); - pcm_open = true; - - snd_pcm_channel_info_t cinfo; - zeromem(&cinfo, sizeof(cinfo)); - cinfo.channel = SND_PCM_CHANNEL_PLAYBACK; - snd_pcm_plugin_info(pcm_handle, &cinfo); - - printf("rates %i, %i, %i, %i, %i\n", cinfo.rates, cinfo.rates & SND_PCM_RATE_44100, cinfo.rates & SND_PCM_RATE_32000, cinfo.rates & SND_PCM_RATE_22050, cinfo.max_rate); - - mix_rate = cinfo.max_rate; - - printf("formats %i, %i, %i\n", cinfo.formats, cinfo.formats & SND_PCM_FMT_S16_BE, cinfo.formats & SND_PCM_FMT_S16_LE); - ERR_FAIL_COND_V(!(cinfo.formats & SND_PCM_FMT_S16_LE), FAILED); - - printf("voices %i\n", cinfo.max_voices); - speaker_mode = SPEAKER_MODE_STEREO; - - snd_pcm_channel_params_t cp; - zeromem(&cp, sizeof(cp)); - cp.mode = SND_PCM_MODE_BLOCK; - cp.channel = SND_PCM_CHANNEL_PLAYBACK; - cp.start_mode = SND_PCM_START_DATA; - cp.stop_mode = SND_PCM_STOP_STOP; - //cp.buf.block.frag_size = cinfo.max_fragment_size; - cp.buf.block.frag_size = 512; - cp.buf.block.frags_max = 1; - cp.buf.block.frags_min = 1; - cp.format.interleave = 1; - cp.format.rate = mix_rate; - cp.format.voices = speaker_mode; - cp.format.format = SND_PCM_SFMT_S16_LE; - - ret = snd_pcm_plugin_params(pcm_handle, &cp); - printf("ret is %i, %i\n", ret, cp.why_failed); - ERR_FAIL_COND_V(ret < 0, FAILED); - - ret = snd_pcm_plugin_prepare(pcm_handle, SND_PCM_CHANNEL_PLAYBACK); - ERR_FAIL_COND_V(ret < 0, FAILED); - - snd_mixer_group_t group; - zeromem(&group, sizeof(group)); - snd_pcm_channel_setup_t setup; - zeromem(&setup, sizeof(setup)); - setup.channel = SND_PCM_CHANNEL_PLAYBACK; - setup.mode = SND_PCM_MODE_BLOCK; - setup.mixer_gid = &group.gid; - ret = snd_pcm_plugin_setup(pcm_handle, &setup); - ERR_FAIL_COND_V(ret < 0, FAILED); - - pcm_frag_size = setup.buf.block.frag_size; - pcm_max_frags = 1; - - sample_buf_count = pcm_frag_size * pcm_max_frags / 2; - printf("sample count %i, %i, %i\n", sample_buf_count, pcm_frag_size, pcm_max_frags); - samples_in = memnew_arr(int32_t, sample_buf_count); - samples_out = memnew_arr(int16_t, sample_buf_count); - - thread = Thread::create(AudioDriverBB10::thread_func, this); - - return OK; -}; - -void AudioDriverBB10::thread_func(void *p_udata) { - - AudioDriverBB10 *ad = (AudioDriverBB10 *)p_udata; - - int channels = speaker_mode; - int frame_count = ad->sample_buf_count / channels; - int bytes_out = frame_count * channels * 2; - - while (!ad->exit_thread) { - - if (!ad->active) { - - for (int i = 0; i < ad->sample_buf_count; i++) { - - ad->samples_out[i] = 0; - }; - } else { - - ad->lock(); - - ad->audio_server_process(frame_count, ad->samples_in); - - ad->unlock(); - - for (int i = 0; i < frame_count * channels; i++) { - - ad->samples_out[i] = ad->samples_in[i] >> 16; - } - }; - - int todo = bytes_out; - int total = 0; - - while (todo) { - - uint8_t *src = (uint8_t *)ad->samples_out; - int wrote = snd_pcm_plugin_write(ad->pcm_handle, (void *)(src + total), todo); - if (wrote < 0) { - // error? - break; - }; - total += wrote; - todo -= wrote; - if (wrote < todo) { - if (ad->thread_exited) { - break; - }; - printf("pcm_write underrun %i, errno %i\n", (int)ad->thread_exited, errno); - snd_pcm_channel_status_t status; - zeromem(&status, sizeof(status)); - // put in non-blocking mode - snd_pcm_nonblock_mode(ad->pcm_handle, 1); - status.channel = SND_PCM_CHANNEL_PLAYBACK; - int ret = snd_pcm_plugin_status(ad->pcm_handle, &status); - //printf("status return %i, %i, %i, %i, %i\n", ret, errno, status.status, SND_PCM_STATUS_READY, SND_PCM_STATUS_UNDERRUN); - snd_pcm_nonblock_mode(ad->pcm_handle, 0); - if (ret < 0) { - break; - }; - if (status.status == SND_PCM_STATUS_READY || - status.status == SND_PCM_STATUS_UNDERRUN) { - snd_pcm_plugin_prepare(ad->pcm_handle, SND_PCM_CHANNEL_PLAYBACK); - } else { - break; - }; - }; - }; - }; - - snd_pcm_plugin_flush(ad->pcm_handle, SND_PCM_CHANNEL_PLAYBACK); - - ad->thread_exited = true; - printf("**************** audio thread exit\n"); -}; - -void AudioDriverBB10::start() { - - active = true; -}; - -int AudioDriverBB10::get_mix_rate() const { - - return mix_rate; -}; - -AudioDriver::SpeakerMode AudioDriverBB10::get_speaker_mode() const { - - return speaker_mode; -}; - -void AudioDriverBB10::lock() { - - if (!thread) - return; - mutex->lock(); -}; - -void AudioDriverBB10::unlock() { - - if (!thread) - return; - mutex->unlock(); -}; - -void AudioDriverBB10::finish() { - - if (!thread) - return; - - exit_thread = true; - Thread::wait_to_finish(thread); - - if (pcm_open) - snd_pcm_close(pcm_handle); - - if (samples_in) { - memdelete_arr(samples_in); - memdelete_arr(samples_out); - }; - - memdelete(thread); - thread = NULL; -}; - -AudioDriverBB10::AudioDriverBB10() { - - mutex = Mutex::create(); -}; - -AudioDriverBB10::~AudioDriverBB10() { - - memdelete(mutex); - mutex = NULL; -}; diff --git a/platform/bb10/audio_driver_bb10.h b/platform/bb10/audio_driver_bb10.h deleted file mode 100644 index c5d64236b82..00000000000 --- a/platform/bb10/audio_driver_bb10.h +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************/ -/* audio_driver_bb10.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "servers/audio_server.h" - -#include "core/os/mutex.h" -#include "core/os/thread.h" - -#include - -class AudioDriverBB10 : public AudioDriver { - - Thread *thread; - Mutex *mutex; - - snd_pcm_t *pcm_handle; - - int32_t *samples_in; - int16_t *samples_out; - int sample_buf_count; - - static void thread_func(void *p_udata); - - int mix_rate; - SpeakerMode speaker_mode; - - int pcm_frag_size; - int pcm_max_frags; - - bool active; - bool thread_exited; - mutable bool exit_thread; - bool pcm_open; - -public: - const char *get_name() const { - return "BB10"; - }; - - virtual Error init(); - virtual Error init(const char *p_name); - virtual void start(); - virtual int get_mix_rate() const; - virtual SpeakerMode get_speaker_mode() const; - virtual void lock(); - virtual void unlock(); - virtual void finish(); - - AudioDriverBB10(); - ~AudioDriverBB10(); -}; diff --git a/platform/bb10/bar/bar-descriptor.xml b/platform/bb10/bar/bar-descriptor.xml deleted file mode 100644 index 0ba70b71801..00000000000 --- a/platform/bb10/bar/bar-descriptor.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - com.godot.game - - Godot Game - - 0.0.1 - - 0 - - Game made with Godot Engine - - You Name or Company - authorIDherePlease - - - - landscape - false - none - false - - - core.games - read_device_identifying_information - access_internet - data.pck - - armle-v7 - godot.bb10.debug.qnx.armle - - - armle-v7 - godot.bb10.opt.qnx.armle - - - - icon.png - - - - diff --git a/platform/bb10/bar/icon.png b/platform/bb10/bar/icon.png deleted file mode 100644 index 216140243894cd399b605009901d8787b6d8ccbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8809 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 -#include -#include -#include -#include -#include -#include - -#include "bbutil.h" - -EGLDisplay egl_disp; -EGLSurface egl_surf; - -static EGLConfig egl_conf; -static EGLContext egl_ctx; - -static screen_context_t screen_ctx; -static screen_window_t screen_win; -static screen_display_t screen_disp; - - -static void -bbutil_egl_perror(const char *msg) { - static const char *errmsg[] = { - "function succeeded", - "EGL is not initialized, or could not be initialized, for the specified display", - "cannot access a requested resource", - "failed to allocate resources for the requested operation", - "an unrecognized attribute or attribute value was passed in an attribute list", - "an EGLConfig argument does not name a valid EGLConfig", - "an EGLContext argument does not name a valid EGLContext", - "the current surface of the calling thread is no longer valid", - "an EGLDisplay argument does not name a valid EGLDisplay", - "arguments are inconsistent", - "an EGLNativePixmapType argument does not refer to a valid native pixmap", - "an EGLNativeWindowType argument does not refer to a valid native window", - "one or more argument values are invalid", - "an EGLSurface argument does not name a valid surface configured for rendering", - "a power management event has occurred", - }; - - fprintf(stderr, "%s: %s\n", msg, errmsg[eglGetError() - EGL_SUCCESS]); -} -EGLConfig bbutil_choose_config(EGLDisplay egl_disp, enum RENDERING_API api) { - EGLConfig egl_conf = (EGLConfig)0; - EGLConfig *egl_configs; - EGLint egl_num_configs; - EGLint val; - EGLBoolean rc; - EGLint i; - - rc = eglGetConfigs(egl_disp, NULL, 0, &egl_num_configs); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglGetConfigs"); - return egl_conf; - } - if (egl_num_configs == 0) { - fprintf(stderr, "eglGetConfigs: could not find a configuration\n"); - return egl_conf; - } - - egl_configs = malloc(egl_num_configs * sizeof(*egl_configs)); - if (egl_configs == NULL) { - fprintf(stderr, "could not allocate memory for %d EGL configs\n", egl_num_configs); - return egl_conf; - } - - rc = eglGetConfigs(egl_disp, egl_configs, - egl_num_configs, &egl_num_configs); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglGetConfigs"); - free(egl_configs); - return egl_conf; - } - - for (i = 0; i < egl_num_configs; i++) { - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_SURFACE_TYPE, &val); - if (!(val & EGL_WINDOW_BIT)) { - continue; - } - - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_RENDERABLE_TYPE, &val); - if (!(val & api)) { - continue; - } - - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_DEPTH_SIZE, &val); - if ((api & (GL_ES_1|GL_ES_2)) && (val == 0)) { - continue; - } - - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_RED_SIZE, &val); - if (val != 8) { - continue; - } - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_GREEN_SIZE, &val); - if (val != 8) { - continue; - } - - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_BLUE_SIZE, &val); - if (val != 8) { - continue; - } - - eglGetConfigAttrib(egl_disp, egl_configs[i], EGL_BUFFER_SIZE, &val); - if (val != 32) { - continue; - } - - egl_conf = egl_configs[i]; - break; - } - - free(egl_configs); - - if (egl_conf == (EGLConfig)0) { - fprintf(stderr, "bbutil_choose_config: could not find a matching configuration\n"); - } - - return egl_conf; -} - -int -bbutil_init_egl(screen_context_t ctx, enum RENDERING_API api) { - int usage; - int format = SCREEN_FORMAT_RGBX8888; - int nbuffers = 2; - EGLint interval = 1; - int rc; - EGLint attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; - - if (api == GL_ES_1) { - usage = SCREEN_USAGE_OPENGL_ES1 | SCREEN_USAGE_ROTATION; - } else if (api == GL_ES_2) { - usage = SCREEN_USAGE_OPENGL_ES2 | SCREEN_USAGE_ROTATION; - } else if (api == VG) { - usage = SCREEN_USAGE_OPENVG | SCREEN_USAGE_ROTATION; - } else { - fprintf(stderr, "invalid api setting\n"); - return EXIT_FAILURE; - } - - //Simple egl initialization - screen_ctx = ctx; - - egl_disp = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (egl_disp == EGL_NO_DISPLAY) { - bbutil_egl_perror("eglGetDisplay"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = eglInitialize(egl_disp, NULL, NULL); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglInitialize"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - if ((api == GL_ES_1) || (api == GL_ES_2)) { - rc = eglBindAPI(EGL_OPENGL_ES_API); - } else if (api == VG) { - rc = eglBindAPI(EGL_OPENVG_API); - } - - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglBindApi"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - egl_conf = bbutil_choose_config(egl_disp, api); - if (egl_conf == (EGLConfig)0) { - bbutil_terminate(); - return EXIT_FAILURE; - } - - if (api == GL_ES_2) { - egl_ctx = eglCreateContext(egl_disp, egl_conf, EGL_NO_CONTEXT, attributes); - } else { - egl_ctx = eglCreateContext(egl_disp, egl_conf, EGL_NO_CONTEXT, NULL); - } - - if (egl_ctx == EGL_NO_CONTEXT) { - bbutil_egl_perror("eglCreateContext"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_create_window(&screen_win, screen_ctx); - if (rc) { - perror("screen_create_window"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_FORMAT, &format); - if (rc) { - perror("screen_set_window_property_iv(SCREEN_PROPERTY_FORMAT)"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_USAGE, &usage); - if (rc) { - perror("screen_set_window_property_iv(SCREEN_PROPERTY_USAGE)"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_get_window_property_pv(screen_win, SCREEN_PROPERTY_DISPLAY, (void **)&screen_disp); - if (rc) { - perror("screen_get_window_property_pv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - int screen_resolution[2]; - - rc = screen_get_display_property_iv(screen_disp, SCREEN_PROPERTY_SIZE, screen_resolution); - if (rc) { - perror("screen_get_display_property_iv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - int angle = atoi(getenv("ORIENTATION")); - - screen_display_mode_t screen_mode; - rc = screen_get_display_property_pv(screen_disp, SCREEN_PROPERTY_MODE, (void**)&screen_mode); - if (rc) { - perror("screen_get_display_property_pv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - int size[2]; - rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size); - if (rc) { - perror("screen_get_window_property_iv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - int buffer_size[2] = {size[0], size[1]}; - - if ((angle == 0) || (angle == 180)) { - if (((screen_mode.width > screen_mode.height) && (size[0] < size[1])) || - ((screen_mode.width < screen_mode.height) && (size[0] > size[1]))) { - buffer_size[1] = size[0]; - buffer_size[0] = size[1]; - } - } else if ((angle == 90) || (angle == 270)){ - if (((screen_mode.width > screen_mode.height) && (size[0] > size[1])) || - ((screen_mode.width < screen_mode.height && size[0] < size[1]))) { - buffer_size[1] = size[0]; - buffer_size[0] = size[1]; - } - } else { - fprintf(stderr, "Navigator returned an unexpected orientation angle.\n"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, buffer_size); - if (rc) { - perror("screen_set_window_property_iv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &angle); - if (rc) { - perror("screen_set_window_property_iv"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_create_window_buffers(screen_win, nbuffers); - if (rc) { - perror("screen_create_window_buffers"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = screen_create_window_group(screen_win, get_window_group_id()); - if (rc) { - perror("screen_create_window_group"); - bbutil_terminate(); - return EXIT_FAILURE; - } - /* if (screen_create_window_group(screen_win, get_window_group_id()) != 0) goto fail; */ - - int idle_mode = SCREEN_IDLE_MODE_KEEP_AWAKE; - screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_IDLE_MODE, &idle_mode); - - egl_surf = eglCreateWindowSurface(egl_disp, egl_conf, screen_win, NULL); - if (egl_surf == EGL_NO_SURFACE) { - bbutil_egl_perror("eglCreateWindowSurface"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = eglMakeCurrent(egl_disp, egl_surf, egl_surf, egl_ctx); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglMakeCurrent"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - rc = eglSwapInterval(egl_disp, interval); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglSwapInterval"); - bbutil_terminate(); - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} - -int -bbutil_init_gl2d() { -#if 0 - EGLint surface_width, surface_height; - - if ((egl_disp == EGL_NO_DISPLAY) || (egl_surf == EGL_NO_SURFACE) ){ - return EXIT_FAILURE; - } - - eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width); - eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height); - - glShadeModel(GL_SMOOTH); - - glClearColor(1.0f, 1.0f, 1.0f, 1.0f); - - glViewport(0, 0, surface_width, surface_height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - glOrthof(0.0f, (float)(surface_width) / (float)(surface_height), 0.0f, 1.0f, -1.0f, 1.0f); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -#endif - - return EXIT_SUCCESS; -} - -int -bbutil_init(screen_context_t ctx, enum RENDERING_API api) { - if (EXIT_SUCCESS != bbutil_init_egl(ctx, api)) { - return EXIT_FAILURE; - } - - if ((GL_ES_1 == api) && (EXIT_SUCCESS != bbutil_init_gl2d())) { - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} - -int bbutil_is_flipped() { - - int ret; - screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_FLIP, &ret); - return ret; -}; - -int bbutil_get_rotation() { - - int ret; - screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &ret); - return ret; -}; - - -void -bbutil_terminate() { - //Typical EGL cleanup - if (egl_disp != EGL_NO_DISPLAY) { - eglMakeCurrent(egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - if (egl_surf != EGL_NO_SURFACE) { - eglDestroySurface(egl_disp, egl_surf); - egl_surf = EGL_NO_SURFACE; - } - if (egl_ctx != EGL_NO_CONTEXT) { - eglDestroyContext(egl_disp, egl_ctx); - egl_ctx = EGL_NO_CONTEXT; - } - if (screen_win != NULL) { - screen_destroy_window(screen_win); - screen_win = NULL; - } - eglTerminate(egl_disp); - egl_disp = EGL_NO_DISPLAY; - } - eglReleaseThread(); -} - -void -bbutil_swap() { - int rc = eglSwapBuffers(egl_disp, egl_surf); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglSwapBuffers"); - } -} - -void -bbutil_clear() { - glClear(GL_COLOR_BUFFER_BIT); -} - -char * -get_window_group_id() -{ - static char s_window_group_id[16] = ""; - - if (s_window_group_id[0] == '\0') { - snprintf(s_window_group_id, sizeof(s_window_group_id), "%d", getpid()); - } - - return s_window_group_id; -} - - -int bbutil_rotate_screen_surface(int angle) { - int rc, rotation, skip = 1, temp; - EGLint interval = 1; - int size[2]; - - if ((angle != 0) && (angle != 90) && (angle != 180) && (angle != 270)) { - fprintf(stderr, "Invalid angle\n"); - return EXIT_FAILURE; - } - - rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &rotation); - if (rc) { - perror("screen_set_window_property_iv"); - return EXIT_FAILURE; - } - - rc = screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size); - if (rc) { - perror("screen_set_window_property_iv"); - return EXIT_FAILURE; - } - - switch (angle - rotation) { - case -270: - case -90: - case 90: - case 270: - temp = size[0]; - size[0] = size[1]; - size[1] = temp; - skip = 0; - break; - } - - if (!skip) { - rc = eglMakeCurrent(egl_disp, NULL, NULL, NULL); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglMakeCurrent"); - return EXIT_FAILURE; - } - - rc = eglDestroySurface(egl_disp, egl_surf); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglMakeCurrent"); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_SOURCE_SIZE, size); - if (rc) { - perror("screen_set_window_property_iv"); - return EXIT_FAILURE; - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size); - if (rc) { - perror("screen_set_window_property_iv"); - return EXIT_FAILURE; - } - egl_surf = eglCreateWindowSurface(egl_disp, egl_conf, screen_win, NULL); - if (egl_surf == EGL_NO_SURFACE) { - bbutil_egl_perror("eglCreateWindowSurface"); - return EXIT_FAILURE; - } - - rc = eglMakeCurrent(egl_disp, egl_surf, egl_surf, egl_ctx); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglMakeCurrent"); - return EXIT_FAILURE; - } - - rc = eglSwapInterval(egl_disp, interval); - if (rc != EGL_TRUE) { - bbutil_egl_perror("eglSwapInterval"); - return EXIT_FAILURE; - } - } - - rc = screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &angle); - if (rc) { - perror("screen_set_window_property_iv"); - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} - diff --git a/platform/bb10/bbutil.h b/platform/bb10/bbutil.h deleted file mode 100644 index ff25ddf976a..00000000000 --- a/platform/bb10/bbutil.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2011-2013 Research In Motion Limited. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _UTILITY_H_INCLUDED -#define _UTILITY_H_INCLUDED - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -extern EGLDisplay egl_disp; -extern EGLSurface egl_surf; - -enum RENDERING_API { - GL_ES_1 = EGL_OPENGL_ES_BIT, - GL_ES_2 = EGL_OPENGL_ES2_BIT, - VG = EGL_OPENVG_BIT -}; - -/** - * Initializes EGL, GL and loads a default font - * - * \param libscreen context that will be used for EGL setup - * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE - */ -int bbutil_init(screen_context_t ctx, enum RENDERING_API api); - -/** - * Initializes EGL - * - * \param libscreen context that will be used for EGL setup - * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE - */ -int bbutil_init_egl(screen_context_t ctx, enum RENDERING_API api); - -/** - * Initializes GL 1.1 for simple 2D rendering. GL2 initialization will be added at a later point. - * - * \return EXIT_SUCCESS if initialization succeeded otherwise EXIT_FAILURE - */ -int bbutil_init_gl2d(); - -int bbutil_is_flipped(); -int bbutil_get_rotation(); - -char *get_window_group_id(); - -int bbutil_rotate_screen_surface(int angle); - -/** - * Terminates EGL - */ -void bbutil_terminate(); - -/** - * Swaps default bbutil window surface to the screen - */ -void bbutil_swap(); - -/** - * Clears the screen of any existing text. - * NOTE: must be called after a successful return from bbutil_init() or bbutil_init_egl() call - */ -void bbutil_clear(); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/platform/bb10/detect.py b/platform/bb10/detect.py deleted file mode 100644 index d3ee9f01246..00000000000 --- a/platform/bb10/detect.py +++ /dev/null @@ -1,92 +0,0 @@ -import os -import sys -import string -import methods - - -def is_active(): - return True - - -def get_name(): - return "BlackBerry 10" - - -def can_build(): - - import os - if (not os.environ.has_key("QNX_TARGET")): - return False - return True - - -def get_opts(): - - return [ - ('QNX_HOST', 'path to qnx host', os.environ.get("QNX_HOST", 0)), - ('QNX_TARGET', 'path to qnx target', os.environ.get("QNX_TARGET", 0)), - ('QNX_CONFIGURATION', 'path to qnx configuration', os.environ.get("QNX_CONFIGURATION", 0)), - ('qnx_target', 'Qnx target (armle or x86', 'armle'), - ('bb10_payment_service', 'Enable Payment Service for BlackBerry10', 'yes'), - ('bb10_lgles_override', 'Force legacy GLES (1.1) on iOS', 'no'), - ('bb10_exceptions', 'Use exceptions when compiling on bb10', 'no'), - ] - - -def get_flags(): - - return [ - ('tools', 'no'), - ('module_theora_enabled', 'no'), - ] - - -def configure(env): - - if env['PLATFORM'] == 'win32': - env.Tool('mingw') - env['SPAWN'] = methods.win32_spawn - - env['qnx_target_ver'] = env['qnx_target'] - if env['qnx_target'] == "armle": - env['qnx_prefix'] = 'ntoarmv7' - env['qnx_target_ver'] = 'armle-v7' - else: - env['qnx_prefix'] = 'ntox86' - - env['OBJSUFFIX'] = ".qnx.${qnx_target}.o" - env['LIBSUFFIX'] = ".qnx.${qnx_target}.a" - env['PROGSUFFIX'] = ".qnx.${qnx_target}" - print("PROGSUFFIX: " + env['PROGSUFFIX'] + " target: " + env['qnx_target']) - - env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/bin') - env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/usr/bin') - env['ENV']['QNX_HOST'] = env['QNX_HOST'] - env['ENV']['QNX_TARGET'] = env['QNX_TARGET'] - env['ENV']['QNX_CONFIGURATION'] = env['QNX_CONFIGURATION'] - - env['CC'] = '$qnx_prefix-gcc' - env['CXX'] = '$qnx_prefix-g++' - env['AR'] = '$qnx_prefix-ar' - env['RANLIB'] = '$qnx_prefix-ranlib' - - env.Append(CPPPATH=['#platform/bb10']) - env.Append(LIBPATH=['#platform/bb10/lib/$qnx_target', '#platform/bb10/lib/$qnx_target_ver']) - env.Append(CCFLAGS=string.split('-DBB10_ENABLED -DUNIX_ENABLED -DGLES2_ENABLED -DGLES1_ENABLED -D_LITTLE_ENDIAN -DNO_THREADS -DNO_FCNTL')) - if env['bb10_exceptions'] == "yes": - env.Append(CCFLAGS=['-fexceptions']) - else: - env.Append(CCFLAGS=['-fno-exceptions']) - - # env.Append(LINKFLAGS = string.split() - - if (env["target"] == "release"): - - env.Append(CCFLAGS=['-O3', '-DRELEASE_BUILD']) - - elif (env["target"] == "debug"): - - env.Append(CCFLAGS=['-g', '-O0', '-DDEBUG_ENABLED', '-D_DEBUG']) - env.Append(LINKFLAGS=['-g']) - - env.Append(LIBS=['bps', 'pps', 'screen', 'socket', 'EGL', 'GLESv2', 'GLESv1_CM', 'm', 'asound']) diff --git a/platform/bb10/export/export.cpp b/platform/bb10/export/export.cpp deleted file mode 100644 index b620cea2302..00000000000 --- a/platform/bb10/export/export.cpp +++ /dev/null @@ -1,829 +0,0 @@ -/*************************************************************************/ -/* export.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "export.h" -#include "editor/editor_export.h" -#include "editor/editor_node.h" -#include "editor/editor_settings.h" -#include "global_config.h" -#include "io/marshalls.h" -#include "io/xml_parser.h" -#include "io/zip_io.h" -#include "os/file_access.h" -#include "os/os.h" -#include "platform/bb10/logo.h" -#include "version.h" - -#define MAX_DEVICES 5 -#if 0 -class EditorExportPlatformBB10 : public EditorExportPlatform { - - GDCLASS( EditorExportPlatformBB10,EditorExportPlatform ); - - String custom_package; - - int version_code; - String version_name; - String package; - String name; - String category; - String description; - String author_name; - String author_id; - String icon; - - - - struct Device { - - int index; - String name; - String description; - }; - - Vector devices; - bool devices_changed; - Mutex *device_lock; - Thread *device_thread; - Ref logo; - - volatile bool quit_request; - - - static void _device_poll_thread(void *ud); - - void _fix_descriptor(Vector& p_manifest); -protected: - - bool _set(const StringName& p_name, const Variant& p_value); - bool _get(const StringName& p_name,Variant &r_ret) const; - void _get_property_list( List *p_list) const; - -public: - - virtual String get_name() const { return "BlackBerry 10"; } - virtual ImageCompression get_image_compression() const { return IMAGE_COMPRESSION_ETC1; } - virtual Ref get_logo() const { return logo; } - - - virtual bool poll_devices(); - virtual int get_device_count() const; - virtual String get_device_name(int p_device) const; - virtual String get_device_info(int p_device) const; - virtual Error run(int p_device,int p_flags=0); - - virtual bool requires_password(bool p_debug) const { return !p_debug; } - virtual String get_binary_extension() const { return "bar"; } - virtual Error export_project(const String& p_path,bool p_debug,int p_flags=0); - - virtual bool can_export(String *r_error=NULL) const; - - EditorExportPlatformBB10(); - ~EditorExportPlatformBB10(); -}; - -bool EditorExportPlatformBB10::_set(const StringName& p_name, const Variant& p_value) { - - String n=p_name; - - if (n=="version/code") - version_code=p_value; - else if (n=="version/name") - version_name=p_value; - else if (n=="package/unique_name") - package=p_value; - else if (n=="package/category") - category=p_value; - else if (n=="package/name") - name=p_value; - else if (n=="package/description") - description=p_value; - else if (n=="package/icon") - icon=p_value; - else if (n=="package/custom_template") - custom_package=p_value; - else if (n=="release/author") - author_name=p_value; - else if (n=="release/author_id") - author_id=p_value; - else - return false; - - return true; -} - -bool EditorExportPlatformBB10::_get(const StringName& p_name,Variant &r_ret) const{ - - String n=p_name; - - if (n=="version/code") - r_ret=version_code; - else if (n=="version/name") - r_ret=version_name; - else if (n=="package/unique_name") - r_ret=package; - else if (n=="package/category") - r_ret=category; - else if (n=="package/name") - r_ret=name; - else if (n=="package/description") - r_ret=description; - else if (n=="package/icon") - r_ret=icon; - else if (n=="package/custom_template") - r_ret=custom_package; - else if (n=="release/author") - r_ret=author_name; - else if (n=="release/author_id") - r_ret=author_id; - else - return false; - - return true; -} -void EditorExportPlatformBB10::_get_property_list( List *p_list) const{ - - p_list->push_back( PropertyInfo( Variant::INT, "version/code", PROPERTY_HINT_RANGE,"1,65535,1")); - p_list->push_back( PropertyInfo( Variant::STRING, "version/name") ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/unique_name") ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/category") ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/name") ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/description",PROPERTY_HINT_MULTILINE_TEXT) ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/icon",PROPERTY_HINT_FILE,"png") ); - p_list->push_back( PropertyInfo( Variant::STRING, "package/custom_template", PROPERTY_HINT_GLOBAL_FILE,"zip")); - p_list->push_back( PropertyInfo( Variant::STRING, "release/author") ); - p_list->push_back( PropertyInfo( Variant::STRING, "release/author_id") ); - - //p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Copy,Single Exec.,Pack (.pck),Bundles (Optical)")); - -} - -void EditorExportPlatformBB10::_fix_descriptor(Vector& p_descriptor) { - - String fpath = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp_bar-settings.xml"); - { - FileAccessRef f = FileAccess::open(fpath,FileAccess::WRITE); - f->store_buffer(p_descriptor.ptr(),p_descriptor.size()); - } - - Ref parser = memnew( XMLParser ); - Error err = parser->open(fpath); - ERR_FAIL_COND(err!=OK); - - String txt; - err = parser->read(); - Vector depth; - - while(err!=ERR_FILE_EOF) { - - ERR_FAIL_COND(err!=OK); - - switch(parser->get_node_type()) { - - case XMLParser::NODE_NONE: { - print_line("???"); - } break; - case XMLParser::NODE_ELEMENT: { - String e="<"; - e+=parser->get_node_name(); - for(int i=0;iget_attribute_count();i++) { - e+=" "; - e+=parser->get_attribute_name(i)+"=\""; - e+=parser->get_attribute_value(i)+"\" "; - } - - - - if (parser->is_empty()) { - e+="/"; - } else { - depth.push_back(parser->get_node_name()); - } - - e+=">"; - txt+=e; - - } break; - case XMLParser::NODE_ELEMENT_END: { - - txt+="get_node_name()+">"; - if (depth.size() && depth[depth.size()-1]==parser->get_node_name()) { - depth.resize(depth.size()-1); - } - - - } break; - case XMLParser::NODE_TEXT: { - if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="id") { - - txt+=package; - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="name") { - - String aname; - if (this->name!="") { - aname=this->name; - } else { - aname = GlobalConfig::get_singleton()->get("application/name"); - - } - - if (aname=="") { - aname=_MKSTR(VERSION_NAME); - } - - txt+=aname; - - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="versionNumber") { - txt+=itos(version_code); - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="description") { - txt+=description; - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="author") { - txt+=author_name; - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="authorId") { - txt+=author_id; - } else if (depth.size()==2 && depth[0]=="qnx" && depth[1]=="category") { - txt+=category; - } else { - txt+=parser->get_node_data(); - } - } break; - case XMLParser::NODE_COMMENT: { - txt+=""; - } break; - case XMLParser::NODE_CDATA: { - //ignore - //print_line("cdata"); - } break; - case XMLParser::NODE_UNKNOWN: { - //ignore - txt+="<"+parser->get_node_name()+">"; - } break; - } - - err = parser->read(); - } - - - CharString cs = txt.utf8(); - p_descriptor.resize(cs.length()); - for(int i=0;ichange_dir(EditorSettings::get_singleton()->get_settings_path()); - - - if (da->change_dir("tmp")!=OK) { - da->make_dir("tmp"); - if (da->change_dir("tmp")!=OK) - return ERR_CANT_CREATE; - } - - if (da->change_dir("bb10_export")!=OK) { - da->make_dir("bb10_export"); - if (da->change_dir("bb10_export")!=OK) { - return ERR_CANT_CREATE; - } - } - - - String bar_dir = da->get_current_dir(); - if (bar_dir.ends_with("/")) { - bar_dir=bar_dir.substr(0,bar_dir.length()-1); - } - - //THIS IS SUPER, SUPER DANGEROUS!!!! - //CAREFUL WITH THIS CODE, MIGHT DELETE USERS HARD DRIVE OR HOME DIR - //EXTRA CHECKS ARE IN PLACE EVERYWERE TO MAKE SURE NOTHING BAD HAPPENS BUT STILL.... - //BE SUPER CAREFUL WITH THIS PLEASE!!! - //BLACKBERRY THIS IS YOUR FAULT FOR NOT MAKING A BETTER WAY!! - - bool berr = bar_dir.ends_with("bb10_export"); - if (berr) { - if (da->list_dir_begin()) { - EditorNode::add_io_error("Can't ensure that dir is empty:\n"+bar_dir); - ERR_FAIL_COND_V(berr,FAILED); - }; - - String f = da->get_next(); - while (f != "") { - - if (f == "." || f == "..") { - f = da->get_next(); - continue; - }; - Error err = da->remove(bar_dir + "/" + f); - if (err != OK) { - EditorNode::add_io_error("Can't ensure that dir is empty:\n"+bar_dir); - ERR_FAIL_COND_V(err!=OK,err); - }; - f = da->get_next(); - }; - - da->list_dir_end(); - - } else { - print_line("ARE YOU CRAZY??? THIS IS A SERIOUS BUG HERE!!!"); - ERR_FAIL_V(ERR_OMFG_THIS_IS_VERY_VERY_BAD); - } - - - ERR_FAIL_COND_V(!pkg, ERR_CANT_OPEN); - int ret = unzGoToFirstFile(pkg); - - - - while(ret==UNZ_OK) { - - //get filename - unz_file_info info; - char fname[16384]; - ret = unzGetCurrentFileInfo(pkg,&info,fname,16384,NULL,0,NULL,0); - - String file=fname; - - Vector data; - data.resize(info.uncompressed_size); - - //read - unzOpenCurrentFile(pkg); - unzReadCurrentFile(pkg,data.ptr(),data.size()); - unzCloseCurrentFile(pkg); - - //write - - if (file=="bar-descriptor.xml") { - - _fix_descriptor(data); - } - - if (file=="icon.png") { - bool found=false; - - if (this->icon!="" && this->icon.ends_with(".png")) { - - FileAccess *f = FileAccess::open(this->icon,FileAccess::READ); - if (f) { - - data.resize(f->get_len()); - f->get_buffer(data.ptr(),data.size()); - memdelete(f); - found=true; - } - - } - - if (!found) { - - String appicon = GlobalConfig::get_singleton()->get("application/icon"); - if (appicon!="" && appicon.ends_with(".png")) { - FileAccess*f = FileAccess::open(appicon,FileAccess::READ); - if (f) { - data.resize(f->get_len()); - f->get_buffer(data.ptr(),data.size()); - memdelete(f); - } - } - } - } - - - if (file.find("/")) { - - da->make_dir_recursive(file.get_base_dir()); - } - - FileAccessRef wf = FileAccess::open(bar_dir.plus_file(file),FileAccess::WRITE); - wf->store_buffer(data.ptr(),data.size()); - - ret = unzGoToNextFile(pkg); - } - - ep.step("Adding Files..",2); - - FileAccess* dst = FileAccess::open(bar_dir+"/data.pck", FileAccess::WRITE); - if (!dst) { - EditorNode::add_io_error("Can't copy executable file to:\n "+p_path); - return ERR_FILE_CANT_WRITE; - } - save_pack(dst, false, 1024); - dst->close(); - memdelete(dst); - - ep.step("Creating BAR Package..",104); - - String bb_packager=EditorSettings::get_singleton()->get("export/blackberry/host_tools"); - bb_packager=bb_packager.plus_file("blackberry-nativepackager"); - if (OS::get_singleton()->get_name()=="Windows") - bb_packager+=".bat"; - - - if (!FileAccess::exists(bb_packager)) { - EditorNode::add_io_error("Can't find packager:\n"+bb_packager); - return ERR_CANT_OPEN; - } - - List args; - args.push_back("-package"); - args.push_back(p_path); - if (p_debug) { - - String debug_token=EditorSettings::get_singleton()->get("export/blackberry/debug_token"); - if (!FileAccess::exists(debug_token)) { - EditorNode::add_io_error("Debug token not found!"); - } else { - args.push_back("-debugToken"); - args.push_back(debug_token); - } - args.push_back("-devMode"); - args.push_back("-configuration"); - args.push_back("Device-Debug"); - } else { - - args.push_back("-configuration"); - args.push_back("Device-Release"); - } - args.push_back(bar_dir.plus_file("bar-descriptor.xml")); - - int ec; - - Error err = OS::get_singleton()->execute(bb_packager,args,true,NULL,NULL,&ec); - - if (err!=OK) - return err; - if (ec!=0) - return ERR_CANT_CREATE; - - return OK; - -} - -bool EditorExportPlatformBB10::poll_devices() { - - bool dc=devices_changed; - devices_changed=false; - return dc; -} - -int EditorExportPlatformBB10::get_device_count() const { - - device_lock->lock(); - int dc=devices.size(); - device_lock->unlock(); - - return dc; - -} -String EditorExportPlatformBB10::get_device_name(int p_device) const { - - ERR_FAIL_INDEX_V(p_device,devices.size(),""); - device_lock->lock(); - String s=devices[p_device].name; - device_lock->unlock(); - return s; -} -String EditorExportPlatformBB10::get_device_info(int p_device) const { - - ERR_FAIL_INDEX_V(p_device,devices.size(),""); - device_lock->lock(); - String s=devices[p_device].description; - device_lock->unlock(); - return s; -} - -void EditorExportPlatformBB10::_device_poll_thread(void *ud) { - - EditorExportPlatformBB10 *ea=(EditorExportPlatformBB10 *)ud; - - while(!ea->quit_request) { - - String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools"); - bb_deploy=bb_deploy.plus_file("blackberry-deploy"); - bool windows = OS::get_singleton()->get_name()=="Windows"; - if (windows) - bb_deploy+=".bat"; - - if (FileAccess::exists(bb_deploy)) { - - Vector devices; - - - for (int i=0;iget("export/blackberry/device_"+itos(i+1)+"/host"); - if (host==String()) - continue; - String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(i+1)+"/password"); - if (pass==String()) - continue; - - List args; - args.push_back("-listDeviceInfo"); - args.push_back(host); - args.push_back("-password"); - args.push_back(pass); - - - int ec; - String dp; - - Error err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,&dp,&ec); - - if (err==OK && ec==0) { - - Device dev; - dev.index=i; - String descr; - Vector ls=dp.split("\n"); - - for(int i=0;idevice_lock->lock(); - - if (ea->devices.size()!=devices.size()) { - changed=true; - } else { - - for(int i=0;idevices.size();i++) { - - if (ea->devices[i].index!=devices[i].index) { - changed=true; - break; - } - } - } - - if (changed) { - - ea->devices=devices; - ea->devices_changed=true; - } - - ea->device_lock->unlock(); - } - - - uint64_t wait = 3000000; - uint64_t time = OS::get_singleton()->get_ticks_usec(); - while(OS::get_singleton()->get_ticks_usec() - time < wait ) { - OS::get_singleton()->delay_usec(1000); - if (ea->quit_request) - break; - } - } - -} - -Error EditorExportPlatformBB10::run(int p_device, int p_flags) { - - ERR_FAIL_INDEX_V(p_device,devices.size(),ERR_INVALID_PARAMETER); - - String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools"); - bb_deploy=bb_deploy.plus_file("blackberry-deploy"); - if (OS::get_singleton()->get_name()=="Windows") - bb_deploy+=".bat"; - - if (!FileAccess::exists(bb_deploy)) { - EditorNode::add_io_error("Blackberry Deploy not found:\n"+bb_deploy); - return ERR_FILE_NOT_FOUND; - } - - - device_lock->lock(); - - - EditorProgress ep("run","Running on "+devices[p_device].name,3); - - //export_temp - ep.step("Exporting APK",0); - - String export_to=EditorSettings::get_singleton()->get_settings_path().plus_file("/tmp/tmpexport.bar"); - Error err = export_project(export_to,true,p_flags); - if (err) { - device_lock->unlock(); - return err; - } -#if 0 - ep.step("Uninstalling..",1); - - print_line("Uninstalling previous version: "+devices[p_device].name); - List args; - args.push_back("-s"); - args.push_back(devices[p_device].id); - args.push_back("uninstall"); - args.push_back(package); - int rv; - err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv); - - if (err || rv!=0) { - EditorNode::add_io_error("Could not install to device."); - device_lock->unlock(); - return ERR_CANT_CREATE; - } - - print_line("Installing into device (please wait..): "+devices[p_device].name); - -#endif - ep.step("Installing to Device (please wait..)..",2); - - List args; - args.clear(); - args.push_back("-installApp"); - args.push_back("-launchApp"); - args.push_back("-device"); - String host = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/host"); - String pass = EditorSettings::get_singleton()->get("export/blackberry/device_"+itos(p_device+1)+"/password"); - args.push_back(host); - args.push_back("-password"); - args.push_back(pass); - args.push_back(export_to); - - int rv; - err = OS::get_singleton()->execute(bb_deploy,args,true,NULL,NULL,&rv); - if (err || rv!=0) { - EditorNode::add_io_error("Could not install to device."); - device_lock->unlock(); - return ERR_CANT_CREATE; - } - - device_lock->unlock(); - return OK; - - -} - - -EditorExportPlatformBB10::EditorExportPlatformBB10() { - - version_code=1; - version_name="1.0"; - package="com.godot.noname"; - category="core.games"; - name=""; - author_name="Cert. Name"; - author_id="Cert. ID"; - description="Game made with Godot Engine"; - - device_lock = Mutex::create(); - quit_request=false; - - device_thread=Thread::create(_device_poll_thread,this); - devices_changed=true; - - Image img( _bb10_logo ); - logo = Ref( memnew( ImageTexture )); - logo->create_from_image(img); -} - -bool EditorExportPlatformBB10::can_export(String *r_error) const { - - bool valid=true; - String bb_deploy=EditorSettings::get_singleton()->get("export/blackberry/host_tools"); - String err; - - if (!FileAccess::exists(bb_deploy.plus_file("blackberry-deploy"))) { - - valid=false; - err+="Blackberry host tools not configured in editor settings.\n"; - } - - if (!exists_export_template("bb10.zip")) { - valid=false; - err+="No export template found.\nDownload and install export templates.\n"; - } - - String debug_token=EditorSettings::get_singleton()->get("export/blackberry/debug_token"); - - if (!FileAccess::exists(debug_token)) { - valid=false; - err+="No debug token set, will not be able to test on device.\n"; - } - - - if (custom_package!="" && !FileAccess::exists(custom_package)) { - valid=false; - err+="Custom release package not found.\n"; - } - - if (r_error) - *r_error=err; - - return valid; -} - - -EditorExportPlatformBB10::~EditorExportPlatformBB10() { - - quit_request=true; - Thread::wait_to_finish(device_thread); - memdelete(device_lock); - memdelete(device_thread); -} - -#endif -void register_bb10_exporter() { -#if 0 - EDITOR_DEF("export/blackberry/host_tools",""); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"export/blackberry/host_tools",PROPERTY_HINT_GLOBAL_DIR)); - EDITOR_DEF("export/blackberry/debug_token",""); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"export/blackberry/debug_token",PROPERTY_HINT_GLOBAL_FILE,"bar")); - EDITOR_DEF("export/blackberry/device_1/host",""); - EDITOR_DEF("export/blackberry/device_1/password",""); - EDITOR_DEF("export/blackberry/device_2/host",""); - EDITOR_DEF("export/blackberry/device_2/password",""); - EDITOR_DEF("export/blackberry/device_3/host",""); - EDITOR_DEF("export/blackberry/device_3/password",""); - EDITOR_DEF("export/blackberry/device_4/host",""); - EDITOR_DEF("export/blackberry/device_4/password",""); - EDITOR_DEF("export/blackberry/device_5/host",""); - EDITOR_DEF("export/blackberry/device_5/password",""); - - Ref exporter = Ref( memnew(EditorExportPlatformBB10) ); - EditorImportExport::get_singleton()->add_export_platform(exporter); - -#endif -} diff --git a/platform/bb10/export/export.h b/platform/bb10/export/export.h deleted file mode 100644 index 7939754bfac..00000000000 --- a/platform/bb10/export/export.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************/ -/* export.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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. */ -/*************************************************************************/ -void register_bb10_exporter(); diff --git a/platform/bb10/godot_bb10.cpp b/platform/bb10/godot_bb10.cpp deleted file mode 100644 index 4d382ddd151..00000000000 --- a/platform/bb10/godot_bb10.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/*************************************************************************/ -/* godot_bb10.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "main/main.h" -#include "os_bb10.h" - -#include - -int main(int argc, char *argv[]) { - - OSBB10 os; - - Error err = Main::setup(argv[0], argc - 1, &argv[1]); - if (err != OK) - return 255; - - if (Main::start()) - os.run(); // it is actually the OS that decides how to run - Main::cleanup(); - - return os.get_exit_code(); -} diff --git a/platform/bb10/logo.png b/platform/bb10/logo.png deleted file mode 100644 index abf0d2cc696cd623b5fb8e98e0b0e6720828011f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmV<21S9*2P)kdg00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zbg4Hxg~kavcBw z1J6lBK~zY`t(9GfRaF$ne`}w8zh=hfLr1fT%IO0vDGa0@A`yG(t%ryVk|d-af=I$d zsE4Q^kX}NFUL>DNQ0R+549bWg5KFBgOexKgY1Fy%ap#Wrp0oZvoHOIxk)Wu(UiRK= z@Bdo=|5aSuZhX;qKh2?;!LY)ILNDe(Xz*j4iS^3Zh(A*Q8-RlhZSLAu-sCIm zoQvm}U{)=q3Ir;l%a(HsYqBnd5&wjJcb{1T@bTc_-m%B`*ae!(NGvK~*RqpvOO;uq zOT+9^&z=Wg=>RzT!=Zck+cE?KOqi}^Cs-Cv; z1ZLT^e;c(S*4p#mDaT*FnlIt3RWa7 zz)bTjgykX_!VDGu23h}1H}weZHKz@Ef!swEn4^Iq1~6cX_H}|}{27zg)B~iqkGjlp zb5h>4V|I+6Y^!CI7~vSl`NeK7{EnNO<0ktZ)YPK{*-DHAx*M+9bQAnU=o0t6dG2+?$} zL4>QcQBh-C*aieX=M4e}r~-lQoM4Fa1ZFwHR|pVont36KtN?)ZTn1nms1Xiv*I>aB=;I>JZ@h*12t-)^YhQ;W4{@38^EoZ-s^e5wy6GYWcxY_E3t<7%{5;R3 z;3hzp_XYt9RNKut2(W6r`$VN9dVaBUZc9$|(E6w=2Y8>k9qX>iXPAMR8Ac#r`C?w( zV!pw7eG#K)53Y7(GMR#c5=D05UK!HZ3qVEiy7xGB7$bIXW^nD=;!TFfhrj$Wj0R03~!q zSaf7zbY(hiZ)9m^c>ppnF*YqQHZ3wTR5CC+GdVgkHY+ePIxsM}@Nn(`0000>Ic diff --git a/platform/bb10/os_bb10.cpp b/platform/bb10/os_bb10.cpp deleted file mode 100644 index b571d1640c0..00000000000 --- a/platform/bb10/os_bb10.cpp +++ /dev/null @@ -1,608 +0,0 @@ -/*************************************************************************/ -/* os_bb10.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "os_bb10.h" - -#include "bbutil.h" -#include "core/global_config.h" -#include "core/os/dir_access.h" -#include "core/os/keyboard.h" -#include "drivers/gles2/rasterizer_gles2.h" -#include "main/main.h" -#include "servers/visual/visual_server_raster.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef BB10_SCORELOOP_ENABLED -#include "modules/scoreloop/scoreloop_bb10.h" -#endif - -static char launch_dir[512]; -char *launch_dir_ptr; - -int OSBB10::get_video_driver_count() const { - - return 1; -} -const char *OSBB10::get_video_driver_name(int p_driver) const { - - return "GLES2"; -} - -OS::VideoMode OSBB10::get_default_video_mode() const { - - return OS::VideoMode(); -} - -int OSBB10::get_audio_driver_count() const { - - return 1; -} -const char *OSBB10::get_audio_driver_name(int p_driver) const { - - return "BB10"; -} - -void OSBB10::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) { - - data_dir = getenv("HOME"); - - //Create a screen context that will be used to create an EGL surface to to receive libscreen events - screen_create_context(&screen_cxt, 0); - - //Initialize BPS library - bps_initialize(); - - //Use utility code to initialize EGL for 2D rendering with GL ES 1.1 - enum RENDERING_API api = GL_ES_2; -#ifdef BB10_LGLES_OVERRIDE - api = GL_ES_1; -#endif - if (EXIT_SUCCESS != bbutil_init(screen_cxt, api)) { - bbutil_terminate(); - screen_destroy_context(screen_cxt); - return; - }; - - EGLint surface_width, surface_height; - - eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width); - eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height); - printf("screen size: %ix%i\n", surface_width, surface_height); - VideoMode mode; - mode.width = surface_width; - mode.height = surface_height; - mode.fullscreen = true; - mode.resizable = false; - set_video_mode(mode); - - //Signal BPS library that navigator and screen events will be requested - screen_request_events(screen_cxt); - navigator_request_events(0); - virtualkeyboard_request_events(0); - audiodevice_request_events(0); - -#ifdef DEBUG_ENABLED - bps_set_verbosity(3); -#endif - - accel_supported = accelerometer_is_supported(); - if (accel_supported) - accelerometer_set_update_frequency(FREQ_40_HZ); - pitch = 0; - roll = 0; - -#ifdef BB10_LGLES_OVERRIDE - rasterizer = memnew(RasterizerGLES1(false)); -#else - rasterizer = memnew(RasterizerGLES2(false, false)); -#endif - - visual_server = memnew(VisualServerRaster(rasterizer)); - visual_server->init(); - visual_server->cursor_set_visible(false, 0); - - audio_driver = memnew(AudioDriverBB10); - audio_driver->set_singleton(); - audio_driver->init(NULL); - - physics_server = memnew(PhysicsServerSW); - physics_server->init(); - physics_2d_server = memnew(Physics2DServerSW); - physics_2d_server->init(); - - input = memnew(InputDefault); - - power_manager = memnew(PowerBB10); - -#ifdef PAYMENT_SERVICE_ENABLED - payment_service = memnew(PaymentService); - Globals::get_singleton()->add_singleton(Globals::Singleton("InAppStore", payment_service)); -#endif -} - -void OSBB10::set_main_loop(MainLoop *p_main_loop) { - - input->set_main_loop(p_main_loop); - main_loop = p_main_loop; -} - -void OSBB10::delete_main_loop() { - - memdelete(main_loop); - main_loop = NULL; -} - -void OSBB10::finalize() { - - if (main_loop) - memdelete(main_loop); - main_loop = NULL; - - /* - if (debugger_connection_console) { - memdelete(debugger_connection_console); - } - */ - - visual_server->finish(); - memdelete(visual_server); - memdelete(rasterizer); - - physics_server->finish(); - memdelete(physics_server); - - physics_2d_server->finish(); - memdelete(physics_2d_server); - -#ifdef PAYMENT_SERVICE_ENABLED - memdelete(payment_service); -#endif - - memdelete(input); - - bbutil_terminate(); - screen_destroy_context(screen_cxt); - - bps_shutdown(); -} - -void OSBB10::set_mouse_show(bool p_show) { - - //android has no mouse... -} - -void OSBB10::set_mouse_grab(bool p_grab) { - - //it really has no mouse...! -} - -bool OSBB10::is_mouse_grab_enabled() const { - - //*sigh* technology has evolved so much since i was a kid.. - return false; -} -Point2 OSBB10::get_mouse_position() const { - - return Point2(); -} -int OSBB10::get_mouse_button_state() const { - - return 0; -} -void OSBB10::set_window_title(const String &p_title) { -} - -//interesting byt not yet -//void set_clipboard(const String& p_text); -//String get_clipboard() const; - -void OSBB10::set_video_mode(const VideoMode &p_video_mode, int p_screen) { - - default_videomode = p_video_mode; -} - -OS::VideoMode OSBB10::get_video_mode(int p_screen) const { - - return default_videomode; -} -void OSBB10::get_fullscreen_mode_list(List *p_list, int p_screen) const { - - p_list->push_back(default_videomode); -} - -String OSBB10::get_name() { - - return "BlackBerry 10"; -} - -MainLoop *OSBB10::get_main_loop() const { - - return main_loop; -} - -bool OSBB10::can_draw() const { - - return !minimized; -} - -void OSBB10::set_cursor_shape(CursorShape p_shape) { - - //android really really really has no mouse.. how amazing.. -} - -void OSBB10::handle_screen_event(bps_event_t *event) { - - screen_event_t screen_event = screen_event_get_event(event); - - int screen_val; - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TYPE, &screen_val); - - int pos[2]; - - switch (screen_val) { - case SCREEN_EVENT_MTOUCH_TOUCH: - case SCREEN_EVENT_MTOUCH_RELEASE: { - - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_POSITION, pos); - - InputEvent ievent; - ievent.type = InputEvent::SCREEN_TOUCH; - ievent.device = 0; - ievent.screen_touch.pressed = (screen_val == SCREEN_EVENT_MTOUCH_TOUCH); - ievent.screen_touch.x = pos[0]; - ievent.screen_touch.y = pos[1]; - Point2 mpos(ievent.screen_touch.x, ievent.screen_touch.y); - - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TOUCH_ID, &pos[0]); - ievent.screen_touch.index = pos[0]; - - last_touch_x[pos[0]] = ievent.screen_touch.x; - last_touch_y[pos[0]] = ievent.screen_touch.y; - - input->parse_input_event(ievent); - - if (ievent.screen_touch.index == 0) { - - InputEvent ievent; - ievent.type = InputEvent::MOUSE_BUTTON; - ievent.device = 0; - ievent.mouse_button.pressed = (screen_val == SCREEN_EVENT_MTOUCH_TOUCH); - ievent.mouse_button.button_index = BUTTON_LEFT; - ievent.mouse_button.doubleclick = 0; - ievent.mouse_button.x = ievent.mouse_button.global_x = mpos.x; - ievent.mouse_button.y = ievent.mouse_button.global_y = mpos.y; - input->parse_input_event(ievent); - }; - - } break; - case SCREEN_EVENT_MTOUCH_MOVE: { - - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_POSITION, pos); - - InputEvent ievent; - ievent.type = InputEvent::SCREEN_DRAG; - ievent.device = 0; - ievent.screen_drag.x = pos[0]; - ievent.screen_drag.y = pos[1]; - - /* - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_SOURCE_POSITION, pos); - ievent.screen_drag.relative_x = ievent.screen_drag.x - pos[0]; - ievent.screen_drag.relative_y = ievent.screen_drag.y - pos[1]; - */ - - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TOUCH_ID, &pos[0]); - ievent.screen_drag.index = pos[0]; - - ievent.screen_drag.relative_x = ievent.screen_drag.x - last_touch_x[ievent.screen_drag.index]; - ievent.screen_drag.relative_y = ievent.screen_drag.y - last_touch_y[ievent.screen_drag.index]; - - last_touch_x[ievent.screen_drag.index] = ievent.screen_drag.x; - last_touch_y[ievent.screen_drag.index] = ievent.screen_drag.y; - - Point2 mpos(ievent.screen_drag.x, ievent.screen_drag.y); - Point2 mrel(ievent.screen_drag.relative_x, ievent.screen_drag.relative_y); - - input->parse_input_event(ievent); - - if (ievent.screen_touch.index == 0) { - - InputEvent ievent; - ievent.type = InputEvent::MOUSE_MOTION; - ievent.device = 0; - ievent.mouse_motion.x = ievent.mouse_motion.global_x = mpos.x; - ievent.mouse_motion.y = ievent.mouse_motion.global_y = mpos.y; - input->set_mouse_position(Point2(ievent.mouse_motion.x, ievent.mouse_motion.y)); - ievent.mouse_motion.speed_x = input->get_last_mouse_speed().x; - ievent.mouse_motion.speed_y = input->get_last_mouse_speed().y; - ievent.mouse_motion.relative_x = mrel.x; - ievent.mouse_motion.relative_y = mrel.y; - ievent.mouse_motion.button_mask = 1; // pressed - - input->parse_input_event(ievent); - }; - } break; - - case SCREEN_EVENT_KEYBOARD: { - - InputEvent ievent; - ievent.type = InputEvent::KEY; - ievent.device = 0; - int val = 0; - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_SCAN, &val); - ievent.key.scancode = val; - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_SYM, &val); - ievent.key.unicode = val; - if (val == 61448) { - ievent.key.scancode = KEY_BACKSPACE; - ievent.key.unicode = KEY_BACKSPACE; - }; - if (val == 61453) { - ievent.key.scancode = KEY_ENTER; - ievent.key.unicode = KEY_ENTER; - }; - - int flags; - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_FLAGS, &flags); - ievent.key.pressed = flags & 1; // bit 1 is pressed apparently - - int mod; - screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_KEY_MODIFIERS, &mod); - - input->parse_input_event(ievent); - } break; - - default: - break; - } -}; - -void OSBB10::handle_accelerometer() { - - if (!accel_supported) - return; - - if (!fullscreen) - return; - - double force_x, force_y, force_z; - accelerometer_read_forces(&force_x, &force_y, &force_z); - Vector3 accel = Vector3(force_x, flip_accelerometer ? force_y : -force_y, force_z); - input->set_accelerometer(accel); - // rotate 90 degrees - //input->set_accelerometer(Vector3(force_y, flip_accelerometer?force_x:(-force_x), force_z)); -}; - -void OSBB10::_resize(bps_event_t *event) { - - int angle = navigator_event_get_orientation_angle(event); - bbutil_rotate_screen_surface(angle); - - EGLint surface_width, surface_height; - eglQuerySurface(egl_disp, egl_surf, EGL_WIDTH, &surface_width); - eglQuerySurface(egl_disp, egl_surf, EGL_HEIGHT, &surface_height); - - VideoMode mode; - mode.width = surface_width; - mode.height = surface_height; - mode.fullscreen = true; - mode.resizable = false; - set_video_mode(mode); -}; - -void OSBB10::process_events() { - - handle_accelerometer(); - - bps_event_t *event = NULL; - - do { - int rc = bps_get_event(&event, 0); - assert(rc == BPS_SUCCESS); - - if (!event) break; - -#ifdef BB10_SCORELOOP_ENABLED - ScoreloopBB10 *sc = Globals::get_singleton()->get_singleton_object("Scoreloop")->cast_to(); - if (sc->handle_event(event)) - continue; -#endif - -#ifdef PAYMENT_SERVICE_ENABLED - if (payment_service->handle_event(event)) - continue; -#endif - - int domain = bps_event_get_domain(event); - if (domain == screen_get_domain()) { - - handle_screen_event(event); - - } else if (domain == navigator_get_domain()) { - - if (NAVIGATOR_EXIT == bps_event_get_code(event)) { - if (main_loop) - main_loop->notification(MainLoop::NOTIFICATION_WM_QUIT_REQUEST); - bps_event_destroy(event); - exit(0); - return; - /* - } else if (bps_event_get_code(event) == NAVIGATOR_ORIENTATION_CHECK) { - - int angle = navigator_event_get_orientation_angle(event); - navigator_orientation_check_response(event, false); - - } else if (bps_event_get_code(event) == NAVIGATOR_ORIENTATION) { - - _resize(event); - */ - } else if (bps_event_get_code(event) == NAVIGATOR_WINDOW_STATE) { - - int state = navigator_event_get_window_state(event); - bool was_fullscreen = fullscreen; - minimized = state == NAVIGATOR_WINDOW_INVISIBLE; - fullscreen = state == NAVIGATOR_WINDOW_FULLSCREEN; - set_low_processor_usage_mode(!fullscreen); - if (fullscreen != was_fullscreen) { - if (fullscreen) { - audio_server->set_fx_global_volume_scale(fullscreen_mixer_volume); - audio_server->set_stream_global_volume_scale(fullscreen_stream_volume); - } else { - fullscreen_mixer_volume = audio_server->get_fx_global_volume_scale(); - fullscreen_stream_volume = audio_server->get_stream_global_volume_scale(); - audio_server->set_fx_global_volume_scale(0); - audio_server->set_stream_global_volume_scale(0); - }; - }; - }; - } else if (domain == audiodevice_get_domain()) { - - const char *audiodevice_path = audiodevice_event_get_path(event); - printf("************* got audiodevice event, path %s\n", audiodevice_path); - audio_driver->finish(); - audio_driver->init(audiodevice_path); - audio_driver->start(); - }; - - //bps_event_destroy(event); - } while (event); -}; - -bool OSBB10::has_virtual_keyboard() const { - - return true; -}; - -void OSBB10::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) { - - virtualkeyboard_show(); -}; - -void OSBB10::hide_virtual_keyboard() { - - virtualkeyboard_hide(); -}; - -void OSBB10::run() { - - if (!main_loop) - return; - - main_loop->init(); - - int flip = bbutil_is_flipped(); - int rot = bbutil_get_rotation(); - flip_accelerometer = rot == 90; - printf("**************** rot is %i, flip %i\n", rot, (int)flip_accelerometer); - /* - orientation_direction_t orientation; - int angle; - orientation_get(&orientation, &angle); - printf("******************** orientation %i, %i, %i\n", orientation, ORIENTATION_BOTTOM_UP, ORIENTATION_TOP_UP); - if (orientation == ORIENTATION_BOTTOM_UP) { - flip_accelerometer = true; - }; - */ - - while (true) { - - process_events(); // get rid of pending events - if (Main::iteration() == true) - break; - bbutil_swap(); - //#ifdef DEBUG_ENABLED - fflush(stdout); - //#endif - }; - - main_loop->finish(); -}; - -bool OSBB10::has_touchscreen_ui_hint() const { - - return true; -} - -Error OSBB10::shell_open(String p_uri) { - - char *msg = NULL; - int ret = navigator_invoke(p_uri.utf8().get_data(), &msg); - - return ret == BPS_SUCCESS ? OK : FAILED; -}; - -String OSBB10::get_data_dir() const { - - return data_dir; -}; - -Size2 OSBB10::get_window_size() const { - return Vector2(default_videomode.width, default_videomode.height); -} - -PowerState OSBB10::get_power_state() { - return power_manager->get_power_state(); -} - -int OSBB10::get_power_seconds_left() { - return power_manager->get_power_seconds_left(); -} - -int OSBB10::get_power_percent_left() { - return power_manager->get_power_percent_left(); -} - -OSBB10::OSBB10() { - - main_loop = NULL; - minimized = false; - fullscreen = true; - flip_accelerometer = true; - fullscreen_mixer_volume = 1; - fullscreen_stream_volume = 1; - - printf("godot bb10!\n"); - getcwd(launch_dir, sizeof(launch_dir)); - printf("launch dir %s\n", launch_dir); - chdir("app/native"); - launch_dir_ptr = launch_dir; -} - -OSBB10::~OSBB10() { -} diff --git a/platform/bb10/os_bb10.h b/platform/bb10/os_bb10.h deleted file mode 100644 index 91149b6f688..00000000000 --- a/platform/bb10/os_bb10.h +++ /dev/null @@ -1,153 +0,0 @@ -/*************************************************************************/ -/* os_bb10.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 OS_BB10_H -#define OS_BB10_H - -#include "audio_driver_bb10.h" -#include "drivers/unix/os_unix.h" -#include "main/input_default.h" -#include "os/input.h" -#include "os/main_loop.h" -#include "payment_service.h" -#include "power_bb10.h" -#include "servers/audio_server.h" -#include "servers/physics/physics_server_sw.h" -#include "servers/physics_2d/physics_2d_server_sw.h" -#include "servers/visual/rasterizer.h" - -#include -#include -#include -#include - -class OSBB10 : public OS_Unix { - - screen_context_t screen_cxt; - float fullscreen_mixer_volume; - float fullscreen_stream_volume; - - Rasterizer *rasterizer; - VisualServer *visual_server; - PhysicsServer *physics_server; - Physics2DServer *physics_2d_server; - AudioDriverBB10 *audio_driver; - PowerBB10 *power_manager; - -#ifdef PAYMENT_SERVICE_ENABLED - PaymentService *payment_service; -#endif - - VideoMode default_videomode; - MainLoop *main_loop; - - void process_events(); - - void _resize(bps_event_t *event); - void handle_screen_event(bps_event_t *event); - void handle_accelerometer(); - - int last_touch_x[16]; - int last_touch_y[16]; - - bool accel_supported; - float pitch; - float roll; - - bool minimized; - bool fullscreen; - bool flip_accelerometer; - String data_dir; - - InputDefault *input; - -public: - // functions used by main to initialize/deintialize the OS - virtual int get_video_driver_count() const; - virtual const char *get_video_driver_name(int p_driver) const; - - virtual VideoMode get_default_video_mode() const; - - virtual String get_data_dir() const; - - virtual int get_audio_driver_count() const; - virtual const char *get_audio_driver_name(int p_driver) const; - - virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver); - - virtual void set_main_loop(MainLoop *p_main_loop); - virtual void delete_main_loop(); - - virtual void finalize(); - - typedef int64_t ProcessID; - - static OS *get_singleton(); - - virtual void set_mouse_show(bool p_show); - virtual void set_mouse_grab(bool p_grab); - virtual bool is_mouse_grab_enabled() const; - virtual Point2 get_mouse_position() const; - virtual int get_mouse_button_state() const; - virtual void set_window_title(const String &p_title); - - //virtual void set_clipboard(const String& p_text); - //virtual String get_clipboard() const; - - virtual bool has_virtual_keyboard() const; - virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect); - virtual void hide_virtual_keyboard(); - - virtual void set_video_mode(const VideoMode &p_video_mode, int p_screen = 0); - virtual VideoMode get_video_mode(int p_screen = 0) const; - virtual void get_fullscreen_mode_list(List *p_list, int p_screen = 0) const; - - virtual Size2 get_window_size() const; - virtual String get_name(); - virtual MainLoop *get_main_loop() const; - - virtual bool can_draw() const; - - virtual void set_cursor_shape(CursorShape p_shape); - - virtual bool has_touchscreen_ui_hint() const; - - virtual Error shell_open(String p_uri); - - void run(); - - virtual PowerState get_power_state(); - virtual int get_power_seconds_left(); - virtual int get_power_percent_left(); - - OSBB10(); - ~OSBB10(); -}; - -#endif diff --git a/platform/bb10/payment_service.cpp b/platform/bb10/payment_service.cpp deleted file mode 100644 index 353845583f1..00000000000 --- a/platform/bb10/payment_service.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/*************************************************************************/ -/* payment_service.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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. */ -/*************************************************************************/ -#ifdef PAYMENT_SERVICE_ENABLED - -#include "payment_service.h" - -#include "bbutil.h" -#include -#include -#include -extern char *launch_dir_ptr; - -void PaymentService::_bind_methods() { - - ClassDB::bind_method(D_METHOD("request_product_info"), &PaymentService::request_product_info); - ClassDB::bind_method(D_METHOD("purchase"), &PaymentService::purchase); - - ClassDB::bind_method(D_METHOD("get_pending_event_count"), &PaymentService::get_pending_event_count); - ClassDB::bind_method(D_METHOD("pop_pending_event"), &PaymentService::pop_pending_event); -}; - -Error PaymentService::request_product_info(Variant p_params) { - - return ERR_UNAVAILABLE; -}; - -Error PaymentService::purchase(Variant p_params) { - - Dictionary params = p_params; - ERR_FAIL_COND_V((!params.has("product_id")) && (!params.has("product_sku")), ERR_INVALID_PARAMETER); - - char *id = NULL; - char *sku = NULL; - - CharString p_id = params.has("product_id") ? String(params["product_id"]).ascii() : CharString(); - CharString p_sku = params.has("product_sku") ? String(params["product_sku"]).ascii() : CharString(); - unsigned int request_id; - chdir(launch_dir_ptr); - int ret = paymentservice_purchase_request(params.has("product_sku") ? NULL : p_id.get_data(), - params.has("product_sku") ? p_sku.get_data() : NULL, - NULL, NULL, NULL, NULL, get_window_group_id(), &request_id); - chdir("app/native"); - - if (ret != BPS_SUCCESS) { - int eret = errno; - printf("purchase error %i, %x, %i, %x\n", ret, ret, eret, eret); - ERR_FAIL_V((Error)eret); - return (Error)eret; - }; - return OK; -}; - -bool PaymentService::handle_event(bps_event_t *p_event) { - - if (bps_event_get_domain(p_event) != paymentservice_get_domain()) { - return false; - }; - - Dictionary dict; - int res = paymentservice_event_get_response_code(p_event); - if (res == SUCCESS_RESPONSE) { - dict["result"] = "ok"; - - res = bps_event_get_code(p_event); - if (res == PURCHASE_RESPONSE) { - dict["type"] = "purchase"; - const char *pid = paymentservice_event_get_digital_good_id(p_event, 0); - dict["product_id"] = String(pid ? pid : ""); - }; - - } else { - const char *desc = paymentservice_event_get_error_text(p_event); - if (strcmp(desc, "alreadyPurchased") == 0) { - dict["result"] = "ok"; - } else { - dict["result"] = "error"; - dict["error_description"] = paymentservice_event_get_error_text(p_event); - dict["error_code"] = paymentservice_event_get_error_id(p_event); - printf("error code is %i\n", paymentservice_event_get_error_id(p_event)); - printf("error description is %s\n", paymentservice_event_get_error_text(p_event)); - }; - dict["product_id"] = ""; - }; - - res = bps_event_get_code(p_event); - if (res == PURCHASE_RESPONSE) { - dict["type"] = "purchase"; - }; - - printf("********** adding event with result %ls\n", String(dict["result"]).c_str()); - pending_events.push_back(dict); - - return true; -}; - -int PaymentService::get_pending_event_count() { - return pending_events.size(); -}; - -Variant PaymentService::pop_pending_event() { - - Variant front = pending_events.front()->get(); - pending_events.pop_front(); - - return front; -}; - -PaymentService::PaymentService() { - - paymentservice_request_events(0); -#ifdef DEBUG_ENABLED - paymentservice_set_connection_mode(true); -#else - paymentservice_set_connection_mode(false); -#endif -}; - -PaymentService::~PaymentService(){ - -}; - -#endif diff --git a/platform/bb10/payment_service.h b/platform/bb10/payment_service.h deleted file mode 100644 index 64dc982ab2e..00000000000 --- a/platform/bb10/payment_service.h +++ /dev/null @@ -1,64 +0,0 @@ -/*************************************************************************/ -/* payment_service.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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. */ -/*************************************************************************/ -#ifdef PAYMENT_SERVICE_ENABLED - -#ifndef PAYMENT_SERVICE_H -#define PAYMENT_SERVICE_H - -#include -#include -#include - -#include "core/object.h" - -class PaymentService : public Object { - - GDCLASS(PaymentService, Object); - - static void _bind_methods(); - - List pending_events; - -public: - Error request_product_info(Variant p_params); - Error purchase(Variant p_params); - - int get_pending_event_count(); - Variant pop_pending_event(); - - bool handle_event(bps_event_t *p_event); - - PaymentService(); - ~PaymentService(); -}; - -#endif - -#endif diff --git a/platform/bb10/platform_config.h b/platform/bb10/platform_config.h deleted file mode 100644 index 48bcadcc29f..00000000000 --- a/platform/bb10/platform_config.h +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************/ -/* platform_config.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 diff --git a/platform/bb10/power_bb10.cpp b/platform/bb10/power_bb10.cpp deleted file mode 100644 index a683b613761..00000000000 --- a/platform/bb10/power_bb10.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************/ -/* power_bb10.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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 "power_bb10.h" - -#include "core/error_macros.h" - -bool PowerBB10::UpdatePowerInfo() { - - return false; -} - -PowerState PowerBB10::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 PowerBB10::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 PowerBB10::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; - } -} - -PowerBB10::PowerBB10() - : nsecs_left(-1), percent_left(-1), power_state(POWERSTATE_UNKNOWN) { -} - -PowerBB10::~PowerBB10() { -} diff --git a/platform/bb10/power_bb10.h b/platform/bb10/power_bb10.h deleted file mode 100644 index c5c18d5f69b..00000000000 --- a/platform/bb10/power_bb10.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************/ -/* power_bb10.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* 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_BB10_POWER_BB10_H_ -#define PLATFORM_BB10_POWER_BB10_H_ - -class PowerBB10 { -private: - int nsecs_left; - int percent_left; - PowerState power_state; - - bool UpdatePowerInfo(); - -public: - PowerBB10(); - virtual ~PowerBB10(); - - PowerState get_power_state(); - int get_power_seconds_left(); - int get_power_percent_left(); -}; - -#endif /* PLATFORM_BB10_POWER_BB10_H_ */