void OnLookup(WndButton* pWnd) { StartHourglassCursor(); CBtHandler * pBtHandler = CBtHandler::Get(); if (pBtHandler && pBtHandler->StartHW() && pBtHandler->LookupDevices()) { WndListFrame* BthList = (WndListFrame*) wfBth->FindByName(TEXT("frmBthList")); if (BthList) { BthList->ResetList(); BthList->Redraw(); } } StopHourglassCursor(); }
void XCSoarInterface::Shutdown(void) { CreateProgressDialog(gettext(TEXT("Shutdown, please wait..."))); StartHourglassCursor(); StartupStore(TEXT("Entering shutdown...\n")); StartupLogFreeRamAndStorage(); // turn off all displays globalRunningEvent.reset(); StartupStore(TEXT("dlgAirspaceWarningDeInit\n")); dlgAirspaceWarningDeInit(); CreateProgressDialog(gettext(TEXT("Shutdown, saving logs..."))); // stop logger logger.guiStopLogger(Basic(),true); CreateProgressDialog(gettext(TEXT("Shutdown, saving profile..."))); // Save settings Profile::StoreRegistry(); // Stop sound StartupStore(TEXT("SaveSoundSettings\n")); Profile::SaveSoundSettings(); #ifndef DISABLEAUDIOVARIO // VarioSound_EnableSound(false); // VarioSound_Close(); #endif // Stop drawing CreateProgressDialog(gettext(TEXT("Shutdown, please wait..."))); StartupStore(TEXT("CloseDrawingThread\n")); closeTriggerEvent.trigger(); calculation_thread->join(); StartupStore(TEXT("- calculation thread returned\n")); instrument_thread->join(); StartupStore(TEXT("- instrument thread returned\n")); draw_thread->join(); StartupStore(TEXT("- draw thread returned\n")); delete draw_thread; // Clear data CreateProgressDialog(gettext(TEXT("Shutdown, saving task..."))); StartupStore(TEXT("Resume abort task\n")); task.ResumeAbortTask(SettingsComputer(), -1); // turn off abort if it was on. StartupStore(TEXT("Save default task\n")); task.SaveDefaultTask(); StartupStore(TEXT("Clear task data\n")); task.ClearTask(); StartupStore(TEXT("Close airspace\n")); CloseAirspace(); StartupStore(TEXT("Close waypoints\n")); way_points.clear(); CreateProgressDialog(gettext(TEXT("Shutdown, please wait..."))); StartupStore(TEXT("CloseTerrainTopology\n")); RASP.Close(); terrain.CloseTerrain(); delete topology; delete marks; devShutdown(); SaveCalculationsPersist(Basic(),Calculated()); #if (EXPERIMENTAL > 0) // CalibrationSave(); #endif #if defined(GNAV) && !defined(PCGNAV) StartupStore(TEXT("Altair shutdown\n")); Sleep(2500); StopHourglassCursor(); InputEvents::eventDLLExecute(TEXT("altairplatform.dll SetShutdown 1")); while(1) { Sleep(100); // free time up for processor to perform shutdown } #endif CloseFLARMDetails(); // Kill windows StartupStore(TEXT("Destroy Info Boxes\n")); InfoBoxManager::Destroy(); StartupStore(TEXT("Destroy Button Labels\n")); ButtonLabel::Destroy(); StartupStore(TEXT("Delete Objects\n")); // Kill graphics objects DeleteFonts(); DeleteAirspace(); StartupStore(TEXT("Close Progress Dialog\n")); CloseProgressDialog(); CloseGeoid(); StartupStore(TEXT("Close Windows - main \n")); main_window.reset(); StartupStore(TEXT("Close Graphics\n")); MapGfx.Destroy(); #ifdef DEBUG_TRANSLATIONS StartupStore(TEXT("Writing missing translations\n")); WriteMissingTranslations(); #endif StartupLogFreeRamAndStorage(); StartupStore(TEXT("Finished shutdown\n")); StopHourglassCursor(); }
void OnSend(WndButton* pWnd) { if(ItemIndex < FileList.size()) { StartHourglassCursor(); //Start Bluetooth if needed... #ifdef UNDER_CE CObexPush Obex; if(Obex.Startup()) { StartupStore(_T("Startup OK \n")); size_t nDevice = Obex.LookupDevice(); StartupStore(_T("LookupDevice OK \n")); if(nDevice == 0) { StopHourglassCursor(); MessageBoxX(_T("No Device"), _T("Error"), mbOk); StartHourglassCursor(); } else { WndProperty* wp = (WndProperty*)wfDlg->FindByName(TEXT("prpDeviceList")); DataFieldEnum* dfe = NULL; if (wp) { dfe = (DataFieldEnum*)wp->GetDataField(); } if(dfe) { dfe->Clear(); dfe->addEnumText(_T("none")); } for(size_t i = 0; i < nDevice; ++i) { TCHAR szDeviceName[100] = {0}; if(!Obex.GetDeviceName(i, szDeviceName, array_size(szDeviceName))) { _stprintf(szDeviceName, _T("Unknown device <%d>"), i); } StartupStore(_T("GetDeviceName <%d><%s> \n"), i, szDeviceName); if(dfe) { dfe->addEnumText(szDeviceName); } } if(wp) { if(dfe) { dfe->SetAsInteger(0); } wp->SetReadOnly(false); wp->RefreshDisplay(); } StopHourglassCursor(); size_t DeviceIndex = 0; if(dfe && wp) { dlgComboPicker(wp); DeviceIndex = dfe->GetAsInteger(); } StartHourglassCursor(); if(DeviceIndex != 0) { DeviceIndex--; TCHAR szFileFullPath[MAX_PATH] = _T("\0"); LocalPath(szFileFullPath, _T(LKD_LOGS)); size_t nLen = _tcslen(szFileFullPath); if (szFileFullPath[nLen - 1] != _T('\\')) { _tcscat(szFileFullPath, _T("\\")); } FileList_t::const_iterator ItFileName = FileList.begin(); std::advance(ItFileName, ItemIndex); _tcscat(szFileFullPath, ItFileName->c_str()); if(!Obex.SendFile(DeviceIndex, szFileFullPath)) { StopHourglassCursor(); MessageBoxX(_T("Send Failed"), _T("Error"), mbOk); StartHourglassCursor(); } else { StopHourglassCursor(); MessageBoxX(_T("File sent!"), _T("Success"), mbOk); StartHourglassCursor(); } } } Obex.Shutdown(); } else { MessageBoxX(_T("Unsupported on this device"), _T("Error"), mbOk); } #else MessageBoxX(_T("Unsupported on this device"), _T("Error"), mbOk); #endif StopHourglassCursor(); } }