int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, #ifdef _WIN32_WCE gcc_unused LPWSTR lpCmdLine, #else gcc_unused LPSTR lpCmdLine2, #endif int nCmdShow) #endif { #ifdef WIN32 ResourceLoader::Init(hInstance); #endif Net::Initialise(); InitialiseDataPath(); StartupLogFreeRamAndStorage(); // Write startup note + version to logfile LogStartUp(_T("Starting XCSoar %s"), XCSoar_ProductToken); // Read options from the command line #ifndef WIN32 CommandLine::Parse(Args(argc, argv, Usage)); #else CommandLine::Parse(Args(GetCommandLine(), Usage)); #endif ScreenGlobalInit screen_init; // Write initialization note to logfile LogStartUp(_T("Initialise application instance")); #ifdef WIN32 /* try to make the UI most responsive */ SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); #endif // Register window classes #ifdef USE_GDI MainWindow::register_class(hInstance); #endif AllowLanguage(); InitialiseIOThread(); // Perform application initialization and run loop int ret = EXIT_FAILURE; if (XCSoarInterface::Startup()) ret = CommonInterface::main_window.RunEventLoop(); CommonInterface::main_window.reset(); DeinitialiseIOThread(); DisallowLanguage(); Fonts::Deinitialize(); DeinitialiseDataPath(); Net::Deinitialise(); assert(!ExistsAnyThread()); return ret; }
gcc_visibility_default JNIEXPORT jboolean JNICALL Java_org_xcsoar_NativeView_initializeNative(JNIEnv *env, jobject obj, jobject _context, jint width, jint height, jint xdpi, jint ydpi, jint sdk_version, jstring product) { InitThreadDebug(); InitialiseIOThread(); Java::Init(env); Java::File::Initialise(env); Java::InputStream::Initialise(env); Java::URL::Initialise(env); Java::URLConnection::Initialise(env); Environment::Initialise(env); InternalSensors::Initialise(env); NativeInputListener::Initialise(env); PortBridge::Initialise(env); BluetoothHelper::Initialise(env); #ifdef IOIOLIB IOIOHelper::Initialise(env); NativeBMP085Listener::Initialise(env); BMP085Device::Initialise(env); NativeI2CbaroListener::Initialise(env); I2CbaroDevice::Initialise(env); NativeNunchuckListener::Initialise(env); NunchuckDevice::Initialise(env); NativeVoltageListener::Initialise(env); VoltageDevice::Initialise(env); #endif context = new Context(env, _context); InitialiseDataPath(); LogFormat(_T("Starting XCSoar %s"), XCSoar_ProductToken); OpenGL::Initialise(); TextUtil::Initialise(env); assert(native_view == NULL); native_view = new NativeView(env, obj, width, height, xdpi, ydpi, sdk_version, product); event_queue = new EventQueue(); SoundUtil::Initialise(env); Vibrator::Initialise(env); vibrator = Vibrator::Create(env, *context); #ifdef IOIOLIB ioio_helper = new IOIOHelper(env); #endif ScreenInitialized(); AllowLanguage(); return Startup(); }
gcc_visibility_default JNIEXPORT jboolean JNICALL Java_org_xcsoar_NativeView_initializeNative(JNIEnv *env, jobject obj, jobject _context, jint width, jint height, jint xdpi, jint ydpi, jint sdk_version, jstring product) { android_api_level = sdk_version; InitThreadDebug(); InitialiseIOThread(); Java::Init(env); Java::Object::Initialise(env); Java::File::Initialise(env); Java::InputStream::Initialise(env); Java::URL::Initialise(env); Java::URLConnection::Initialise(env); NativeView::Initialise(env); Environment::Initialise(env); AndroidBitmap::Initialise(env); InternalSensors::Initialise(env); NativePortListener::Initialise(env); NativeInputListener::Initialise(env); PortBridge::Initialise(env); BluetoothHelper::Initialise(env); NativeLeScanCallback::Initialise(env); IOIOHelper::Initialise(env); NativeBMP085Listener::Initialise(env); BMP085Device::Initialise(env); NativeI2CbaroListener::Initialise(env); I2CbaroDevice::Initialise(env); NativeNunchuckListener::Initialise(env); NunchuckDevice::Initialise(env); NativeVoltageListener::Initialise(env); VoltageDevice::Initialise(env); context = new Context(env, _context); InitialiseDataPath(); LogFormat(_T("Starting XCSoar %s"), XCSoar_ProductToken); OpenGL::Initialise(); TextUtil::Initialise(env); assert(native_view == nullptr); native_view = new NativeView(env, obj, width, height, xdpi, ydpi, product); #ifdef __arm__ is_nook = StringIsEqual(native_view->GetProduct(), "NOOK"); #endif event_queue = new EventQueue(); SoundUtil::Initialise(env); Vibrator::Initialise(env); vibrator = Vibrator::Create(env, *context); ioio_helper = new IOIOHelper(env); #ifdef __arm__ if (IsNookSimpleTouch()) { is_dithered = Nook::EnterFastMode(); /* enable USB host mode if this is a Nook */ Nook::InitUsb(); } #endif ScreenInitialized(); AllowLanguage(); InitLanguage(); return Startup(); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, #ifdef _WIN32_WCE gcc_unused LPWSTR lpCmdLine, #else gcc_unused LPSTR lpCmdLine2, #endif int nCmdShow) #endif { #ifdef WIN32 ResourceLoader::Init(hInstance); #endif Net::Initialise(); InitialiseDataPath(); StartupLogFreeRamAndStorage(); // Write startup note + version to logfile LogFormat(_T("Starting XCSoar %s"), XCSoar_ProductToken); // Read options from the command line { #ifdef WIN32 Args args(GetCommandLine(), Usage); #else Args args(argc, argv, Usage); #endif CommandLine::Parse(args); } ScreenGlobalInit screen_init; #ifdef WIN32 /* try to make the UI most responsive */ SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); #endif AllowLanguage(); InitialiseIOThread(); // Perform application initialization and run loop int ret = EXIT_FAILURE; if (Startup()) ret = CommonInterface::main_window->RunEventLoop(); if (CommonInterface::main_window != nullptr) { CommonInterface::main_window->Destroy(); delete CommonInterface::main_window; } DeinitialiseIOThread(); DisallowLanguage(); Fonts::Deinitialize(); DeinitialiseDataPath(); Net::Deinitialise(); assert(!ExistsAnyThread()); return ret; }