这篇教程C++ CFBundleCreate函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CFBundleCreate函数的典型用法代码示例。如果您正苦于以下问题:C++ CFBundleCreate函数的具体用法?C++ CFBundleCreate怎么用?C++ CFBundleCreate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CFBundleCreate函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: QObjectNotificator::Notificator(const QString &programName, QSystemTrayIcon *trayicon, QWidget *parent): QObject(parent), parent(parent), programName(programName), mode(None), trayIcon(trayicon)#ifdef USE_DBUS ,interface(0)#endif{ if(trayicon && trayicon->supportsMessages()) { mode = QSystemTray; }#ifdef USE_DBUS interface = new QDBusInterface("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications"); if(interface->isValid()) { mode = Freedesktop; }#endif#ifdef Q_OS_MAC // check if users OS has support for NSUserNotification if( MacNotificationHandler::instance()->hasUserNotificationCenterSupport()) { mode = UserNotificationCenter; } else { // Check if Growl is installed (based on Qt's tray icon implementation) CFURLRef cfurl; OSStatus status = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFSTR("growlTicket"), kLSRolesAll, 0, &cfurl); if (status != kLSApplicationNotFoundErr) { CFBundleRef bundle = CFBundleCreate(0, cfurl); if (CFStringCompare(CFBundleGetIdentifier(bundle), CFSTR("com.Growl.GrowlHelperApp"), kCFCompareCaseInsensitive | kCFCompareBackwards) == kCFCompareEqualTo) { if (CFStringHasSuffix(CFURLGetString(cfurl), CFSTR("/Growl.app/"))) mode = Growl13; else mode = Growl12; } CFRelease(cfurl); CFRelease(bundle); } }#endif}
开发者ID:lightsplasher,项目名称:Truckcoin,代码行数:45,
示例2: InitDeckLinkAPI_v7_6void InitDeckLinkAPI_v7_6 (void){ CFURLRef bundleURL; bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); if (bundleURL != NULL) { gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); if (gBundleRef != NULL) { gCreateIteratorFunc = (CreateIteratorFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateDeckLinkIteratorInstance")); gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper")); gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateCocoaScreenPreview")); gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateVideoConversionInstance")); } CFRelease(bundleURL); }}
开发者ID:AmesianX,项目名称:obs-studio,代码行数:18,
示例3: get_bundlestatic CFBundleRefget_bundle(void){ static CFBundleRef bundle = NULL; CFURLRef url; if (bundle != NULL) { return (bundle); } url = CFURLCreateWithFileSystemPath(NULL, CFSTR(kEAPOLControllerPath), kCFURLPOSIXPathStyle, FALSE); if (url != NULL) { bundle = CFBundleCreate(NULL, url); CFRelease(url); } return (bundle);}
开发者ID:carriercomm,项目名称:osx-2,代码行数:18,
示例4: gfx_ctx_cgl_get_proc_addressstatic gfx_ctx_proc_t gfx_ctx_cgl_get_proc_address(const char *symbol_name){ CFURLRef bundle_url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR ("/System/Library/Frameworks/OpenGL.framework"), kCFURLPOSIXPathStyle, true); CFBundleRef opengl_bundle_ref = CFBundleCreate(kCFAllocatorDefault, bundle_url); CFStringRef function = CFStringCreateWithCString(kCFAllocatorDefault, symbol_name, kCFStringEncodingASCII); gfx_ctx_proc_t ret = (gfx_ctx_proc_t)CFBundleGetFunctionPointerForName( opengl_bundle_ref, function); CFRelease(bundle_url); CFRelease(function); CFRelease(opengl_bundle_ref); return ret;}
开发者ID:Sotsukun,项目名称:RetroArch,代码行数:18,
示例5: CFStringCreateWithCStringint Vst::loadPlugin(std::string pathOnDisk){ int error = 0; plugin = nullptr; CFStringRef pluginPathReference = CFStringCreateWithCString(nullptr, pathOnDisk.c_str(), kCFStringEncodingASCII); CFURLRef bundleUrl = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, pluginPathReference, kCFURLPOSIXPathStyle, true); if(bundleUrl == nullptr) { std::cout<<"Could't find reference to VST URL. It might not exist, or the path is wrong."<<std::endl; return -1; } CFBundleRef bundle = CFBundleCreate(kCFAllocatorDefault, bundleUrl); if(bundle == nullptr) { std::cout<<"Couldn't create VST Bundle reference. It might not be a VST, or corrupted"<<std::endl; CFRelease(bundleUrl); CFRelease(bundle); return -1; } VSTPlugin = (vstPluginFuncPtr)CFBundleGetFunctionPointerForName(bundle, CFSTR("VSTPluginMain")); plugin = VSTPlugin(hostCallback); if(plugin == nullptr) { std::cout<<"Couldn't create VST Main Entry Point"<<std::endl; CFBundleUnloadExecutable(bundle); CFRelease(bundle); return -1; } CFRelease(pluginPathReference); CFRelease(bundleUrl); error = configureCallbacks(); error = startPlugin(); return error;}
开发者ID:DannyvanSwieten,项目名称:APAudioFramework,代码行数:44,
示例6: fprintfbool InjectedBundle::load(APIObject* initializationUserData){ if (m_sandboxExtension) { if (!m_sandboxExtension->consume()) { fprintf(stderr, "InjectedBundle::load failed - Could not consume bundle sandbox extension for [%s]./n", m_path.utf8().data()); return false; } m_sandboxExtension = 0; } RetainPtr<CFStringRef> injectedBundlePathStr(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(m_path.characters()), m_path.length())); if (!injectedBundlePathStr) { fprintf(stderr, "InjectedBundle::load failed - Could not create the path string./n"); return false; } RetainPtr<CFURLRef> bundleURL(AdoptCF, CFURLCreateWithFileSystemPath(0, injectedBundlePathStr.get(), kCFURLPOSIXPathStyle, false)); if (!bundleURL) { fprintf(stderr, "InjectedBundle::load failed - Could not create the url from the path string./n"); return false; } m_platformBundle = CFBundleCreate(0, bundleURL.get()); if (!m_platformBundle) { fprintf(stderr, "InjectedBundle::load failed - Could not create the bundle./n"); return false; } if (!CFBundleLoadExecutable(m_platformBundle)) { fprintf(stderr, "InjectedBundle::load failed - Could not load the executable from the bundle./n"); return false; } WKBundleInitializeFunctionPtr initializeFunction = reinterpret_cast<WKBundleInitializeFunctionPtr>(CFBundleGetFunctionPointerForName(m_platformBundle, CFSTR("WKBundleInitialize"))); if (!initializeFunction) { fprintf(stderr, "InjectedBundle::load failed - Could not find the initialize function in the bundle executable./n"); return false; } initializeFunction(toAPI(this), toAPI(initializationUserData)); return true;}
开发者ID:sysrqb,项目名称:chromium-src,代码行数:43,
示例7: init void init() { CFBundleRef mainBundle = CFBundleGetMainBundle(); if (mainBundle) { CFStringRef resourceName = CFStringCreateWithCString(NULL, kFayeCppBundleName ,kCFStringEncodingUTF8); if (resourceName) { CFURLRef url = CFBundleCopyResourceURL(mainBundle, resourceName, CFSTR("bundle"), NULL); CFRelease(resourceName); if (url) { _localizedBundle = CFBundleCreate(NULL, url); CFRelease(url); } } _localizedTableName = CFStringCreateWithCString(NULL, kFayeCppBundleLocalizationTableName ,kCFStringEncodingUTF8); } }
开发者ID:TheNotary,项目名称:FayeCpp,代码行数:19,
示例8: createWebKitBundlestatic CFBundleRef createWebKitBundle(){ if (CFBundleRef existingBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebKit"))) { CFRetain(existingBundle); return existingBundle; } wchar_t dllPathBuffer[MAX_PATH]; DWORD length = ::GetModuleFileNameW(instanceHandle(), dllPathBuffer, WTF_ARRAY_LENGTH(dllPathBuffer)); ASSERT(length); ASSERT(length < WTF_ARRAY_LENGTH(dllPathBuffer)); RetainPtr<CFStringRef> dllPath(AdoptCF, CFStringCreateWithCharactersNoCopy(0, reinterpret_cast<const UniChar*>(dllPathBuffer), length, kCFAllocatorNull)); RetainPtr<CFURLRef> dllURL(AdoptCF, CFURLCreateWithFileSystemPath(0, dllPath.get(), kCFURLWindowsPathStyle, false)); RetainPtr<CFURLRef> dllDirectoryURL(AdoptCF, CFURLCreateCopyDeletingLastPathComponent(0, dllURL.get())); RetainPtr<CFURLRef> resourcesDirectoryURL(AdoptCF, CFURLCreateCopyAppendingPathComponent(0, dllDirectoryURL.get(), CFSTR("WebKit.resources"), true)); return CFBundleCreate(0, resourcesDirectoryURL.get());}
开发者ID:sysrqb,项目名称:chromium-src,代码行数:19,
示例9: loadLibrary bool loadLibrary (const char* fileName) { #if _WIN32 module = LoadLibrary (fileName); #elif TARGET_API_MAC_CARBON CFStringRef fileNameString = CFStringCreateWithCString (NULL, fileName, kCFStringEncodingUTF8); if (fileNameString == 0) return false; CFURLRef url = CFURLCreateWithFileSystemPath (NULL, fileNameString, kCFURLPOSIXPathStyle, false); CFRelease (fileNameString); if (url == 0) return false; module = CFBundleCreate (NULL, url); CFRelease (url); if (module && CFBundleLoadExecutable ((CFBundleRef)module) == false) return false; #endif return module != 0; }
开发者ID:oliviermohsen,项目名称:eiosisTest,代码行数:19,
示例10: _glitz_agl_get_bundlestatic CFBundleRef_glitz_agl_get_bundle (const char *name){ CFBundleRef bundle = 0; FSRefParam ref_param; char framework_name[256]; framework_name[0] = strlen (name); strcpy (&framework_name[1], name); memset (&ref_param, 0, sizeof (ref_param)); if (FindFolder (kSystemDomain, kFrameworksFolderType, kDontCreateFolder, &ref_param.ioVRefNum, &ref_param.ioDirID) == noErr) { FSRef ref; memset (&ref, 0, sizeof (ref)); ref_param.ioNamePtr = (unsigned char *) framework_name; ref_param.newRef = &ref; if (PBMakeFSRefSync (&ref_param) == noErr) { CFURLRef url; url = CFURLCreateFromFSRef (kCFAllocatorDefault, &ref); if (url) { bundle = CFBundleCreate (kCFAllocatorDefault, url); CFRelease (url); if (!CFBundleLoadExecutable (bundle)) { CFRelease (bundle); return (CFBundleRef) 0; } } } } return bundle;}
开发者ID:EdgarChen,项目名称:mozilla-cvs-history,代码行数:42,
示例11: _CFErrorPOSIXCallBack/* Built-in callback for POSIX domain. Note that we will pick up localizations from ErrnoErrors.strings in /System/Library/CoreServices/CoreTypes.bundle, if the file happens to be there.*/static CFTypeRef _CFErrorPOSIXCallBack(CFErrorRef err, CFStringRef key) { if (!CFEqual(key, kCFErrorDescriptionKey) && !CFEqual(key, kCFErrorLocalizedFailureReasonKey)) return NULL; const char *errCStr = strerror(CFErrorGetCode(err)); CFStringRef errStr = (errCStr && strlen(errCStr)) ? CFStringCreateWithCString(kCFAllocatorSystemDefault, errCStr, kCFStringEncodingUTF8) : NULL; if (!errStr) return NULL; if (CFEqual(key, kCFErrorDescriptionKey)) return errStr; // If all we wanted was the non-localized description, we're done #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS // We need a kCFErrorLocalizedFailureReasonKey, so look up a possible localization for the error message // Look for the bundle in /System/Library/CoreServices/CoreTypes.bundle CFArrayRef paths = CFCopySearchPathForDirectoriesInDomains(kCFLibraryDirectory, kCFSystemDomainMask, false); if (paths) { if (CFArrayGetCount(paths) > 0) { CFStringRef path = CFStringCreateWithFormat(kCFAllocatorSystemDefault, NULL, CFSTR("%@/CoreServices/CoreTypes.bundle"), CFArrayGetValueAtIndex(paths, 0)); CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorSystemDefault, path, kCFURLPOSIXPathStyle, false /* not a directory */); if (url) { CFBundleRef bundle = CFBundleCreate(kCFAllocatorSystemDefault, url); if (bundle) { // We only want to return a result if there was a localization CFStringRef localizedErrStr = CFBundleCopyLocalizedString(bundle, errStr, errStr, CFSTR("ErrnoErrors")); if (localizedErrStr == errStr) { CFRelease(localizedErrStr); CFRelease(errStr); errStr = NULL; } else { CFRelease(errStr); errStr = localizedErrStr; } CFRelease(bundle); } CFRelease(url); } CFRelease(path); } CFRelease(paths); }#endif return errStr;}
开发者ID:cooljeanius,项目名称:opencflite-code,代码行数:44,
示例12: getIconFromApplicationImage JUCE_API getIconFromApplication (const String& applicationPath, const int size){ Image hostIcon; if (CFStringRef pathCFString = CFStringCreateWithCString (kCFAllocatorDefault, applicationPath.toRawUTF8(), kCFStringEncodingUTF8)) { if (CFURLRef url = CFURLCreateWithFileSystemPath (kCFAllocatorDefault, pathCFString, kCFURLPOSIXPathStyle, 1)) { if (CFBundleRef appBundle = CFBundleCreate (kCFAllocatorDefault, url)) { if (CFTypeRef infoValue = CFBundleGetValueForInfoDictionaryKey (appBundle, CFSTR("CFBundleIconFile"))) { if (CFGetTypeID (infoValue) == CFStringGetTypeID()) { CFStringRef iconFilename = reinterpret_cast<CFStringRef> (infoValue); CFStringRef resourceURLSuffix = CFStringHasSuffix (iconFilename, CFSTR(".icns")) ? nullptr : CFSTR("icns"); if (CFURLRef iconURL = CFBundleCopyResourceURL (appBundle, iconFilename, resourceURLSuffix, nullptr)) { if (CFStringRef iconPath = CFURLCopyFileSystemPath (iconURL, kCFURLPOSIXPathStyle)) { File icnsFile (CFStringGetCStringPtr (iconPath, CFStringGetSystemEncoding())); hostIcon = getIconFromIcnsFile (icnsFile, size); CFRelease (iconPath); } CFRelease (iconURL); } } } CFRelease (appBundle); } CFRelease (url); } CFRelease (pathCFString); } return hostIcon;}
开发者ID:KennyWZhang,项目名称:RenderMan,代码行数:41,
示例13: InitDeckLinkAPIvoid InitDeckLinkAPI (void){ CFURLRef bundleURL; bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); if (bundleURL != NULL) { gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); if (gDeckLinkAPIBundleRef != NULL) { gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0003")); gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkDiscoveryInstance_0002")); gCreateVideoFrameAncillaryPacketsFunc = (CreateVideoFrameAncillaryPacketsInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoFrameAncillaryPacketsInstance_0001")); } CFRelease(bundleURL); }}
开发者ID:Dead133,项目名称:obs-studio,代码行数:21,
示例14: InitializeIOstatic void InitializeIO(){ if (sfwRefCount++) { return; } // race condition, infinitesimal risk FSRef theRef; if (FSFindFolder(kOnAppropriateDisk, kFrameworksFolderType, false, &theRef) == noErr) { CFURLRef fw = CFURLCreateFromFSRef(kCFAllocatorSystemDefault, &theRef); if (fw) { CFURLRef bd = CFURLCreateCopyAppendingPathComponent (kCFAllocatorSystemDefault, fw, CFSTR("System.framework"), false); CFRelease(fw); if (bd) { systemFramework = CFBundleCreate(kCFAllocatorSystemDefault, bd); CFRelease(bd); } } if (!systemFramework || !CFBundleLoadExecutable(systemFramework)) { return; }#define F(x) CFBundleGetFunctionPointerForName(systemFramework, CFSTR(#x)) my_fopen = (FILE * (*)(const char *, const char *))F(fopen); my_fclose = (int(*)(FILE *))F(fclose); my_ftell = (long(*)(FILE *))F(ftell); my_fseek = (int(*)(FILE *, long, int))F(fseek); my_fread = (t4_u32(*)(void *ptr, t4_u32, t4_u32, FILE *))F(fread); my_fwrite = (t4_u32(*)(const void *ptr, t4_u32, t4_u32, FILE *))F(fwrite); my_ferror = (int(*)(FILE *))F(ferror); my_fflush = (int(*)(FILE *))F(fflush); my_fileno = (int(*)(FILE *))F(fileno); my_mmap = (char *(*)(char *, t4_u32, int, int, int, long long))F(mmap); my_munmap = (int(*)(char *, t4_u32))F(munmap);#undef F d4_assert(my_fopen && my_fclose && my_ftell && my_fseek && my_fread && my_fwrite && my_ferror && my_fflush && my_fileno && my_mmap && my_munmap); }}
开发者ID:KDE,项目名称:kdepim,代码行数:40,
示例15: CreateVSTGUIBundleRef//------------------------------------------------------------------------void CreateVSTGUIBundleRef (){ openCount++; if (gBundleRef) { CFRetain (gBundleRef); return; }#if TARGET_OS_IPHONE gBundleRef = CFBundleGetMainBundle (); CFRetain (gBundleRef);#else Dl_info info; if (dladdr ((const void*)CreateVSTGUIBundleRef, &info)) { if (info.dli_fname) { Steinberg::String name; name.assign (info.dli_fname); for (int i = 0; i < 3; i++) { int delPos = name.findLast ('/'); if (delPos == -1) { fprintf (stdout, "Could not determine bundle location./n"); return; // unexpected } name.remove (delPos, name.length () - delPos); } CFURLRef bundleUrl = CFURLCreateFromFileSystemRepresentation (0, (const UInt8*)name.text8 (), name.length (), true); if (bundleUrl) { gBundleRef = CFBundleCreate (0, bundleUrl); CFRelease (bundleUrl); } } }#endif}
开发者ID:KennyWZhang,项目名称:RenderMan,代码行数:40,
示例16: definedvoid *platGetProcAddress( const char *funcName ){#if defined( PLATFORM_WIN ) return (void *)wglGetProcAddress( funcName );#elif defined( PLATFORM_WIN_CE ) return (void *)eglGetProcAddress( funcName );#elif defined( PLATFORM_MAC ) CFStringRef functionName = CFStringCreateWithCString( kCFAllocatorDefault, funcName, kCFStringEncodingASCII ); CFURLRef bundleURL = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, CFSTR( "/System/Library/Frameworks/OpenGL.framework" ), kCFURLPOSIXPathStyle, true ); CFBundleRef bundle = CFBundleCreate( kCFAllocatorDefault, bundleURL ); void *function = CFBundleGetFunctionPointerForName( bundle, functionName ); CFRelease( bundle ); CFRelease( bundleURL ); CFRelease( functionName ); return function; #else return (void *)glXGetProcAddressARB( (const GLubyte *)funcName );#endif}
开发者ID:CalebVDW,项目名称:smr-motion,代码行数:23,
示例17: getLibraryHandleForPluginLibraryHandle getLibraryHandleForPlugin(const CharString pluginAbsolutePath) { // Create a path to the bundle CFStringRef pluginPathStringRef = CFStringCreateWithCString(NULL, pluginAbsolutePath->data, kCFStringEncodingASCII); CFURLRef bundleUrl = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, pluginPathStringRef, kCFURLPOSIXPathStyle, true); if(bundleUrl == NULL) { logError("Couldn't make URL reference for plugin"); return NULL; } // Open the bundle CFBundleRef bundleRef = CFBundleCreate(kCFAllocatorDefault, bundleUrl); if(bundleRef == NULL) { logError("Couldn't create bundle reference"); CFRelease(pluginPathStringRef); CFRelease(bundleUrl); return NULL; } // Clean up CFRelease(pluginPathStringRef); CFRelease(bundleUrl); return bundleRef;}
开发者ID:denisfitz57,项目名称:MrsWatson,代码行数:24,
示例18: __msl_CreateFrameworkBundleFromName static OSErr __msl_CreateFrameworkBundleFromName(CFStringRef theFrameworkName, CFBundleRef *theBundle) { OSErr theErr; FSRef theRef; CFURLRef theFrameworkURL; CFURLRef theBundleURL; /* Find the folder containing all the frameworks */ theErr = FSFindFolder(kOnAppropriateDisk, kFrameworksFolderType, false, &theRef); if (theErr == noErr) { /* Turn the framework folder FSRef into a CFURL */ theFrameworkURL = CFURLCreateFromFSRef(kCFAllocatorSystemDefault, &theRef); if (theFrameworkURL != NULL) { /* Create a CFURL pointing to the desired framework */ theBundleURL = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, theFrameworkURL, theFrameworkName, false); CFRelease(theFrameworkURL); if (theBundleURL != NULL) { /* Turn the CFURL into a bundle reference */ *theBundle = CFBundleCreate(kCFAllocatorSystemDefault, theBundleURL); CFRelease(theBundleURL); } } } return theErr; }
开发者ID:hackshields,项目名称:antivirus,代码行数:36,
示例19: load int load(std::string name) { int rval = -1; vstPluginMain pluginMain = NULL; CFStringRef path = NULL; CFURLRef urlRef = NULL; CFURLRef exeRef = NULL; Boolean success; // Start clean m_bundle = NULL; // Don't really know what this should be initialize to m_resource = -1; // Convert the path to a CFSTring path = CFStringCreateWithCString(NULL, name.c_str(), kCFStringEncodingUTF8); // Convert the path to a URL urlRef = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path, kCFURLPOSIXPathStyle, true); if (urlRef == NULL) goto error; // Create the bundle using the URL m_bundle = CFBundleCreate(kCFAllocatorDefault, urlRef); // Bail if the bundle wasn't created if (m_bundle == NULL) goto error; // Retrieve a reference to the executable exeRef = CFBundleCopyExecutableURL(m_bundle); if (exeRef == NULL) goto error; // Convert back to path UInt8 exePath[PATH_MAX]; if(!CFURLGetFileSystemRepresentation(exeRef, true, exePath, sizeof(exePath))) goto error; // Attempt to open it m_module = dlopen((char *) exePath, RTLD_NOW | RTLD_LOCAL); if (m_module == NULL) goto error; // Try to locate the new plugin entry point pluginMain = (vstPluginMain) dlsym(m_module, "VSTPluginMain"); // If not found, try finding the old entry point if (pluginMain == NULL) { pluginMain = (vstPluginMain) dlsym(m_module, "main_macho"); } // Must not be a VST plugin if (pluginMain == NULL) goto error; // Open the resource map ... some plugins (like GRM Tools) need this. m_resource = CFBundleOpenBundleResourceMap(m_bundle); // Initialize the plugin m_effect = pluginMain(audioMaster); // Was it successful? if(!m_effect) goto error; m_effect->user = this; // callDispatcher(effOpen, 0, 0, NULL, 0.0); // Ensure that it looks like a plugin and can deal with ProcessReplacing // calls. Also exclude synths for now. if(m_effect->magic == kEffectMagic && !(m_effect->flags & effFlagsIsSynth) && m_effect->flags & effFlagsCanReplacing) { // mVendor = GetString(effGetVendorString); // mName = GetString(effGetEffectName); // mInputs = mAEffect->numInputs; // mOutputs = mAEffect->numOutputs; // We could even go so far as to run a small test here. rval = 0; goto cleanup; } else { goto error; } error: if(m_effect) { callDispatcher(effClose, 0, 0, NULL, 0.0); m_effect = NULL; } if(m_resource != -1) { CFBundleCloseBundleResourceMap(m_bundle, m_resource); m_resource = -1; } if(m_module) { dlclose(m_module); m_module = NULL; } if(m_bundle) { CFRelease(m_bundle); m_bundle = NULL; } if(pluginMain) { pluginMain = NULL; } cleanup: if(exeRef) { CFRelease(exeRef); exeRef = NULL; }//.........这里部分代码省略.........
开发者ID:Kassen,项目名称:chugins,代码行数:101,
示例20: open bool open(std::string name, const t_canvas*canvas) { bool loud=false; const char*hookname="plugMain"; if(name.empty()) return false; if(m_plugin) close(); FF_Main_FuncPtr plugmain = NULL; char buf[MAXPDSTRING]; char buf2[MAXPDSTRING]; char *bufptr=NULL; const char *extension=#ifdef _WIN32 ".dll";#elif defined __APPLE__ "";#else ".so";#endif#ifdef __APPLE__ char buf3[MAXPDSTRING];#ifdef DL_OPEN snprintf(buf3, MAXPDSTRING, "%s.frf/Contents/MacOS/%s", name.c_str(), name.c_str());#else // this can never work... snprintf(buf3, MAXPDSTRING, "%s.frf/%s", name.c_str(), name.c_str());#endif buf3[MAXPDSTRING-1]=0; name=buf3;#endif int fd=-1; if ((fd=canvas_open(const_cast<t_canvas*>(canvas), name.c_str(), extension, buf2, &bufptr, MAXPDSTRING, 1))>=0){ ::close(fd);#if defined __APPLE__ && 0 snprintf(buf, MAXPDSTRING, "%s", buf2);#else snprintf(buf, MAXPDSTRING, "%s/%s", buf2, bufptr);#endif buf[MAXPDSTRING-1]=0; } else { if(canvas) { canvas_makefilename(const_cast<t_canvas*>(canvas), const_cast<char*>(name.c_str()), buf, MAXPDSTRING); } else { if(loud)::error("pix_freeframe[%s]: unfindeable", name.c_str()); return false; } } name=buf; std::string libname = name; if(loud)::post("trying to load %s", buf);#ifdef DL_OPEN if(loud)::post("dlopen %s", libname.c_str()); m_dlhandle=dlopen(libname.c_str(), RTLD_NOW); if(!m_dlhandle){ if(loud)::error("pix_freeframe[%s]: %s", libname.c_str(), dlerror()); return NULL; } dlerror(); plugmain = reinterpret_cast<FF_Main_FuncPtr>(dlsym(m_dlhandle, hookname));#elif defined __APPLE__ CFURLRef bundleURL = NULL; CFBundleRef theBundle = NULL; CFStringRef plugin = CFStringCreateWithCString(NULL, libname.c_str(), kCFStringEncodingMacRoman); bundleURL = CFURLCreateWithFileSystemPath( kCFAllocatorSystemDefault, plugin, kCFURLPOSIXPathStyle, true ); theBundle = CFBundleCreate( kCFAllocatorSystemDefault, bundleURL ); // Get a pointer to the function. if (theBundle){ plugmain = reinterpret_cast<FF_Main_FuncPtr>(CFBundleGetFunctionPointerForName( theBundle, CFSTR("plugMain") ) ); }else{ if(loud)::post("%s: couldn't load", libname.c_str()); return 0; } if(bundleURL != NULL) CFRelease( bundleURL ); if(theBundle != NULL) CFRelease( theBundle ); if(plugin != NULL) CFRelease( plugin );#elif defined _WIN32 char buffer[MAXPDSTRING]; sys_bashfilename(libname.c_str(), buffer); libname=buffer; m_w32handle = LoadLibrary(libname.c_str()); if (!m_w32handle) { if(loud)::post("%s: couldn't load", libname.c_str());//.........这里部分代码省略.........
开发者ID:ch-nry,项目名称:Gem,代码行数:101,
示例21: fsEntry//.........这里部分代码省略......... } else { dlFlags |= RTLD_LAZY; } if (loadHints & QLibrary::ExportExternalSymbolsHint) { dlFlags |= RTLD_GLOBAL; }#if !defined(Q_OS_CYGWIN) else {#if defined(Q_OS_MAC) if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_4)#endif dlFlags |= RTLD_LOCAL; }#endif // Provide access to RTLD_NODELETE flag on Unix // From GNU documentation on RTLD_NODELETE: // Do not unload the library during dlclose(). Consequently, the // library's specific static variables are not reinitialized if the // library is reloaded with dlopen() at a later time.#ifdef RTLD_NODELETE if (loadHints & QLibrary::PreventUnloadHint) { dlFlags |= RTLD_NODELETE; }#endif#if defined(Q_OS_AIX) // Not sure if any other platform actually support this thing. if (loadHints & QLibrary::LoadArchiveMemberHint) { dlFlags |= RTLD_MEMBER; }#endif#endif // QT_HPUX_LD // If the filename is an absolute path then we want to try that first as it is most likely // what the callee wants. If we have been given a non-absolute path then lets try the // native library name first to avoid unnecessary calls to dlopen(). if (fsEntry.isAbsolute()) { suffixes.prepend(QString()); prefixes.prepend(QString()); } else { suffixes.append(QString()); prefixes.append(QString()); } bool retry = true; for(int prefix = 0; retry && !pHnd && prefix < prefixes.size(); prefix++) { for(int suffix = 0; retry && !pHnd && suffix < suffixes.size(); suffix++) { if (!prefixes.at(prefix).isEmpty() && name.startsWith(prefixes.at(prefix))) continue; if (!suffixes.at(suffix).isEmpty() && name.endsWith(suffixes.at(suffix))) continue; if (loadHints & QLibrary::LoadArchiveMemberHint) { attempt = name; int lparen = attempt.indexOf(QLatin1Char('(')); if (lparen == -1) lparen = attempt.count(); attempt = path + prefixes.at(prefix) + attempt.insert(lparen, suffixes.at(suffix)); } else { attempt = path + prefixes.at(prefix) + name + suffixes.at(suffix); }#if defined(QT_HPUX_LD) pHnd = (void*)shl_load(QFile::encodeName(attempt), dlFlags, 0);#else pHnd = dlopen(QFile::encodeName(attempt), dlFlags);#endif if (!pHnd && fileName.startsWith(QLatin1Char('/')) && QFile::exists(attempt)) { // We only want to continue if dlopen failed due to that the shared library did not exist. // However, we are only able to apply this check for absolute filenames (since they are // not influenced by the content of LD_LIBRARY_PATH, /etc/ld.so.cache, DT_RPATH etc...) // This is all because dlerror is flawed and cannot tell us the reason why it failed. retry = false; } } }#ifdef Q_OS_MAC if (!pHnd) { QByteArray utf8Bundle = fileName.toUtf8(); QCFType<CFURLRef> bundleUrl = CFURLCreateFromFileSystemRepresentation(NULL, reinterpret_cast<const UInt8*>(utf8Bundle.data()), utf8Bundle.length(), true); QCFType<CFBundleRef> bundle = CFBundleCreate(NULL, bundleUrl); if(bundle) { QCFType<CFURLRef> url = CFBundleCopyExecutableURL(bundle); char executableFile[FILENAME_MAX]; CFURLGetFileSystemRepresentation(url, true, reinterpret_cast<UInt8*>(executableFile), FILENAME_MAX); attempt = QString::fromUtf8(executableFile); pHnd = dlopen(QFile::encodeName(attempt), dlFlags); } }#endif#endif // QT_NO_DYNAMIC_LIBRARY if (!pHnd) { errorString = QLibrary::tr("Cannot load library %1: %2").arg(fileName).arg(qdlerror()); } if (pHnd) { qualifiedFileName = attempt; errorString.clear(); } return (pHnd != 0);}
开发者ID:KDE,项目名称:android-qt5-qtbase,代码行数:101,
示例22: findMestatic CFBundleRef findMe(){ CFURLRef bundleURL; CFBundleRef myBundle; Boolean didLoad = false; // Make a CFURLRef from the CFString representation of the // bundle's path. See the Core Foundation URL Services chapter // for details. bundleURL = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, CFSTR("/System/Library/Extensions/DVFamily.bundle"), kCFURLPOSIXPathStyle, true ); printf("Bundle URL: %p/n", bundleURL); // Make a bundle instance using the URLRef. myBundle = CFBundleCreate( kCFAllocatorDefault, bundleURL ); printf("Bundle: %p/n", myBundle); // Try to load the executable from my bundle. didLoad = CFBundleLoadExecutable( myBundle ); printf("loaded? %d/n", didLoad); sDVFuncs.fDVCountDevices = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVCountDevices") ); sDVFuncs.fDVGetIndDevice = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVGetIndDevice") ); sDVFuncs.fDVSetDeviceName = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVSetDeviceName") ); sDVFuncs.fDVGetDeviceName = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVGetDeviceName") ); sDVFuncs.fDVOpenDriver = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVOpenDriver") ); sDVFuncs.fDVCloseDriver = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVCloseDriver") );// AVC Stuff sDVFuncs.fDVDoAVCTransaction = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVDoAVCTransaction") ); sDVFuncs.fDVIsEnabled = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVIsEnabled") ); sDVFuncs.fDVGetDeviceStandard = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVGetDeviceStandard") );// Isoch I/O sDVFuncs.fDVEnableRead = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVEnableRead") ); sDVFuncs.fDVDisableRead = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVDisableRead") ); sDVFuncs.fDVReadFrame = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVReadFrame") ); sDVFuncs.fDVReleaseFrame = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVReleaseFrame") ); sDVFuncs.fDVEnableWrite = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVEnableWrite") ); sDVFuncs.fDVDisableWrite = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVDisableWrite") ); sDVFuncs.fDVGetEmptyFrame = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVGetEmptyFrame") ); sDVFuncs.fDVWriteFrame = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVWriteFrame") );// Notifications sDVFuncs.fDVNewNotification = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVNewNotification") ); sDVFuncs.fDVNotifyMeWhen = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVNotifyMeWhen") ); sDVFuncs.fDVCancelNotification = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVCancelNotification") ); sDVFuncs.fDVDisposeNotification = CFBundleGetFunctionPointerForName( myBundle, CFSTR("DVDisposeNotification") ); // Any CF objects returned from functions with "create" or // "copy" in their names must be released by us! CFRelease( bundleURL ); return myBundle;}
开发者ID:alfintatorkace,项目名称:osx-10.9-opensource,代码行数:78,
示例23: load_bundle_package mach_error_tload_bundle_package( const char *bundlePackageFileSystemRepresentation ){ printf("LBP/n"); assert( bundlePackageFileSystemRepresentation ); assert( strlen( bundlePackageFileSystemRepresentation ) ); mach_error_t err = err_none; mach_error("mach error on bundle load", err); // Morph the FSR into a URL. CFURLRef bundlePackageURL = NULL; if( !err ) { bundlePackageURL = CFURLCreateFromFileSystemRepresentation( kCFAllocatorDefault, (const UInt8*)bundlePackageFileSystemRepresentation, strlen(bundlePackageFileSystemRepresentation), true ); if( bundlePackageURL == NULL ) err = err_load_bundle_url_from_path; } mach_error("mach error on bundle load", err); // Create bundle. CFBundleRef bundle = NULL; if( !err ) { bundle = CFBundleCreate( kCFAllocatorDefault, bundlePackageURL ); if( bundle == NULL ) err = err_load_bundle_create_bundle; } mach_error("mach error on bundle load", err); // Discover the bundle's executable file. CFURLRef bundleExecutableURL = NULL; if( !err ) { assert( bundle ); bundleExecutableURL = CFBundleCopyExecutableURL( bundle ); if( bundleExecutableURL == NULL ) err = err_load_bundle_package_executable_url; } mach_error("mach error on bundle load", err); // Morph the executable's URL into an FSR. char bundleExecutableFileSystemRepresentation[PATH_MAX]; if( !err ) { assert( bundleExecutableURL ); if( !CFURLGetFileSystemRepresentation( bundleExecutableURL, true, (UInt8*)bundleExecutableFileSystemRepresentation, sizeof(bundleExecutableFileSystemRepresentation) ) ) { err = err_load_bundle_path_from_url; } } mach_error("mach error on bundle load", err); // Do the real work. if( !err ) { assert( strlen(bundleExecutableFileSystemRepresentation) ); err = load_bundle_executable( bundleExecutableFileSystemRepresentation); } // Clean up. if( bundleExecutableURL ) CFRelease( bundleExecutableURL ); /*if( bundle ) CFRelease( bundle );*/ if( bundlePackageURL ) CFRelease( bundlePackageURL ); mach_error("mach error on bundle load", err); return err;}
开发者ID:mutru,项目名称:growl,代码行数:75,
示例24: FLEXT_ASSERT// hdll, pluginmain and audiomaster are set here// must be NULL beforehand!bool VSTPlugin::NewPlugin(const char *plugname){ FLEXT_ASSERT(!pluginmain && !audiomaster); dllname = plugname;#if FLEXT_OS == FLEXT_OS_WIN hdll = LoadLibraryEx(dllname.c_str(),NULL,0 /*DONT_RESOLVE_DLL_REFERENCES*/);/* char buf[255],*c; strcpy(buf,dllname.c_str()); for(c = buf; *c; ++c) if(*c == '/') *c = '//'; char *sl = strrchr(buf,'//'); if(sl) *sl = 0; SetCurrentDirectory(buf); hdll = LoadLibrary(dllname.c_str());*/ if(hdll) pluginmain = (PVSTMAIN)GetProcAddress(hdll,"main"); audiomaster = Master; #elif FLEXT_OS == FLEXT_OS_MAC#if 1 CFStringRef fileNameString = CFStringCreateWithCString(NULL, fileName, kCFStringEncodingUTF8); if(fileNameString == 0) goto bail; CFURLRef url = CFURLCreateWithFileSystemPath(NULL, fileNameString, kCFURLPOSIXPathStyle, false); CFRelease(fileNameString); if(url == 0) goto bail; hdll = CFBundleCreate(NULL, url); CFRelease (url); if(hdll && !CFBundleLoadExecutable(hdll)) goto bail; PVSTMAIN mainaddr = PluginEntryProc)CFBundleGetFunctionPointerForName(hdll, CFSTR("VSTPluginMain")); if(!mainaddr) mainaddr = (PluginEntryProc)CFBundleGetFunctionPointerForName(hdll, CFSTR("main_macho"));#ifdef __CFM__ pluginmain = (PVSTMAIN)NewMachOFromCFM(mainaddr); audiomaster = NewCFMFromMachO(Master);#else pluginmain = (PVSTMAIN)mainaddr; audiomaster = Master;#endif#else short resFileID; FSSpec spec; OSErr err; err = FSPathMakeFSSpec(dllname.c_str(),&spec,NULL); resFileID = FSpOpenResFile(&spec, fsRdPerm); short cResCB = Count1Resources('aEff'); for(int i = 0; i < cResCB; i++) { Handle codeH; CFragConnectionID connID; Ptr mainAddr; Str255 errName; Str255 fragName; char fragNameCStr[256]; short resID; OSType resType; codeH = Get1IndResource('aEff', short(i+1)); if(!codeH) continue; GetResInfo(codeH, &resID, &resType, fragName); DetachResource(codeH); HLock(codeH); err = GetMemFragment(*codeH, GetHandleSize(codeH), fragName, kPrivateCFragCopy, &connID, (Ptr *) & mainAddr, errName); if(!err) { #ifdef __CFM__ pluginmain = (PVSTMAIN)NewMachOFromCFM(mainAddr); #else pluginmain = (PVSTMAIN)mainAddr; #endif } } CloseResFile(resFileID); audiomaster = #ifdef __CFM__ NewCFMFromMachO(Master);#else Master;#endif#endif#else#error Platform not supported//.........这里部分代码省略.........
开发者ID:Angeldude,项目名称:pd,代码行数:101,
示例25: Tcl_MacOSXOpenVersionedBundleResourcesintTcl_MacOSXOpenVersionedBundleResources( Tcl_Interp *interp, const char *bundleName, const char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath){#ifdef HAVE_COREFOUNDATION CFBundleRef bundleRef, versionedBundleRef = NULL; CFStringRef bundleNameRef; CFURLRef libURL; libraryPath[0] = '/0'; bundleNameRef = CFStringCreateWithCString(NULL, bundleName, kCFStringEncodingUTF8); bundleRef = CFBundleGetBundleWithIdentifier(bundleNameRef); CFRelease(bundleNameRef); if (bundleVersion && bundleRef) { /* * Create bundle from bundleVersion subdirectory of 'Versions'. */ CFURLRef bundleURL = CFBundleCopyBundleURL(bundleRef); if (bundleURL) { CFStringRef bundleVersionRef = CFStringCreateWithCString(NULL, bundleVersion, kCFStringEncodingUTF8); if (bundleVersionRef) { CFStringRef bundleTailRef = CFURLCopyLastPathComponent( bundleURL); if (bundleTailRef) { if (CFStringCompare(bundleTailRef, bundleVersionRef, 0) == kCFCompareEqualTo) { versionedBundleRef = (CFBundleRef) CFRetain(bundleRef); } CFRelease(bundleTailRef); } if (!versionedBundleRef) { CFURLRef versURL = CFURLCreateCopyAppendingPathComponent( NULL, bundleURL, CFSTR("Versions"), TRUE); if (versURL) { CFURLRef versionedBundleURL = CFURLCreateCopyAppendingPathComponent( NULL, versURL, bundleVersionRef, TRUE); if (versionedBundleURL) { versionedBundleRef = CFBundleCreate(NULL, versionedBundleURL); CFRelease(versionedBundleURL); } CFRelease(versURL); } } CFRelease(bundleVersionRef); } CFRelease(bundleURL); } if (versionedBundleRef) { bundleRef = versionedBundleRef; } } if (bundleRef) { if (hasResourceFile) { /* * Dynamically acquire address for CFBundleOpenBundleResourceMap * symbol, since it is only present in full CoreFoundation on Mac * OS X and not in CFLite on pure Darwin. */ static int initialized = FALSE; static short (*openresourcemap)(CFBundleRef) = NULL; if (!initialized) {#if TCL_DYLD_USE_DLFCN#if MAC_OS_X_VERSION_MIN_REQUIRED < 1040 if (tclMacOSXDarwinRelease >= 8)#endif { const char *errMsg = nil; openresourcemap = dlsym(RTLD_NEXT, "CFBundleOpenBundleResourceMap"); if (!openresourcemap) { errMsg = dlerror(); TclLoadDbgMsg("dlsym() failed: %s", errMsg); } } if (!openresourcemap)#endif {#if TCL_DYLD_USE_NSMODULE NSSymbol nsSymbol = NULL; if (NSIsSymbolNameDefinedWithHint(//.........这里部分代码省略.........
开发者ID:lmiadowicz,项目名称:tcl,代码行数:101,
示例26: mach_inject_bundle_pid mach_error_tmach_inject_bundle_pid( const char *bundlePackageFileSystemRepresentation, pid_t pid ){ assert( bundlePackageFileSystemRepresentation ); assert( pid > 0 ); mach_error_t err = err_none; /* // Get the framework's bundle. CFBundleRef frameworkBundle = NULL; if( !err ) { frameworkBundle = CFBundleGetBundleWithIdentifier( CFSTR("com.flyingmeat.JSTalk")); if( frameworkBundle == NULL ) err = err_mach_inject_bundle_couldnt_load_framework_bundle; } // Find the injection bundle by name. CFURLRef injectionURL = NULL; if( !err ) { injectionURL = CFBundleCopyResourceURL( frameworkBundle, CFSTR("mach_inject_bundle_stub.bundle"), NULL, NULL ); if( !injectionURL ) err = err_mach_inject_bundle_couldnt_find_injection_bundle; } */ CFStringRef filePath = CFStringCreateWithCString(nil, bundlePackageFileSystemRepresentation, kCFStringEncodingUTF8); CFURLRef injectionURL = CFURLCreateWithFileSystemPath(nil, filePath, kCFURLPOSIXPathStyle, true); //CFRelease(filePath); // Create injection bundle instance. CFBundleRef injectionBundle = NULL; if( !err ) { injectionBundle = CFBundleCreate( kCFAllocatorDefault, injectionURL ); if( !injectionBundle ) err = err_mach_inject_bundle_couldnt_load_injection_bundle; } // Load the thread code injection. void *injectionCode = injectEntry; /* if( !err ) { injectionCode = CFBundleGetFunctionPointerForName( injectionBundle, CFSTR( INJECT_ENTRY_SYMBOL )); if( injectionCode == NULL ) err = err_mach_inject_bundle_couldnt_find_inject_entry_symbol; } */ // Allocate and populate the parameter block. mach_inject_bundle_stub_param *param = NULL; size_t paramSize; if( !err ) { size_t bundlePathSize = strlen( bundlePackageFileSystemRepresentation ) + 1; paramSize = sizeof( ptrdiff_t ) + bundlePathSize; param = malloc( paramSize ); bcopy( bundlePackageFileSystemRepresentation, param->bundlePackageFileSystemRepresentation, bundlePathSize ); } // Inject the code. if( !err ) { err = mach_inject( injectionCode, param, paramSize, pid, 0 ); } // Clean up. if( param ) free( param ); if( injectionBundle ) CFRelease( injectionBundle ); if( injectionURL ) CFRelease( injectionURL ); return err;}
开发者ID:BohemianCoding,项目名称:jstalk,代码行数:82,
示例27: LoadGlxBundle/* * LoadGlxBundle * The Quartz mode X server needs to dynamically load the appropriate * bundle before initializing GLX. */static void LoadGlxBundle(void){ CFBundleRef mainBundle; CFStringRef bundleName; CFURLRef bundleURL; CFBundleRef glxBundle; // Get the main bundle for the application mainBundle = CFBundleGetMainBundle(); // Choose the bundle to load ErrorF("Loading GLX bundle "); if (/*quartzUseAGL*/0) { bundleName = CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, quartzOpenGLBundle, kCFStringEncodingASCII, kCFAllocatorNull); ErrorF("%s (using Apple's OpenGL)/n", quartzOpenGLBundle); } else { bundleName = CFSTR("glxMesa.bundle"); CFRetain(bundleName); // so we can release later ErrorF("glxMesa.bundle (using Mesa)/n"); } // Look for the appropriate GLX bundle in the main bundle by name bundleURL = CFBundleCopyResourceURL(mainBundle, bundleName, NULL, NULL); if (!bundleURL) { FatalError("Could not find GLX bundle."); } // Make a bundle instance using the URLRef glxBundle = CFBundleCreate(kCFAllocatorDefault, bundleURL); if (!CFBundleLoadExecutable(glxBundle)) { FatalError("Could not load GLX bundle."); } // Find the GLX init functions __DarwinglXMesaProvider = (void *) CFBundleGetDataPointerForName( glxBundle, CFSTR("__glXMesaProvider")); GlxPushProvider = (void *) CFBundleGetFunctionPointerForName( glxBundle, CFSTR("GlxPushProvider")); GlxExtensionInit = (void *) CFBundleGetFunctionPointerForName( glxBundle, CFSTR("GlxExtensionInit")); GlxWrapInitVisuals = (void *) CFBundleGetFunctionPointerForName( glxBundle, CFSTR("GlxWrapInitVisuals")); if (!GlxExtensionInit || !GlxWrapInitVisuals) { FatalError("Could not initialize GLX bundle."); } // Release the CF objects CFRelease(bundleName); CFRelease(bundleURL);}
开发者ID:GrahamCobb,项目名称:maemo-xsisusb,代码行数:66,
示例28: CBasePlugInCVST2KSPIPlugIn::CVST2KSPIPlugIn(CVST2KSPIModule* pModule, const std::string& sEffectPathName) : CBasePlugIn(dynamic_cast<CBaseModule*>(pModule), giAudioMaxBufferSize, dynamic_cast<CBaseDSPEngine*>(new CEcho()), 0, COMPANY_NAME, PRODUCT_NAME), mbUpdateGUISettings(true), mbBypass(false), mbShowDemoExpiredDialog(false), mbRegistered(false), miNoiseMode(0), miNoiseCounter(0), msEffectPathName(sEffectPathName), mpVSTEffect(NULL){ dynamic_cast<CEcho*>(mpDSPEngine)->SetChannels(2); mpDezipper->SetCallback(dynamic_cast<IBaseDezipperCallback*>(this)); mbCanProcess = true; muiTimeWhenStarted = ITime::GetTimeMS(); miRandom = 0x123456;#ifdef WIN32 { HMODULE hDLL; // Load plug-in std::string s2 = msEffectPathName; ModifyPathName(s2); hDLL = LoadLibrary(s2.c_str()); if (hDLL == NULL) { } VSTMainFunc mainFunc = (VSTMainFunc)(void*)GetProcAddress(hDLL, "VSTPluginMain"); if (mainFunc == NULL) { } try { mpVSTEffect = mainFunc(audioMasterCallbackPlugIn); mpVSTEffect->dispatcher(mpVSTEffect, effOpen, 0, 0, 0, 0.0); mpVSTEffect->dispatcher(mpVSTEffect, effSetSampleRate, 0, 0, 0, 44100.0f); mpVSTEffect->dispatcher(mpVSTEffect, effSetBlockSize, 0, 32, 0, 0.0); } catch(...) { // Plug-in crashed mpVSTEffect = NULL; } }#else // WIN32 { CFBundleRef BundleRef; // Make a CFURLRef from the CFString representation of the bundle's path. tchar pszPathName[1024]; strcpy(pszPathName, msEffectPathName.c_str()); ToUnix(pszPathName); CFURLRef bundleURL = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, __CFStringMakeConstantString(pszPathName), kCFURLPOSIXPathStyle, true ); if ( !bundleURL ) { } // Make a bundle instance using the URLRef. BundleRef = CFBundleCreate( kCFAllocatorDefault, bundleURL ); // We don't need the URL anymore CFRelease( bundleURL ); if ( !BundleRef ) { } if ( !CFBundleLoadExecutable( BundleRef ) ) { CFRelease( BundleRef ); BundleRef = NULL; } VSTMainFunc mainFunc = (VSTMainFunc)CFBundleGetFunctionPointerForName( BundleRef, CFSTR("VSTPluginMain") ); if (mainFunc == NULL) { } try { mpVSTEffect = mainFunc(audioMasterCallbackPlugIn); mpVSTEffect->dispatcher(mpVSTEffect, effOpen, 0, 0, 0, 0.0); mpVSTEffect->dispatcher(mpVSTEffect, effSetSampleRate, 0, 0, 0, 44100.0f); mpVSTEffect->dispatcher(mpVSTEffect, effSetBlockSize, 0, 32, 0, 0.0); } catch(...) { // Plug-in crashed mpVSTEffect = NULL; } }#endif // WIN32 / else}
开发者ID:eriser,项目名称:koblo_software-1,代码行数:94,
示例29: DebugShowbool CamulewebApp::GetTemplateDir(const wxString& templateName, wxString& templateDir){ wxString dir; m_localTemplate = false; DebugShow(wxT("looking for template: ") + templateName + wxT("/n"));#ifdef __WXMAC__ CFURLRef amuleBundleUrl; OSStatus status = LSFindApplicationForInfo( kLSUnknownCreator, // This magic string is the bundle identifier in aMule.app's Info.plist CFSTR("org.amule.aMule"), NULL, NULL, &amuleBundleUrl); if (status == noErr && amuleBundleUrl) { CFBundleRef amuleBundle = CFBundleCreate(NULL, amuleBundleUrl); CFRelease(amuleBundleUrl); if (amuleBundle) { CFURLRef webserverDirUrl = CFBundleCopyResourceURL( amuleBundle, CFSTR("webserver"), NULL, NULL); CFRelease(amuleBundle); if (webserverDirUrl) { CFURLRef absoluteURL = CFURLCopyAbsoluteURL(webserverDirUrl); CFRelease(webserverDirUrl); if (absoluteURL) { CFStringRef pathString = CFURLCopyFileSystemPath( absoluteURL, kCFURLPOSIXPathStyle); CFRelease(absoluteURL); #if wxCHECK_VERSION(2, 9, 0) dir = wxCFStringRef(pathString). AsString(wxLocale::GetSystemEncoding()); #else dir = wxMacCFStringHolder(pathString). AsString(wxLocale::GetSystemEncoding()); #endif if (CheckDirForTemplate(dir, templateName)) { templateDir = dir; return true; } } } } }#endif dir = GetConfigDir(wxT("remote.conf")) + wxT("webserver"); if (CheckDirForTemplate(dir, templateName)) { templateDir = dir; m_localTemplate = true; return true; }#ifdef WEBSERVERDIR dir = wxT(WEBSERVERDIR); if (CheckDirForTemplate(dir, templateName)) { templateDir = dir; return true; }#endif dir = wxStandardPaths::Get().GetResourcesDir(); // Returns 'aMule' when we use 'amule' elsewhere#if !defined(__WXMSW__) && !defined(__WXMAC__) dir = dir.BeforeLast(wxFileName::GetPathSeparator()); dir = JoinPaths(dir, wxT("amule"));#endif dir = JoinPaths(dir, wxT("webserver")); if (CheckDirForTemplate(dir, templateName)) { templateDir = dir; return true; } // template not found. reverting to default const wxChar* const defaultTemplateName = wxT("default"); if ( templateName == defaultTemplateName ) { return false; } Show(wxT("Template ") + templateName + wxT(" not found, reverting to default/n/n")); return GetTemplateDir(defaultTemplateName, templateDir);}
开发者ID:dreamerc,项目名称:amule,代码行数:84,
注:本文中的CFBundleCreate函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CFBundleGetBundleWithIdentifier函数代码示例 C++ CFBundleCopyResourcesDirectoryURL函数代码示例 |