예제 #1
0
void	CAAudioFileFormats::DataFormatInfo::DebugPrint()
{
	char buf[20];
	static char *ny[] = { "not ", "" };
	printf("    '%s': %sreadable %swritable\n", OSTypeToStr(buf, mFormatID), ny[mReadable], ny[mWritable]);
	for (int i = 0; i < mNumVariants; ++i) {
		CAStreamBasicDescription desc(mVariants[i]);
		desc.PrintFormat(stdout, "      ", "");
		//printf("        %d bytes/frame\n", desc.mBytesPerFrame);
	}
}
예제 #2
0
void	PrintFileFormats()
{
	CAAudioFileFormats *fileFormats = CAAudioFileFormats::Instance();
	
	printf("{\n");
	for (int i = 0; i < fileFormats->mNumFileFormats; ++i) {
		CAAudioFileFormats::FileFormatInfo *ffi = &fileFormats->mFileFormats[i];
		char buf[20];
		printf("'%s' : ( (", OSTypeToStr(buf, ffi->mFileTypeID));
		int next = ffi->NumberOfExtensions();
		for (int e = 0; e < next; ++e)
			printf("'%s', ", ffi->GetExtension(e, buf, sizeof(buf)));
		printf("), (");
		
		for (int j = 0; j < ffi->mNumDataFormats; ++j) {
			CAAudioFileFormats::DataFormatInfo *dfi = &ffi->mDataFormats[j];
			if (dfi->mFormatID == kAudioFormatLinearPCM) {
				for (int k = 0; k < dfi->mNumVariants; ++k) {
					AudioStreamBasicDescription *asbd = &dfi->mVariants[k];
					if (asbd->mFormatFlags & ~(kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsFloat))
						printf("(%08lx/%ld) ", asbd->mFormatFlags, asbd->mBitsPerChannel);
					else {
						printf("'%s",
							(asbd->mFormatFlags & kAudioFormatFlagIsBigEndian) ? "BE" : "LE");
						if (asbd->mFormatFlags & kAudioFormatFlagIsFloat)
							printf("F");
						else
							printf("%sI",
								(asbd->mFormatFlags & kAudioFormatFlagIsSignedInteger) ? "" : "U");
						printf("%ld', ", asbd->mBitsPerChannel);
					}
				}
			} else {
				printf("'%s', ", OSTypeToStr(buf, dfi->mFormatID));
			}
		}
		printf(")),\n");
	}
	printf("}\n");
}
예제 #3
0
void	CAAudioFileFormats::FileFormatInfo::DebugPrint()
{
	char ftype[20];
	char ftypename[64];
	CFStringGetCString(mFileTypeName, ftypename, sizeof(ftypename), kCFStringEncodingUTF8);
	printf("File type: '%s' = %s\n  Extensions:", OSTypeToStr(ftype, mFileTypeID), ftypename);
	int i, n = NumberOfExtensions();
	for (i = 0; i < n; ++i) {
		GetExtension(i, ftype, sizeof(ftype));
		printf(" .%s", ftype);
	}
	printf("\n  Formats:\n");
	for (i = 0; i < mNumDataFormats; ++i)
		mDataFormats[i].DebugPrint();
}
예제 #4
0
파일: main.c 프로젝트: Airr/osxutils
static OSErr PrintCreatorCode (FSRef *fileRef)
{
	FSSpec		fileSpec;
    FInfo 		finderInfo;
	OSErr		err = noErr;
	char		creatorType[5] = "\0";
	
	//if it's a folder
	if (IsFolder(fileRef))
	{
		printf("MACS\n");
		return 0;
	}

	// retrieve filespec from file ref
    err = FSGetCatalogInfo (fileRef, NULL, NULL, NULL, &fileSpec, NULL);
    if (err != noErr) 
    {
        fprintf(stderr, "FSGetCatalogInfo(): Error %d getting file spec from file reference\n", err);
        return err;
    }
	// get Finder File Info
	err = FSGetFInfo (fileRef, &finderInfo);
	if (err != noErr)
	{
		fprintf(stderr, "FSpGetFInfo(): Error %d getting file Finder File Info from file spec\n", err);
		return err;
	}
	
	/* get creator type string */
	OSTypeToStr(finderInfo.fdCreator, creatorType);
	
	//print it
	if (strlen(creatorType) != 0)
		printf("%s\n", creatorType);

	return 0;
}