static wxString MacGetPathToBinary(const wxString& program) { #if !wxCHECK_VERSION(2,9,0) #define wxCFStringRef wxMacCFStringHolder #endif wxCFStringRef programstr(program); CFBundleRef bundle = CFBundleGetMainBundle(); CFURLRef urlRel = CFBundleCopyAuxiliaryExecutableURL(bundle, programstr); if ( urlRel == NULL ) { wxLogTrace(_T("poedit.execute"), _T("failed to locate '%s'"), program.c_str()); return program; } CFURLRef urlAbs = CFURLCopyAbsoluteURL(urlRel); wxCFStringRef path(CFURLCopyFileSystemPath(urlAbs, kCFURLPOSIXPathStyle)); CFRelease(urlRel); CFRelease(urlAbs); wxString full = path.AsString(wxLocale::GetSystemEncoding()); wxLogTrace(_T("poedit.execute"), _T("using '%s'"), full.c_str()); return wxString::Format(_T("\"%s\""), full.c_str()); }
bool CamuleGuiApp::OnInit() { amuledlg = NULL; if ( !CamuleApp::OnInit() ) { return false; } // Create the Core timer core_timer = new CTimer(this,ID_CORE_TIMER_EVENT); if (!core_timer) { AddLogLineCS(_("Fatal Error: Failed to create Core Timer")); OnExit(); } // Start the Core and Gui timers // Note: wxTimer can be off by more than 10% !!! // In addition to the systematic error introduced by wxTimer, we are losing // timer cycles due to high CPU load. I've observed about 0.5% random loss of cycles under // low load, and more than 6% lost cycles with heavy download traffic and/or other tasks // in the system, such as a video player or a VMware virtual machine. // The upload queue process loop has now been rewritten to compensate for timer errors. // When adding functionality, assume that the timer is only approximately correct; // for measurements, always use the system clock [::GetTickCount()]. core_timer->Start(CORE_TIMER_PERIOD); amuledlg->StartGuiTimer(); #ifdef __WXMAC__ // This tells the OS to notice the ed2kHelperScript.app inside aMule.app. // ed2kHelperScript.app describes itself (Info.plist) as handling ed2k URLs. // So, from then on the OS will know to pass ed2k URLs to the helper app. CFURLRef ed2kHelperUrl = CFBundleCopyAuxiliaryExecutableURL( CFBundleGetMainBundle(), CFSTR("ed2kHelperScript.app")); if (ed2kHelperUrl) { LSRegisterURL(ed2kHelperUrl, true); CFRelease(ed2kHelperUrl); } #endif return true; }