Example #1
0
Bool
XParseFontName (XFontNameString fontNameString, XFontName *fontName,
		unsigned int *fontNameAttributes)
{
	char		*name = fontNameString;
	XFontName	temp;
	unsigned int	attributes = 0;

#define GetString(field,bit)\
	if (!(name = extractStringField \
		(name, temp.field, sizeof (temp.field),\
		&attributes, bit))) \
		return False;

#define GetUnsigned(field,bit)\
	if (!(name = extractUnsignedField \
		(name, &temp.field, \
		&attributes, bit))) \
		return False;

	GetString (Registry, FontNameRegistry)
	GetString (Foundry, FontNameFoundry)
	GetString (FamilyName, FontNameFamilyName)
	GetString (WeightName, FontNameWeightName)
	GetString (Slant, FontNameSlant)
	GetString (SetwidthName, FontNameSetwidthName)
	GetString (AddStyleName, FontNameAddStyleName)
	GetUnsigned (PixelSize, FontNamePixelSize)
	GetUnsigned (PointSize, FontNamePointSize)
	GetUnsigned (ResolutionX, FontNameResolutionX)
	GetUnsigned (ResolutionY, FontNameResolutionY)
	GetString (Spacing, FontNameSpacing)
	GetUnsigned (AverageWidth, FontNameAverageWidth)
	GetString (CharSetRegistry, FontNameCharSetRegistry)
	if (!*name) {
		temp.CharSetEncoding[0] = '\0';
		attributes |= FontNameCharSetEncoding;
	} else {
		GetString (CharSetEncoding, FontNameCharSetEncoding)
	}
	*fontName = temp;
	*fontNameAttributes = attributes;
	return True;
}
Example #2
0
YSRESULT YsWavFile::LoadWav(const char fn[])
{
	FILE *fp;

	printf("Loading %s\n",fn);

	fp=fopen(fn,"rb");
	if(fp!=NULL)
	{
		unsigned char buf[256];
		unsigned int l;
		unsigned int fSize,hdrSize,dataSize;

		// Wave Header
		unsigned short wFormatTag,nChannels;
		unsigned nSamplesPerSec,nAvgBytesPerSec;
		unsigned short nBlockAlign,wBitsPerSample,cbSize;


		if(fread(buf,1,4,fp)!=4)
		{
			printf("Error in reading RIFF.\n");
			goto ERREND;
		}
		if(strncmp((char *)buf,"RIFF",4)!=0)
		{
			printf("Warning: RIFF not found.\n");
		}


		if(fread(buf,1,4,fp)!=4)
		{
			printf("Error in reading file size.\n");
			goto ERREND;
		}
		fSize=GetUnsigned(buf);
		printf("File Size=%d\n",fSize+8);

		if(fread(buf,1,8,fp)!=8)
		{
			printf("Error in reading WAVEfmt.\n");
			goto ERREND;
		}
		if(strncmp((char *)buf,"WAVEfmt",7)!=0)
		{
			printf("Warning: WAVEfmt not found\n");
		}


		if(fread(buf,1,4,fp)!=4)
		{
			printf("Error in reading header size.\n");
			goto ERREND;
		}
		hdrSize=GetUnsigned(buf);
		printf("Header Size=%d\n",hdrSize);


		//    WORD  wFormatTag; 
		//    WORD  nChannels; 
		//    DWORD nSamplesPerSec; 
		//    DWORD nAvgBytesPerSec; 
		//    WORD  nBlockAlign; 
		//    WORD  wBitsPerSample; 
		//    WORD  cbSize; 
		if(fread(buf,1,hdrSize,fp)!=hdrSize)
		{
			printf("Error in reading header.\n");
			goto ERREND;
		}
		wFormatTag=GetUnsignedShort(buf);
		nChannels=GetUnsignedShort(buf+2);
		nSamplesPerSec=GetUnsigned(buf+4);
		nAvgBytesPerSec=GetUnsigned(buf+8);
		nBlockAlign=GetUnsignedShort(buf+12);
		wBitsPerSample=(hdrSize>=16 ? GetUnsignedShort(buf+14) : 0);
		cbSize=(hdrSize>=18 ? GetUnsignedShort(buf+16) : 0);

		printf("wFormatTag=%d\n",wFormatTag);
		printf("nChannels=%d\n",nChannels);
		printf("nSamplesPerSec=%d\n",nSamplesPerSec);
		printf("nAvgBytesPerSec=%d\n",nAvgBytesPerSec);
		printf("nBlockAlign=%d\n",nBlockAlign);
		printf("wBitsPerSample=%d\n",wBitsPerSample);
		printf("cbSize=%d\n",cbSize);



		while(1)
		{
			if(fread(buf,1,4,fp)!=4)
			{
				printf("Error while waiting for data.\n");
				goto ERREND;
			}

			if((buf[0]=='d' || buf[0]=='D') && (buf[1]=='a' || buf[1]=='A') &&
			   (buf[2]=='t' || buf[2]=='T') && (buf[3]=='a' || buf[3]=='A'))
			{
				break;
			}
			else
			{
				printf("Skipping %c%c%c%c\n",buf[0],buf[1],buf[2],buf[3]);
				if(fread(buf,1,4,fp)!=4)
				{
					printf("Error while skipping unknown block.\n");
					goto ERREND;
				}



				l=GetUnsigned(buf);
				if(fread(buf,1,l,fp)!=l)
				{
					printf("Error while skipping unknown block.\n");
					goto ERREND;
				}
			}
		}


		if(fread(buf,1,4,fp)!=4)
		{
			printf("Error in reading data size.\n");
			goto ERREND;
		}
		dataSize=GetUnsigned(buf);
		printf("Data Size=%d (0x%x)\n",dataSize,dataSize);

		dat=new unsigned char [dataSize];
		if((l=fread(dat,1,dataSize,fp))!=dataSize)
		{
			printf("Warning: File ended before reading all data.\n");
			printf("  %d (0x%x) bytes have been read\n",l,l);
		}

		stereo=(nChannels==2 ? YSTRUE : YSFALSE);
		bit=wBitsPerSample;
		sizeInBytes=dataSize;
		rate=nSamplesPerSec;

		if(wBitsPerSample==8)
		{
			isSigned=YSFALSE;
		}
		else
		{
			isSigned=YSTRUE;
		}

		fclose(fp);
		return YSOK;
	}
	return YSERR;

ERREND:
	printf("Err!\n");
	if(fp!=NULL)
	{
		fclose(fp);
	}
	return YSERR;
}
std::size_t GetAllDocumentsOptions::Limit(std::size_t defaultValue) const {
    if (!limit_.is_initialized()) {
        limit_ = GetUnsigned("limit", defaultValue);
    }
    return limit_.get();
}
std::size_t GetAllDocumentsOptions::Skip() const {
    if (!skip_.is_initialized()) {
        skip_ = GetUnsigned("skip", 0);
    }
    return skip_.get();
}