本文整理汇总了C++中READ函数的典型用法代码示例。如果您正苦于以下问题:C++ READ函数的具体用法?C++ READ怎么用?C++ READ使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了READ函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: appendch
static struct imaptoken *do_readtoken(int touc)
{
int c=0;
unsigned l;
#define appendch(c) alloc_tokenbuf(l+1); curtoken.tokenbuf[l++]=(c);
if (curtoken.tokentype == IT_ERROR) return (&curtoken);
do
{
c=READ();
} while (c == '\r' || c == ' ' || c == '\t');
if (c == '\n')
{
UNREAD(c);
curtoken.tokentype=IT_EOL;
return (&curtoken);
}
c=(unsigned char)c;
if (c == LPAREN_CHAR)
{
curtoken.tokentype=IT_LPAREN;
return (&curtoken);
}
if (c == RPAREN_CHAR)
{
curtoken.tokentype=IT_RPAREN;
return (&curtoken);
}
if (c == LBRACKET_CHAR)
{
curtoken.tokentype=IT_LBRACKET;
return (&curtoken);
}
if (c == RBRACKET_CHAR)
{
curtoken.tokentype=IT_RBRACKET;
return (&curtoken);
}
if (c == '"')
{
l=0;
while ((c=READ()) != '"')
{
if (c == '\\')
c=READ();
if (c == '\r' || c == '\n')
{
UNREAD(c);
curtoken.tokentype=IT_ERROR;
return (&curtoken);
}
if (l < 8192)
{
appendch(c);
}
}
appendch(0);
curtoken.tokentype=IT_QUOTED_STRING;
return (&curtoken);
}
if (c == '{')
{
curtoken.tokennum=0;
while ((c=READ()) != '}')
{
if (!isdigit((int)(unsigned char)c))
{
UNREAD(c);
curtoken.tokentype=IT_ERROR;
return (&curtoken);
}
curtoken.tokennum = curtoken.tokennum*10 + (c-'0');
}
c=READ();
if (c == '\r')
{
c=READ();
}
if (c != '\n')
{
curtoken.tokentype=IT_ERROR;
return (&curtoken);
}
curtoken.tokentype=IT_LITERAL_STRING_START;
return (&curtoken);
}
l=0;
if (c == '\\')
{
appendch(c); /* Message flag */
c=READ();
//.........这里部分代码省略.........
开发者ID:MhdAlyan,项目名称:courier,代码行数:101,代码来源:imaptoken.c
示例2: BOARD_ConfigureSdram48MHz
//------------------------------------------------------------------------------
/// Initialize and configure the SDRAM for a 48 MHz MCK (ROM code clock settings)
//------------------------------------------------------------------------------
void BOARD_ConfigureSdram48MHz(unsigned char busWidth)
{
volatile unsigned int i;
static const Pin pinsSdram[] = {PINS_SDRAM};
volatile unsigned int *pSdram = (unsigned int *) AT91C_EBI_SDRAM;
unsigned short sdrc_dbw = 0;
unsigned int tmp = 0;
switch (busWidth) {
case 16:
sdrc_dbw = AT91C_SDRAMC_DBW_16_BITS;
break;
case 32:
default:
sdrc_dbw = AT91C_SDRAMC_DBW_32_BITS;
break;
}
// Enable corresponding PIOs
PIO_Configure(pinsSdram, 1);
// Enable EBI chip select for the SDRAM
tmp = READ(AT91C_BASE_MATRIX, MATRIX_EBICSA) | AT91C_MATRIX_CS1A_SDRAMC;
WRITE(AT91C_BASE_MATRIX, MATRIX_EBICSA, tmp);
// CFG Control Register
WRITE(AT91C_BASE_SDRAMC, SDRAMC_CR, AT91C_SDRAMC_NC_9
| AT91C_SDRAMC_NR_13
| AT91C_SDRAMC_CAS_2
| AT91C_SDRAMC_NB_4_BANKS
| sdrc_dbw
| AT91C_SDRAMC_TWR_1
| AT91C_SDRAMC_TRC_4
| AT91C_SDRAMC_TRP_1
| AT91C_SDRAMC_TRCD_1
| AT91C_SDRAMC_TRAS_2
| AT91C_SDRAMC_TXSR_3);
for (i = 0; i < 1000; i++);
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_NOP_CMD); // Perform NOP
pSdram[0] = 0x00000000;
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_PRCGALL_CMD); // Set PRCHG AL
pSdram[0] = 0x00000000; // Perform PRCHG
for (i = 0; i < 10000; i++);
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 1st CBR
pSdram[1] = 0x00000001; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 2 CBR
pSdram[2] = 0x00000002; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 3 CBR
pSdram[3] = 0x00000003; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 4 CBR
pSdram[4] = 0x00000004; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 5 CBR
pSdram[5] = 0x00000005; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 6 CBR
pSdram[6] = 0x00000006; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 7 CBR
pSdram[7] = 0x00000007; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_RFSH_CMD); // Set 8 CBR
pSdram[8] = 0x00000008; // Perform CBR
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_LMR_CMD); // Set LMR operation
pSdram[9] = 0xcafedede; // Perform LMR burst=1, lat=2
WRITE(AT91C_BASE_SDRAMC, SDRAMC_TR, (48000000 * 7) / 1000000); // Set Refresh Timer
WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_NORMAL_CMD); // Set Normal mode
pSdram[0] = 0x00000000; // Perform Normal mode
}
开发者ID:TimStrunck,项目名称:ARM7MODA_CodeForStart,代码行数:86,代码来源:board_memories.c
示例3: writes
static struct imaptoken *readtoken(int touc)
{
struct imaptoken *tok=do_readtoken(touc);
if (tok->tokentype == IT_LITERAL_STRING_START)
{
unsigned long nbytes=curtoken.tokennum;
if (nbytes > 8192)
{
writes("* NO [ALERT] IMAP command too long.\r\n");
tok->tokentype=IT_ERROR;
}
else
{
unsigned long i;
writes("+ OK\r\n");
writeflush();
alloc_tokenbuf(nbytes+1);
for (i=0; i<nbytes; i++)
tok->tokenbuf[i]= READ();
tok->tokenbuf[i]=0;
tok->tokentype=IT_QUOTED_STRING;
}
}
if (debugfile)
{
char *p=0;
fprintf(debugfile, "READ: ");
switch (tok->tokentype) {
case IT_ATOM:
p=curtoken.tokenbuf; fprintf(debugfile, "ATOM"); break;
case IT_NUMBER:
p=curtoken.tokenbuf; fprintf(debugfile, "NUMBER"); break;
case IT_QUOTED_STRING:
p=curtoken.tokenbuf; fprintf(debugfile, "QUOTED_STRING"); break;
case IT_LPAREN:
fprintf(debugfile, "LPAREN"); break;
case IT_RPAREN:
fprintf(debugfile, "RPAREN"); break;
case IT_NIL:
fprintf(debugfile, "NIL"); break;
case IT_ERROR:
fprintf(debugfile, "ERROR"); break;
case IT_EOL:
fprintf(debugfile, "EOL"); break;
case IT_LBRACKET:
fprintf(debugfile, "LBRACKET"); break;
case IT_RBRACKET:
fprintf(debugfile, "RBRACKET"); break;
}
if (p)
fprintf(debugfile, ": %s", p);
fprintf(debugfile, "\n");
fflush(debugfile);
}
return (tok);
}
开发者ID:MhdAlyan,项目名称:courier,代码行数:62,代码来源:imaptoken.c
示例4: DGifOpenFileHandle
/******************************************************************************
Update a new GIF file, given its file handle.
Returns dynamically allocated GifFileType pointer which serves as the GIF
info record.
******************************************************************************/
GifFileType *
DGifOpenFileHandle(int FileHandle, int *Error)
{
char Buf[GIF_STAMP_LEN + 1];
GifFileType *GifFile;
GifFilePrivateType *Private;
FILE *f;
GifFile = (GifFileType *)malloc(sizeof(GifFileType));
if (GifFile == NULL) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
(void)close(FileHandle);
return NULL;
}
/*@[email protected]*/memset(GifFile, '\0', sizeof(GifFileType));
/* Belt and suspenders, in case the null pointer isn't zero */
GifFile->SavedImages = NULL;
GifFile->SColorMap = NULL;
Private = (GifFilePrivateType *)malloc(sizeof(GifFilePrivateType));
if (Private == NULL) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
(void)close(FileHandle);
free((char *)GifFile);
return NULL;
}
/*@[email protected]*/memset(Private, '\0', sizeof(GifFilePrivateType));
#ifdef _WIN32
_setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */
#endif /* _WIN32 */
f = fdopen(FileHandle, "rb"); /* Make it into a stream: */
/*@[email protected]*/
GifFile->Private = (void *)Private;
Private->FileHandle = FileHandle;
Private->File = f;
Private->FileState = FILE_STATE_READ;
Private->Read = NULL; /* don't use alternate input method (TVT) */
GifFile->UserData = NULL; /* TVT */
/*@[email protected]*/
/* Let's see if this is a GIF file: */
/* coverity[check_return] */
if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {
if (Error != NULL)
*Error = D_GIF_ERR_READ_FAILED;
(void)fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
/* Check for GIF prefix at start of file */
Buf[GIF_STAMP_LEN] = 0;
if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_GIF_FILE;
(void)fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {
(void)fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
GifFile->Error = 0;
/* What version of GIF? */
Private->gif89 = (Buf[GIF_VERSION_POS] == '9');
return GifFile;
}
开发者ID:cdotstout,项目名称:rpi-rgb-led-matrix,代码行数:89,代码来源:dgif_lib.c
示例5: function
/******************************************************************************
GifFileType constructor with user supplied input function (TVT)
******************************************************************************/
GifFileType *
DGifOpen(void *userData, InputFunc readFunc, int *Error)
{
char Buf[GIF_STAMP_LEN + 1];
GifFileType *GifFile;
GifFilePrivateType *Private;
GifFile = (GifFileType *)malloc(sizeof(GifFileType));
if (GifFile == NULL) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
return NULL;
}
memset(GifFile, '\0', sizeof(GifFileType));
/* Belt and suspenders, in case the null pointer isn't zero */
GifFile->SavedImages = NULL;
GifFile->SColorMap = NULL;
Private = (GifFilePrivateType *)malloc(sizeof(GifFilePrivateType));
if (!Private) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
free((char *)GifFile);
return NULL;
}
/*@[email protected]*/memset(Private, '\0', sizeof(GifFilePrivateType));
GifFile->Private = (void *)Private;
Private->FileHandle = 0;
Private->File = NULL;
Private->FileState = FILE_STATE_READ;
Private->Read = readFunc; /* TVT */
GifFile->UserData = userData; /* TVT */
/* Lets see if this is a GIF file: */
/* coverity[check_return] */
if (READ(GifFile, (unsigned char *)Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {
if (Error != NULL)
*Error = D_GIF_ERR_READ_FAILED;
free((char *)Private);
free((char *)GifFile);
return NULL;
}
/* Check for GIF prefix at start of file */
Buf[GIF_STAMP_LEN] = '\0';
if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_GIF_FILE;
free((char *)Private);
free((char *)GifFile);
return NULL;
}
if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {
free((char *)Private);
free((char *)GifFile);
if (Error != NULL)
*Error = D_GIF_ERR_NO_SCRN_DSCR;
return NULL;
}
GifFile->Error = 0;
/* What version of GIF? */
Private->gif89 = (Buf[GIF_VERSION_POS] == '9');
return GifFile;
}
开发者ID:cdotstout,项目名称:rpi-rgb-led-matrix,代码行数:75,代码来源:dgif_lib.c
示例6: import_heap_image__may_heapclean
Task* import_heap_image__may_heapclean (const char* fname, Heapcleaner_Args* params, Roots* extra_roots) {
// ================================
//
// This fn is called (only) by load_and_run_heap_image__may_heapclean in src/c/main/load-and-run-heap-image.c
//
Task* task;
Heapfile_Header image_header;
Heap_Header heap_header;
Val *externs;
Pthread_Image image;
Inbuf inbuf;
if (fname != NULL) {
//
// Resolve the name of the image.
// If the file exists use it, otherwise try the
// pathname with the machine ID as an extension.
if ((inbuf.file = fopen(fname, "rb"))) {
//
if (verbosity__global > 0) say("loading %s ", fname);
} else {
//
if ((inbuf.file = fopen(fname, "rb"))) {
//
if (verbosity__global > 0) say("loading %s ", fname);
} else {
die ("unable to open heap image \"%s\"\n", fname);
}
}
inbuf.needs_to_be_byteswapped = FALSE;
inbuf.buf = NULL;
inbuf.nbytes = 0;
} else {
//
// fname == NULL, so try to find
// an in-core heap image:
#if defined(DLOPEN) && !defined(OPSYS_WIN32)
//
void *lib = dlopen (NULL, RTLD_LAZY);
void *vimg, *vimglenptr;
if ((vimg = dlsym(lib,HEAP_IMAGE_SYMBOL )) == NULL) die("no in-core heap image found\n");
if ((vimglenptr = dlsym(lib,HEAP_IMAGE_LEN_SYMBOL)) == NULL) die("unable to find length of in-core heap image\n");
inbuf.file = NULL;
inbuf.needs_to_be_byteswapped = FALSE;
inbuf.base = vimg;
inbuf.buf = inbuf.base;
inbuf.nbytes = *(long*)vimglenptr;
#else
die("in-core heap images not implemented\n");
#endif
}
READ(&inbuf, image_header);
if (image_header.byte_order != ORDER) die ("incorrect byte order in heap image\n");
if (image_header.magic != IMAGE_MAGIC) die ("bad magic number (%#x) in heap image\n", image_header.magic);
if ((image_header.kind != EXPORT_HEAP_IMAGE) && (image_header.kind != EXPORT_FN_IMAGE)) die ("bad image kind (%d) in heap image\n", image_header.kind);
READ(&inbuf, heap_header);
// Check for command-line overrides of heap parameters:
//
if (params->agegroup0_buffer_bytesize == 0) {
params->agegroup0_buffer_bytesize = heap_header.agegroup0_buffer_bytesize;
}
if (params->active_agegroups < heap_header.active_agegroups) {
params->active_agegroups = heap_header.active_agegroups;
}
if (params->oldest_agegroup_retaining_fromspace_sibs_between_heapcleanings < 0) {
params->oldest_agegroup_retaining_fromspace_sibs_between_heapcleanings = heap_header.oldest_agegroup_retaining_fromspace_sibs_between_heapcleanings;
}
task = make_task( /*is_boot:*/FALSE, params ); // make_task def in src/c/main/runtime-state.c
// Get the run-time pointers into the heap:
//
*PTR_CAST( Val*, PERVASIVE_PACKAGE_PICKLE_LIST_REFCELL__GLOBAL )
=
heap_header.pervasive_package_pickle_list;
// This carefully constructed fake looks like a normal
// compiled package from the Mythryl side but actually
// links to compile C code -- see the hack in
//
// src/c/main/load-compiledfiles.c
//
runtime_package__global = heap_header.runtime_pseudopackage;
#ifdef ASM_MATH
mathvec__global = heap_header.math_package;
//.........这里部分代码省略.........
开发者ID:omork,项目名称:mythryl,代码行数:101,代码来源:import-heap.c
示例7: readBuffer
static
void
readBuffer( MeshesVector& meshes,
FILE* f,
const std::string& fn )
{
int32_t meshIndex;
// READ_I32( meshIndex );
if ( fread( &meshIndex, 4, 1, f ) != 1 )
{
if ( feof( f ) )
{
return; // no error, file ended
}
else
{
throw std::runtime_error( "Can't read meshIndex" + std::string(" from ") + fn );
}
}
MeshData* m = meshes[ meshIndex ].get();
int bufferType;
int bufferSize;
READ_I32( bufferType );
READ_I32( bufferSize );
#define CASE( _type, _name, _data_type ) \
case BT_##_type: \
m->_name = new _data_type( bufferSize ); \
READ( m->_name ); \
break
// printf( "reading %d mesh, buffer type = %d (0x%08X), buffer size = %d\n",
// meshIndex, bufferType, bufferType, bufferSize );
// fflush( stdout );
switch ( bufferType & BT_MASK )
{
case BT_INDEX:
switch ( bufferType & ET_MASK )
{
case ET_UBYTE:
m->indexBuffer = new osg::DrawElementsUByte( osg::PrimitiveSet::TRIANGLES, bufferSize );
break;
case ET_USHORT:
m->indexBuffer = new osg::DrawElementsUShort( osg::PrimitiveSet::TRIANGLES, bufferSize );
break;
case ET_UINT:
m->indexBuffer = new osg::DrawElementsUInt( osg::PrimitiveSet::TRIANGLES, bufferSize );
break;
default:
{
char err[ 1024 ];
sprintf( err, "Unknown index buffer element type %d (0x%08X)",
bufferType & ET_MASK, bufferType & ET_MASK );
throw std::runtime_error( err );
}
}
READ( m->indexBuffer );
break;
CASE( VERTEX, vertexBuffer, VertexBuffer );
CASE( WEIGHT, weightBuffer, WeightBuffer );
CASE( MATRIX_INDEX, matrixIndexBuffer, MatrixIndexBuffer );
CASE( NORMAL, normalBuffer, NormalBuffer );
CASE( TEX_COORD, texCoordBuffer, TexCoordBuffer );
CASE( TANGENT_AND_HANDEDNESS, tangentAndHandednessBuffer, TangentAndHandednessBuffer );
default:
{
char err[ 1024 ];
sprintf( err, "Unknown buffer type %d (0x%08X)", bufferType, bufferType );
throw std::runtime_error( err );
}
}
#undef CASE
}
开发者ID:hlrs-vis,项目名称:osgcal,代码行数:84,代码来源:MeshLoader.cpp
示例8: DGifOpenFileHandle
/******************************************************************************
* Update a new gif file, given its file handle.
* Returns GifFileType pointer dynamically allocated which serves as the gif
* info record. _GifError is cleared if succesfull.
*****************************************************************************/
GifFileType *
DGifOpenFileHandle(int FileHandle) {
unsigned char Buf[GIF_STAMP_LEN + 1];
GifFileType *GifFile;
GifFilePrivateType *Private;
FILE *f;
GifFile = (GifFileType *)malloc(sizeof(GifFileType));
if (GifFile == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
close(FileHandle);
return NULL;
}
memset(GifFile, '\0', sizeof(GifFileType));
Private = (GifFilePrivateType *)malloc(sizeof(GifFilePrivateType));
if (Private == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
close(FileHandle);
free((char *)GifFile);
return NULL;
}
#if defined(__MSDOS__) || defined(WIN32) || defined(WIN64) || defined(_OPEN_BINARY)
setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */
#endif /* __MSDOS__ */
f = fdopen(FileHandle, "rb"); /* Make it into a stream: */
#if defined(__MSDOS__) || defined(WIN32) || defined(WIN64)
setvbuf(f, NULL, _IOFBF, GIF_FILE_BUFFER_SIZE); /* And inc. stream
buffer. */
#endif /* __MSDOS__ */
GifFile->Private = (VoidPtr)Private;
Private->FileHandle = FileHandle;
Private->File = f;
Private->FileState = FILE_STATE_READ;
Private->Read = 0; /* don't use alternate input method (TVT) */
GifFile->UserData = 0; /* TVT */
/* Lets see if this is a GIF file: */
if (READ(GifFile, Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) {
_GifError = D_GIF_ERR_READ_FAILED;
fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
/* The GIF Version number is ignored at this time. Maybe we should do
* something more useful with it. */
Buf[GIF_STAMP_LEN] = 0;
if (strncmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) {
_GifError = D_GIF_ERR_NOT_GIF_FILE;
fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
if (DGifGetScreenDesc(GifFile) == GIF_ERROR) {
fclose(f);
free((char *)Private);
free((char *)GifFile);
return NULL;
}
_GifError = 0;
return GifFile;
}
开发者ID:ChellaVignesh,项目名称:ros_haptics,代码行数:78,代码来源:dgif_lib.c
示例9: DGifGetImageDesc
/******************************************************************************
* This routine should be called before any attempt to read an image.
* Note it is assumed the Image desc. header (',') has been read.
*****************************************************************************/
int
DGifGetImageDesc(GifFileType * GifFile) {
int i, BitsPerPixel;
GifByteType Buf[3];
GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
SavedImage *sp;
if (!IS_READABLE(Private)) {
/* This file was NOT open for reading: */
_GifError = D_GIF_ERR_NOT_READABLE;
return GIF_ERROR;
}
if (DGifGetWord(GifFile, &GifFile->Image.Left) == GIF_ERROR ||
DGifGetWord(GifFile, &GifFile->Image.Top) == GIF_ERROR ||
DGifGetWord(GifFile, &GifFile->Image.Width) == GIF_ERROR ||
DGifGetWord(GifFile, &GifFile->Image.Height) == GIF_ERROR)
return GIF_ERROR;
if (READ(GifFile, Buf, 1) != 1) {
_GifError = D_GIF_ERR_READ_FAILED;
return GIF_ERROR;
}
BitsPerPixel = (Buf[0] & 0x07) + 1;
GifFile->Image.Interlace = (Buf[0] & 0x40);
if (Buf[0] & 0x80) { /* Does this image have local color map? */
/*** FIXME: Why do we check both of these in order to do this?
* Why do we have both Image and SavedImages? */
if (GifFile->Image.ColorMap && GifFile->SavedImages == NULL)
FreeMapObject(GifFile->Image.ColorMap);
GifFile->Image.ColorMap = MakeMapObject(1 << BitsPerPixel, NULL);
if (GifFile->Image.ColorMap == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
return GIF_ERROR;
}
/* Get the image local color map: */
for (i = 0; i < GifFile->Image.ColorMap->ColorCount; i++) {
if (READ(GifFile, Buf, 3) != 3) {
FreeMapObject(GifFile->Image.ColorMap);
_GifError = D_GIF_ERR_READ_FAILED;
GifFile->Image.ColorMap = NULL;
return GIF_ERROR;
}
GifFile->Image.ColorMap->Colors[i].Red = Buf[0];
GifFile->Image.ColorMap->Colors[i].Green = Buf[1];
GifFile->Image.ColorMap->Colors[i].Blue = Buf[2];
}
} else if (GifFile->Image.ColorMap) {
FreeMapObject(GifFile->Image.ColorMap);
GifFile->Image.ColorMap = NULL;
}
if (GifFile->SavedImages) {
if ((GifFile->SavedImages = (SavedImage *)realloc(GifFile->SavedImages,
sizeof(SavedImage) *
(GifFile->ImageCount + 1))) == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
return GIF_ERROR;
}
} else {
if ((GifFile->SavedImages =
(SavedImage *) malloc(sizeof(SavedImage))) == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
return GIF_ERROR;
}
}
sp = &GifFile->SavedImages[GifFile->ImageCount];
memcpy(&sp->ImageDesc, &GifFile->Image, sizeof(GifImageDesc));
if (GifFile->Image.ColorMap != NULL) {
sp->ImageDesc.ColorMap = MakeMapObject(
GifFile->Image.ColorMap->ColorCount,
GifFile->Image.ColorMap->Colors);
if (sp->ImageDesc.ColorMap == NULL) {
_GifError = D_GIF_ERR_NOT_ENOUGH_MEM;
return GIF_ERROR;
}
}
sp->RasterBits = (unsigned char *)NULL;
sp->ExtensionBlockCount = 0;
sp->ExtensionBlocks = (ExtensionBlock *) NULL;
GifFile->ImageCount++;
Private->PixelCount = (long)GifFile->Image.Width *
(long)GifFile->Image.Height;
DGifSetupDecompress(GifFile); /* Reset decompress algorithm parameters. */
return GIF_OK;
}
开发者ID:ChellaVignesh,项目名称:ros_haptics,代码行数:98,代码来源:dgif_lib.c
示例10: parse_element
static bool parse_element(FILE *in, int state, element_t *out)
{
tag_t tag;
element_t item;
int length;
char vr[3] = " ";
char tmp_buff[128];
bool extra_len = false;
int i;
if (remain_size(in) == 0) return false;
tag.group = READ(uint16_t, in);
tag.element = READ(uint16_t, in);
if (state & STATE_IMPLICIT_VR) {
length = READ(uint32_t, in);
// XXX: Handle this with a static table.
if (tag.v == TAG_INSTANCE_NUMBER.v) sprintf(vr, "IS");
if (tag.v == TAG_SLICE_LOCATION.v) sprintf(vr, "DS");
if (tag.v == TAG_SAMPLES_PER_PIXEL.v) sprintf(vr, "US");
if (tag.v == TAG_ROWS.v) sprintf(vr, "US");
if (tag.v == TAG_COLUMNS.v) sprintf(vr, "US");
if (tag.v == TAG_BITS_ALLOCATED.v) sprintf(vr, "US");
if (tag.v == TAG_BITS_STORED.v) sprintf(vr, "US");
if (tag.v == TAG_HIGH_BIT.v) sprintf(vr, "US");
} else {
fread(vr, 2, 1, in);
for (i = 0; i < ARRAY_SIZE(EXTRA_LEN_VRS); i++) {
if (strncmp(vr, EXTRA_LEN_VRS[i], 2) == 0) {
extra_len = true;
break;
}
}
if (extra_len) {
READ(uint16_t, in); // Reserved 2 bytes
length = READ(uint32_t, in);
} else {
length = READ(uint16_t, in);
}
}
LOG_V("(%.4x, %.4x) %s, length:%d", tag.group, tag.element, vr, length);
// Read a sequence of undefined length.
if (length == 0xffffffff && strncmp(vr, "SQ", 2) == 0) {
while (true) {
parse_element(in, STATE_SEQUENCE_ITEM | STATE_IMPLICIT_VR, &item);
if (item.tag.v == TAG_SEQ_DEL.v) {
break;
}
if (item.tag.v != TAG_ITEM.v)
LOG_E("Expected item tag");
}
}
if (state & STATE_SEQUENCE_ITEM && length == 0xffffffff) {
while (true) {
parse_element(in, 0, &item);
if (item.tag.v == TAG_ITEM_DEL.v) {
break;
}
}
}
if (out) {
out->tag = tag;
out->length = length;
memcpy(out->vr, vr, 2);
}
// For the moment we just skip the data.
if (length != 0xffffffff) {
CHECK(length >= 0);
if (length > remain_size(in)) {
CHECK(false);
}
if (out && length == 2 && strncmp(vr, "US", 2) == 0) {
out->value.us = READ(uint16_t, in);
} else if (out && strncmp(vr, "IS", 2) == 0) {
CHECK(length < sizeof(tmp_buff) - 1);
fread(tmp_buff, length, 1, in);
tmp_buff[length] = '\0';
sscanf(tmp_buff, "%d", &out->value.is);
} else if (out && strncmp(vr, "DS", 2) == 0) {
CHECK(length < sizeof(tmp_buff) - 1);
fread(tmp_buff, length, 1, in);
tmp_buff[length] = '\0';
sscanf(tmp_buff, "%f", &out->value.ds);
} else if (out && strncmp(vr, "UI", 2) == 0) {
CHECK(length < sizeof(out->value.ui) - 1);
fread(out->value.ui, length, 1, in);
out->value.ui[length] = '\0';
} else if (out && tag.v == TAG_PIXEL_DATA.v && out->buffer) {
CHECK(out->buffer_size >= length);
fread(out->buffer, length, 1, in);
} else {
// Skip the data.
fseek(in, length, SEEK_CUR);
}
}
//.........这里部分代码省略.........
开发者ID:Bossmojoman,项目名称:goxel,代码行数:101,代码来源:dicom.c
示例11: defined
#include "edmac.h"
#if defined(CONFIG_5D3) || defined(CONFIG_6D) /* 6D + 5D3 are Identical */
#define WRITE(x) (x)
#define READ(x) (0x80000000 | (x))
#define IS_USED(x) ((x) != 0xFFFFFFFF)
#define IS_WRITE(x) (((x) & 0x80000000) == 0)
#define IS_READ(x) (((x) & 0x80000000) != 0)
/* channel usage for 5D3 */
static uint32_t edmac_chanlist[] =
{
WRITE(0), WRITE(1), WRITE(2), WRITE(3), WRITE(4), WRITE(5), WRITE(6), 0xFFFFFFFF,
READ(0), READ(1), READ(2), READ(3), READ(4), READ(5), 0xFFFFFFFF, 0xFFFFFFFF,
WRITE(7), WRITE(8), WRITE(9), WRITE(10), WRITE(11), WRITE(12), WRITE(13), 0xFFFFFFFF,
READ(6), READ(7), READ(8), READ(9), READ(10), READ(11), 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
WRITE(14), WRITE(15), 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
READ(12), READ(13), READ(14), READ(15), 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
};
uint32_t edmac_get_dir(uint32_t channel)
{
if(!IS_USED(edmac_chanlist[channel]))
{
return EDMAC_DIR_UNUSED;
}
if(IS_WRITE(edmac_chanlist[channel]))
{
开发者ID:frantony,项目名称:magic-lantern,代码行数:31,代码来源:edmac.c
示例12: fbBresDash
static void
fbBresDash(DrawablePtr drawable, GCPtr gc, int dashOffset,
int sdx, int sdy, int axis,
int x1, int y1,
int e, int e1, int e3, int len)
{
FbStip *dst;
FbStride stride;
int bpp;
int dx, dy;
FbGCPrivPtr pgc = fb_gc(gc);
FbStip and = (FbStip) pgc->and;
FbStip xor = (FbStip) pgc->xor;
FbStip bgand = (FbStip) pgc->bgand;
FbStip bgxor = (FbStip) pgc->bgxor;
FbStip mask, mask0;
FbDashDeclare;
int dashlen;
bool even;
bool doOdd;
fbGetStipDrawable(drawable, dst, stride, bpp, dx, dy);
doOdd = gc->lineStyle == LineDoubleDash;
FbDashInit(gc, pgc, dashOffset, dashlen, even);
dst += ((y1 + dy) * stride);
x1 = (x1 + dx) * bpp;
dst += x1 >> FB_STIP_SHIFT;
x1 &= FB_STIP_MASK;
mask0 = FbStipMask(0, bpp);
mask = FbStipRight(mask0, x1);
if (sdx < 0)
mask0 = FbStipRight(mask0, FB_STIP_UNIT - bpp);
if (sdy < 0)
stride = -stride;
while (len--) {
if (even)
WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask));
else if (doOdd)
WRITE(dst, FbDoMaskRRop(READ(dst), bgand, bgxor, mask));
if (axis == X_AXIS) {
mask = fbBresShiftMask(mask, sdx, bpp);
if (!mask) {
dst += sdx;
mask = mask0;
}
e += e1;
if (e >= 0) {
dst += stride;
e += e3;
}
} else {
dst += stride;
e += e1;
if (e >= 0) {
e += e3;
mask = fbBresShiftMask(mask, sdx, bpp);
if (!mask) {
dst += sdx;
mask = mask0;
}
}
}
FbDashStep(dashlen, even);
}
}
开发者ID:sgh,项目名称:xf86-video-intel,代码行数:68,代码来源:fbseg.c
示例13: fbBresSolid
static void
fbBresSolid(DrawablePtr drawable, GCPtr gc, int dashOffset,
int sdx, int sdy, int axis,
int x1, int y1,
int e, int e1, int e3, int len)
{
FbStip *dst;
FbStride stride;
int bpp;
int dx, dy;
FbGCPrivPtr pgc = fb_gc(gc);
FbStip and = (FbStip) pgc->and;
FbStip xor = (FbStip) pgc->xor;
FbStip mask, mask0;
FbStip bits;
fbGetStipDrawable(drawable, dst, stride, bpp, dx, dy);
dst += ((y1 + dy) * stride);
x1 = (x1 + dx) * bpp;
dst += x1 >> FB_STIP_SHIFT;
x1 &= FB_STIP_MASK;
mask0 = FbStipMask(0, bpp);
mask = FbStipRight(mask0, x1);
if (sdx < 0)
mask0 = FbStipRight(mask0, FB_STIP_UNIT - bpp);
if (sdy < 0)
stride = -stride;
if (axis == X_AXIS) {
bits = 0;
while (len--) {
bits |= mask;
mask = fbBresShiftMask(mask, sdx, bpp);
if (!mask) {
WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits));
bits = 0;
dst += sdx;
mask = mask0;
}
e += e1;
if (e >= 0) {
WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits));
bits = 0;
dst += stride;
e += e3;
}
}
if (bits)
WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits));
} else {
while (len--) {
WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask));
dst += stride;
e += e1;
if (e >= 0) {
e += e3;
mask = fbBresShiftMask(mask, sdx, bpp);
if (!mask) {
dst += sdx;
mask = mask0;
}
}
}
}
}
开发者ID:sgh,项目名称:xf86-video-intel,代码行数:64,代码来源:fbseg.c
示例14: RegReadDisplaySettings
VOID
RegReadDisplaySettings(HKEY hkey, PDEVMODEW pdm)
{
DWORD dwValue;
/* Zero out the structure */
RtlZeroMemory(pdm, sizeof(DEVMODEW));
/* Helper macro */
#define READ(field, str, flag) \
if (RegReadDWORD(hkey, L##str, &dwValue)) \
{ \
pdm->field = dwValue; \
pdm->dmFields |= flag; \
}
/* Read all present settings */
READ(dmBitsPerPel, "DefaultSettings.BitsPerPel", DM_BITSPERPEL);
READ(dmPelsWidth, "DefaultSettings.XResolution", DM_PELSWIDTH);
READ(dmPelsHeight, "DefaultSettings.YResolution", DM_PELSHEIGHT);
READ(dmDisplayFlags, "DefaultSettings.Flags", DM_DISPLAYFLAGS);
READ(dmDisplayFrequency, "DefaultSettings.VRefresh", DM_DISPLAYFREQUENCY);
READ(dmPanningWidth, "DefaultSettings.XPanning", DM_PANNINGWIDTH);
READ(dmPanningHeight, "DefaultSettings.YPanning", DM_PANNINGHEIGHT);
READ(dmDisplayOrientation, "DefaultSettings.Orientation", DM_DISPLAYORIENTATION);
READ(dmDisplayFixedOutput, "DefaultSettings.FixedOutput", DM_DISPLAYFIXEDOUTPUT);
READ(dmPosition.x, "Attach.RelativeX", DM_POSITION);
READ(dmPosition.y, "Attach.RelativeY", DM_POSITION);
}
开发者ID:mutoso-mirrors,项目名称:reactos,代码行数:29,代码来源:display.c
示例15: lcd_buttons_update
/* Warning: This function is called from interrupt context */
void lcd_buttons_update()
{
#ifdef NEWPANEL
uint8_t newbutton=0;
if(READ(BTN_EN1)==0) newbutton|=EN_A;
if(READ(BTN_EN2)==0) newbutton|=EN_B;
#if BTN_ENC > 0
if((blocking_enc<millis()) && (READ(BTN_ENC)==0))
newbutton |= EN_C;
#endif
buttons = newbutton;
#ifdef LCD_HAS_SLOW_BUTTONS
buttons |= slow_buttons;
#endif
#ifdef REPRAPWORLD_KEYPAD
// for the reprapworld_keypad
uint8_t newbutton_reprapworld_keypad=0;
WRITE(SHIFT_LD,LOW);
WRITE(SHIFT_LD,HIGH);
for(int8_t i=0;i<8;i++) {
newbutton_reprapworld_keypad = newbutton_reprapworld_keypad>>1;
if(READ(SHIFT_OUT))
newbutton_reprapworld_keypad|=(1<<7);
WRITE(SHIFT_CLK,HIGH);
WRITE(SHIFT_CLK,LOW);
}
buttons_reprapworld_keypad=~newbutton_reprapworld_keypad; //invert it, because a pressed switch produces a logical 0
#endif
#else //read it from the shift register
uint8_t newbutton=0;
WRITE(SHIFT_LD,LOW);
WRITE(SHIFT_LD,HIGH);
unsigned char tmp_buttons=0;
for(int8_t i=0;i<8;i++)
{
newbutton = newbutton>>1;
if(READ(SHIFT_OUT))
newbutton|=(1<<7);
WRITE(SHIFT_CLK,HIGH);
WRITE(SHIFT_CLK,LOW);
}
buttons=~newbutton; //invert it, because a pressed switch produces a logical 0
#endif//!NEWPANEL
//manage encoder rotation
uint8_t enc=0;
if (buttons & EN_A) enc |= B01;
if (buttons & EN_B) enc |= B10;
if(enc != lastEncoderBits)
{
switch(enc)
{
case encrot0:
if(lastEncoderBits==encrot3)
encoderDiff++;
else if(lastEncoderBits==encrot1)
encoderDiff--;
break;
case encrot1:
if(lastEncoderBits==encrot0)
encoderDiff++;
else if(lastEncoderBits==encrot2)
encoderDiff--;
break;
case encrot2:
if(lastEncoderBits==encrot1)
encoderDiff++;
else if(lastEncoderBits==encrot3)
encoderDiff--;
break;
case encrot3:
if(lastEncoderBits==encrot2)
encoderDiff++;
else if(lastEncoderBits==encrot0)
encoderDiff--;
break;
}
}
lastEncoderBits = enc;
}
开发者ID:ManyeonJung,项目名称:Megamaker,代码行数:81,代码来源:ultralcd.cpp
示例16: main
int
main(int argc, char **argv)
{
/* Main Variables */
long seed, problem;
long parms[PROBLEM_PARMS];
long arcs;
int i;
/* I/O Variables */
FILE * fin = NULL;
FILE * fout = NULL;
char filename[256];
unsigned char flag;
/* The generator accepts two forms of input: a file from where the problem
* params are read or an input stream from stdin. If no file is provided in
* command line, it is assumed that the params are to be inputed from stdin.
*/
if(argc == 2) {
flag = INPUT_FILE;
} else if(argc == 1) {
flag = INPUT_STDIN;
} else {
fprintf(stderr, "Usage: ./netgen [FILE]\n");
goto TERMINATE;
}
if(flag == INPUT_FILE) {
fprintf(stderr, "ERROR: reading from input file still not possible.\n");
goto TERMINATE;
} else if(flag == INPUT_STDIN) {
/* First read the seed and the problem: if valid, read the rest of input */
fprintf(stdout, "Seed: ");
READ(seed);
fprintf(stdout, "Problem: ");
READ(problem);
if(seed <= 0 || problem <= 0) {
fprintf(stderr, "Incorrect seed value or problem value.\n");
goto TERMINATE;
}
for(i = 0; i < PROBLEM_PARMS; i++) {
switch(i) {
case 0:
fprintf(stdout, "Number of Nodes: ");
break;
case 1:
fprintf(stdout, "Number of Sources: ");
break;
case 2:
fprintf(stdout, "Number of Sinks: ");
break;
case 3:
fprintf(stdout, "Number of Arcs: ");
break;
case 4:
fprintf(stdout, "Arc Minimum Cost: ");
break;
case 5:
fprintf(stdout, "Arc Maximum Cost: ");
break;
case 6:
fprintf(stdout, "Total Supply: ");
break;
case 7:
fprintf(stdout, "Transshipment Sources: ");
break;
case 8:
fprintf(stdout, "Transshipment Sinks: ");
break;
case 9:
fprintf(stdout, "Percent of skeleton arcs given maximum cost: ");
break;
case 10:
fprintf(stdout, "Percent of arcs to be capacitated: ");
break;
case 11:
fprintf(stdout, "Minimum capacity for capacitated arcs: ");
break;
case 12:
fprintf(stdout, "Maximum capacity for capacitated arcs: ");
break;
default:
break;
}
READ(parms[i]);
}
}
/* Open output file */
sprintf(filename, "%ld", problem);
fout = fopen(filename, "w");
if(!fout) {
fprintf(stderr, "Unable to open output file.\n");
exit(0);
}
/* Output to file */
//.........这里部分代码省略.........
开发者ID:pmdias,项目名称:netgen,代码行数:101,代码来源:main.c
示例17: check_content_type
int check_content_type(struct sip_msg *msg)
{
static unsigned int appl[16] = {
0x6c707061/*appl*/,0x6c707041/*Appl*/,0x6c705061/*aPpl*/,
0x6c705041/*APpl*/,0x6c507061/*apPl*/,0x6c507041/*ApPl*/,
0x6c505061/*aPPl*/,0x6c505041/*APPl*/,0x4c707061/*appL*/,
0x4c707041/*AppL*/,0x4c705061/*aPpL*/,0x4c705041/*APpL*/,
0x4c507061/*apPL*/,0x4c507041/*ApPL*/,0x4c505061/*aPPL*/,
0x4c505041/*APPL*/};
static unsigned int icat[16] = {
0x74616369/*icat*/,0x74616349/*Icat*/,0x74614369/*iCat*/,
0x74614349/*ICat*/,0x74416369/*icAt*/,0x74416349/*IcAt*/,
0x74414369/*iCAt*/,0x74414349/*ICAt*/,0x54616369/*icaT*/,
0x54616349/*IcaT*/,0x54614369/*iCaT*/,0x54614349/*ICaT*/,
0x54416369/*icAT*/,0x54416349/*IcAT*/,0x54414369/*iCAT*/,
0x54414349/*ICAT*/};
static unsigned int ion_[8] = {
0x006e6f69/*ion_*/,0x006e6f49/*Ion_*/,0x006e4f69/*iOn_*/,
0x006e4f49/*IOn_*/,0x004e6f69/*ioN_*/,0x004e6f49/*IoN_*/,
0x004e4f69/*iON_*/,0x004e4f49/*ION_*/};
static unsigned int sdp_[8] = {
0x00706473/*sdp_*/,0x00706453/*Sdp_*/,0x00704473/*sDp_*/,
0x00704453/*SDp_*/,0x00506473/*sdP_*/,0x00506453/*SdP_*/,
0x00504473/*sDP_*/,0x00504453/*SDP_*/};
str str_type;
unsigned int x;
char *p;
if (!msg->content_type)
{
LM_WARN("the header Content-TYPE is absent!"
"let's assume the content is text/plain ;-)\n");
return 1;
}
trim_len(str_type.len,str_type.s,msg->content_type->body);
p = str_type.s;
advance(p,4,str_type,error_1);
x = READ(p-4);
if (!one_of_16(x,appl))
goto other;
advance(p,4,str_type,error_1);
x = READ(p-4);
if (!one_of_16(x,icat))
goto other;
advance(p,3,str_type,error_1);
x = READ(p-3) & 0x00ffffff;
if (!one_of_8(x,ion_))
goto other;
/* skip spaces and tabs if any */
while (*p==' ' || *p
|
请发表评论