PsychError GESTALTGestalt(void) { char *selectorCString; OSType selectorConstant; CFStringRef selectorCFString; OSErr callError; long responseLong, i; PsychNativeBooleanType *responseArray; psych_bool returnResponse; PsychErrorExit(PsychCapNumOutputArgs(1)); PsychErrorExit(PsychCapNumInputArgs(1)); PsychAllocInCharArg(1, kPsychArgRequired, &selectorCString); if( strlen(selectorCString) != 4) PsychErrorExitMsg(PsychError_user, "The selector code must be a four-character string"); selectorCFString=CFStringCreateWithCString (NULL, selectorCString, kCFStringEncodingUTF8); selectorConstant= UTGetOSTypeFromString(selectorCFString); callError= Gestalt(selectorConstant, &responseLong); CFRelease(selectorCFString); if(callError) PsychCopyOutDoubleArg(1, kPsychArgOptional, (double)callError); else{ returnResponse=PsychAllocOutBooleanMatArg(1, kPsychArgOptional, 1, 32, 1, &responseArray); if(returnResponse){ for(i=0;i<32;i++){ if(1<<i & responseLong) responseArray[31-i]=TRUE; else responseArray[31-i]=FALSE; } } } return(PsychError_none); }
bool QMacPasteboardMimeQt3Any::canConvert(const QString &mime, QString flav) { loadMimeRegistry(); const int os_flav = UTGetOSTypeFromString(UTTypeCopyPreferredTagWithClass(QCFString(flav), kUTTagClassOSType)); if(mime_registry.contains(mime) && mime_registry[mime] == os_flav) return true; return false; }
QString QMacPasteboardMimeQt3Any::mimeFor(QString flav) { loadMimeRegistry(); const int os_flav = UTGetOSTypeFromString(UTTypeCopyPreferredTagWithClass(QCFString(flav), kUTTagClassOSType)); for(QMap<QString, int>::const_iterator it = mime_registry.constBegin(); it != mime_registry.constEnd(); ++it) { if(it.value() == os_flav) return QString::fromLatin1(it.key().toLatin1()); } return QString(); }
bool QMacPasteboard::hasOSType(int c_flavor) const { if (!paste) return false; sync(); ItemCount cnt = 0; if(PasteboardGetItemCount(paste, &cnt) || !cnt) return false; #ifdef DEBUG_PASTEBOARD qDebug("PasteBoard: hasOSType [%c%c%c%c]", (c_flavor>>24)&0xFF, (c_flavor>>16)&0xFF, (c_flavor>>8)&0xFF, (c_flavor>>0)&0xFF); #endif for(uint index = 1; index <= cnt; ++index) { PasteboardItemID id; if(PasteboardGetItemIdentifier(paste, index, &id) != noErr) return false; QCFType<CFArrayRef> types; if(PasteboardCopyItemFlavors(paste, id, &types ) != noErr) return false; const int type_count = CFArrayGetCount(types); for(int i = 0; i < type_count; ++i) { CFStringRef flavor = (CFStringRef)CFArrayGetValueAtIndex(types, i); const int os_flavor = UTGetOSTypeFromString(UTTypeCopyPreferredTagWithClass(flavor, kUTTagClassOSType)); if(os_flavor == c_flavor) { #ifdef DEBUG_PASTEBOARD qDebug(" - Found!"); #endif return true; } } } #ifdef DEBUG_PASTEBOARD qDebug(" - NotFound!"); #endif return false; }
int videotoolbox_init(AVCodecContext *s) { InputStream *ist = s->opaque; int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR; int ret = 0; VTContext *vt; vt = av_mallocz(sizeof(*vt)); if (!vt) return AVERROR(ENOMEM); ist->hwaccel_ctx = vt; ist->hwaccel_uninit = videotoolbox_uninit; ist->hwaccel_retrieve_data = videotoolbox_retrieve_data; vt->tmp_frame = av_frame_alloc(); if (!vt->tmp_frame) { ret = AVERROR(ENOMEM); goto fail; } if (ist->hwaccel_id == HWACCEL_VIDEOTOOLBOX) { #if CONFIG_VIDEOTOOLBOX if (!videotoolbox_pixfmt) { ret = av_videotoolbox_default_init(s); } else { AVVideotoolboxContext *vtctx = av_videotoolbox_alloc_context(); CFStringRef pixfmt_str = CFStringCreateWithCString(kCFAllocatorDefault, videotoolbox_pixfmt, kCFStringEncodingUTF8); vtctx->cv_pix_fmt_type = UTGetOSTypeFromString(pixfmt_str); ret = av_videotoolbox_default_init2(s, vtctx); CFRelease(pixfmt_str); } #endif } else { #if CONFIG_VDA if (!videotoolbox_pixfmt) { ret = av_vda_default_init(s); } else { AVVDAContext *vdactx = av_vda_alloc_context(); CFStringRef pixfmt_str = CFStringCreateWithCString(kCFAllocatorDefault, videotoolbox_pixfmt, kCFStringEncodingUTF8); vdactx->cv_pix_fmt_type = UTGetOSTypeFromString(pixfmt_str); ret = av_vda_default_init2(s, vdactx); CFRelease(pixfmt_str); } #endif } if (ret < 0) { av_log(NULL, loglevel, "Error creating %s decoder.\n", ist->hwaccel_id == HWACCEL_VIDEOTOOLBOX ? "Videotoolbox" : "VDA"); goto fail; } return 0; fail: videotoolbox_uninit(s); return ret; }