Example #1
0
	void	loadTextureMemory(const char* fileName)
	{
		if (checkExt(fileName,".JPG"))
		{
			loadJpgMemory();

		}
	}
Example #2
0
// This fn lets the caller know if it is a image file, video or audio
// file
Z_FILE_TYPE ZUtilGetFileType(char *fullPath)
{
  Z_FILE_TYPE fileType = Z_UNKNOWN_FILE;

  if (checkExt(fullPath, "jpg,raw")) {
    fileType = Z_JPEG_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "bmp")) {
    fileType = Z_BMP_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "gif")) {
    fileType = Z_GIF_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "tif, tiff")) {
    fileType = Z_TIF_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "png")) {
    fileType = Z_PNG_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "flac")) {
    fileType = Z_FLAC_FILE;
    goto funcOut;
  }

  // Handle all audio formats...
  if (checkExt(fullPath, "lpcm,pcm")) {
    fileType = Z_LPCM_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "wav")) {
    fileType = Z_WAV_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "wma")) {
    fileType = Z_WMA_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "mp2,mp3,m2a")) {
    fileType = Z_MP3_FILE;
    goto funcOut;
  }
  // Added by David; 2007-06-16;
  if (checkExt(fullPath, "m4a")) {
    fileType = Z_M4A_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "aac")) {
    fileType = Z_AAC_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "aif,aiff")) {
    fileType = Z_AIFF_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "midi")) {
    fileType = Z_MIDI_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "ra,ram")) {
    fileType = Z_RA_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "ogg")) {
    fileType = Z_OGG_FILE;
    goto funcOut;
  }
  if (checkExt(fullPath, "pls,m3u,wpl")) {
    fileType = Z_AUDIO_PLAYLIST;
    goto funcOut;
  }

  // Handle Video files..
  if (checkExt(fullPath, "avi")) {
    fileType = Z_AVI_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "divx")) {
    fileType = Z_DIVX_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "xvid")) {
    fileType = Z_XVID_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "mpeg,vob,mpg,ts")) {
    // After querying the libav, this will be changed to exact format...
    fileType = Z_MPEG_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "mp4")) {
    // After querying the libav, this will be changed to exact format...
    fileType = Z_MPEG4_FILE;
    goto funcOut;
  }
  
  if (checkExt(fullPath, "asf")) {
    // After querying the libav, this will be changed to exact format...
    fileType = Z_ASF_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "mov,qt")) {
    // After querying the libav, this will be changed to exact format...
    fileType = Z_QT_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "wmv")) {
    fileType = Z_WMV_FILE;
    goto funcOut;
  }

  if (checkExt(fullPath, "asx")) {
    fileType = Z_VIDEO_PLAYLIST;
    goto funcOut;
  }


funcOut:
  return(fileType);
}
Example #3
0
extern int EiC_lexan(void)
{
    int t=0, loop; char c=0, EiC_nextchar();

#ifdef ILOOKAHEAD

    token = &EiC_TokenArray[EiC_TokenP];

    if(EiC_TokenR > 0) {
	EiC_TokenR--;
	EiC_TokenI++;
	EiC_TokenP=(EiC_TokenP+1)%MAX_TOKENS;
	return token->Tok;
    }


#else

    if (STOKEN != NOTOKEN) {
	STOKEN = NOTOKEN;
	return token->Tok;
    }

#endif
    
    loop  = 1;
    state = 0;
    while (loop) {
	switch (state) {
	  case 0: lex_lastpos = lex_curpos; c = EiC_nextchar();
	    state = (WHITE(c) ? 0 :
		    (c == '\n' ? lex_lineno++, 0 :
		    (c == '<' ? t = LT, 1 :
		    (c == '>' ? t = GT, 2 :
		    (c == '+' ? t = '+', 3 :
		    (c == '-' ? t = '-', 4 :
		    (c == '|' ? t = BOR, 5 :
		    (c == '&' ? t = AND, 6 :
		    (c == '\''? 7 :
		    (c == '"' ? 8 :
		    (c == '.' ? 9 :  
		    (c == '/' ? t = '/', c = EiC_nextchar(), 50 :
		    (c == '%' ? t = '%', c = EiC_nextchar(), 50 :
		    (c == '*' ? t = '*', c = EiC_nextchar(), 50 :
		    (c == '=' ? t = ASS, c = EiC_nextchar(), 50 :
		    (c == '!' ? t = NOT, c = EiC_nextchar(), 50 :
		    (c == '^' ? t = XOR, c = EiC_nextchar(), 50 :
			//(c == '~' ? t = NOTB, c = EiC_nextchar(), 50 : //maks: ~
		     fail(RELOP, c))))))))))))))))));
	    break;
	  case 1: /* get <,  <= and << */
	    if ((c = EiC_nextchar()) == '<') t = LSHT;
	    else state = 50;
	    break;
	  case 2: /* get >, >= and >> */
	    if ((c = EiC_nextchar()) == '>') t = RSHT;
	    else state = 50;
	    break;
	  case 3: c = EiC_nextchar();                         /* get +, += or ++ */
	    if (c == '+') t = INC, state = 60;
	    else state = 50;
	    break;
	  case 4: c = EiC_nextchar();                            /* get -, -= -- */
	    state = 60;
	    if (c == '-') t = DEC;
	    else if (c == '>') t = RARROW;
	    else state = 50;
	    break;
	  case 5: c = EiC_nextchar();                         /* get |, |= or || */
	    if (c == '|') t = LOR, state = 60;
	    else state = 50;
	    break;
	  case 6: c = EiC_nextchar();                         /* get &, &= or && */
	    if (c == '&') t = LAND, state = 60;
	    else state = 50;
	    break;
	  case 7:token->Val.ival = charliteral(EiC_nextchar()); /* char_constants */
	    t = TOKEN_CHAR;
	    if (EiC_nextchar() != '\'')
		EiC_error("Missing single quote '");
	    state = 60;
	    break;
	  case 8: EiC_stringliteral();                        /* string literals */
	    token->Tok = STR;
	    /*return STR;*/ loop = 0; break;
	  case 9: c = EiC_nextchar();
	    t = '.';
	    if(DIGIT(c)) 
		state = 22;
	    else
		state = 60;
	    retract(c);
	    break;
	  case 10: c = EiC_nextchar();              /* identifiers and  keywords */
	    state = (LETTER(c) ? 11 :
		    (c == '_' ? 11 : fail(ID, c)));
	    break;
	  case 11: c = EiC_nextchar();
	    state = (LETTER(c) ? 11 :
		    (DIGIT(c) ? 11 :
		    (c == '_' ? 11 : 12)));
	    break;
	  case 12: retract(c); success(ID); /*return (token->Tok);*/ loop = 0; break;

	  case 20: c = EiC_nextchar();                     /* integers and reals */
	    state = (c == '0' ? 30 :
		    (DIGIT(c) ? 21 : fail(TOKEN_INT, c)));
	    break;
	  case 21: c = EiC_nextchar();
	    state = (DIGIT(c) ? 21 :
		    (c == '.' ? 22 :
		    (c == 'e' ? 23 :
		    (c == 'E' ? 23 : 25))));
	    break;
	  case 22: c = EiC_nextchar();
	    state = (DIGIT(c) ? 22 :
		    (c == 'e' ? 23 :
		    (c == 'E' ? 23 : 26)));
	    break;
	  case 23: c = EiC_nextchar();
	    state = (c == '+' ? 24 :
		    (c == '-' ? 24 :
		    (DIGIT(c) ? 24 : fail(TOKEN_FLOAT, c) /* ??? */ )));
	    break;
	  case 24: c = EiC_nextchar();
	    state = (DIGIT(c) ? 24 : 26);
	    break;
	  case 25: checkExt(c); success(TOKEN_INT); /*return (token->Tok);*/ loop = 0; break;
	  case 26: checkExt(c); success(TOKEN_FLOAT); /*return (token->Tok);*/ loop = 0; break;
	  case 27: checkExt(c); success(HEX);   /*return (token->Tok);*/ loop = 0; break;
	  case 28: checkExt(c); success(OCTAL); /*return (token->Tok);*/ loop = 0; break;
	  case 30:			  /* check for octal and hex numbers */
	    if ((c = EiC_nextchar()) == 'x' || c == 'X') {
		while (gethex((c = EiC_nextchar())) > -1);
		state = 27;
		break;
	    }
	    if (c != '.' && c != 'e' && c != 'E') {
		while (getoct(c) > -1)
		    c = EiC_nextchar();
		state = 28;
		break;
	    }
	    retract(c); state = 21; break;
	  case 50:                                      /* mix with equal's  */
	    if (c == '=')
		switch (t) {
		  case '+': t = ADDEQ;  break;		/* += */
		  case '-': t = SUBEQ;  break;		/* -= */
		  case '/': t = DIVEQ;  break;		/* /= */
		  case '*': t = MULEQ;  break;		/* *= */
		  case '%': t = MODEQ;  break;		/* %= */
		  case ASS: t = EQ;     break;		/* == */
		  case GT:  t = GE;     break;		/* >= */
		  case LT:  t = LE;     break;		/* <= */
		  case NOT: t = NE;     break;		/* != */
		  case RSHT:t = RSHTEQ; break;		/* >>= */
		  case LSHT:t = LSHTEQ; break;		/* <<= */
		  case AND: t = ANDEQ;  break;		/* &= */
		  case BOR: t = BOREQ;  break;		/* |= */
		  case XOR: t = XOREQ;  break;		/* ^= */
		  //case NOTB: t = NOTBEQ;  break;		/* maks ~= */
		  default: retract(c);
	    }
		else if(c == '/' && t == '/') //maks
		{
			//C++ comment
			//Only for colorize
			//Comments are removed by preprocessor before parser

			do 
			{
				c = EiC_nextchar();
				
			} while(c && c != '\n');

			retract(c);

			success(MISC); 
			token->Tok = TOKEN_COMMENT;
			loop = 0;
			break;
		}
		else retract(c);
	    state = 60;
	    break;
	  case 60: success(MISC); token->Tok = t; /*return (token->Tok);*/ loop = 0; break;
	  case 100: token->Tok = EiC_nextchar(); /*return (token->Tok);*/ loop = 0; break;
	}
    }

#ifdef ILOOKAHEAD

    if(EiC_TokenI<MAX_TOKENS)
	EiC_TokenI++;

    EiC_TokenP = (EiC_TokenP +1)%MAX_TOKENS;

#endif

    return token->Tok;


}
Example #4
0
void *ConvertThread(void *ctxt)
{
    int nIsDir = 0;
    ENCODE_AUDIO_TYPE eAudioType;

    for(;;)
    {

        if(ConvertTask.nItemCount == 0)
         {
            break;
         }
        /*get encode item from the global var.*/

        if((ConvertTask.eItemStatus == ITEM_INIT)
            &&(ConvertTask.CurEncodeItem.objID)
            &&(ConvertTask.CurEncodeItem.ptrAudioFormat)
            &&(ConvertTask.CurEncodeItem.ptrFormatCfg)
            )
         {
            ZLock(&(ConvertTask.TaskItemLock));
            ConvertTask.eThreadStatus = THREAD_START;
            ConvertTask.eItemStatus = ITEM_ENCODING;

            /*get the track path throught check the loacal database.*/

            initMetaTrack(&(ConvertTask.TrackMeta));
		/* Updated by Ke tao 2008-12-12*/
            ZDBRipFindTrackMetadata(ConvertTask.ptrDBHandle, ConvertTask.CurEncodeItem.objID, &(ConvertTask.TrackMeta));

            if(!ZUtilIsFilePresent(ConvertTask.TrackMeta.path, &nIsDir) || nIsDir
				|| !checkExt(ConvertTask.TrackMeta.path, "wav"))   /*if the track path isn't exists, as the normal quit*/
            {
               DeletePendingTask(ENCPENDING, &ConvertTask.CurEncodeItem);
               ConvertTask.eItemStatus = ITEM_ENCODED;
               ConvertTask.eThreadStatus = THREAD_FINISHED;
               freeMetaTrack(&(ConvertTask.TrackMeta));
               ZUnlock(&(ConvertTask.TaskItemLock));
               continue;
            }
            ZFREE(ConvertTask.DiscAudioSrcPath);
            ZFREE(ConvertTask.DiscEncodePath);
            ConvertTask.DiscAudioSrcPath = strdup(ConvertTask.TrackMeta.path);
            ConvertTask.DiscEncodePath = calloc(sizeof(char), (strlen(ConvertTask.DiscAudioSrcPath)+BUF_64_BITS)); 
            freeMetaTrack(&(ConvertTask.TrackMeta));
            ZUnlock(&(ConvertTask.TaskItemLock));
         }
        else
         { 
            sleep(1);
            continue;
         }

        /*convert audio file to the eAudioType type.*/

        eAudioType = GetAudioType(ConvertTask.CurEncodeItem.ptrAudioFormat);
        ConvertTask.eThreadStatus = THREAD_RUNNING;

        if(ConvertAudio(eAudioType, &ConvertTask.CurEncodeItem, ConvertTask.DiscAudioSrcPath, ConvertTask.DiscEncodePath) == ZAPP_FAILED)
         {
            ZLock(&(ConvertTask.TaskItemLock));
            DeletePendingTask(ENCPENDING, &(ConvertTask.CurEncodeItem));
            ConvertTask.eItemStatus = ITEM_ENCODED; 
            ConvertTask.eThreadStatus = THREAD_FINISHED;
            ZFREE(ConvertTask.DiscAudioSrcPath);   
            ZFREE(ConvertTask.DiscEncodePath);  
            ZUnlock(&(ConvertTask.TaskItemLock));
            continue;
         }
        /*write ID3 tag according the database.*/  
        if((eAudioType == MP3_AUDIO)||(eAudioType == FLAC_AUDIO))
        {
            initMetaTrack(&(ConvertTask.TrackMeta));
		/* Updated by Ke Tao 2008-12-12 */
            ZDBRipFindTrackMetadata(ConvertTask.ptrDBHandle, ConvertTask.CurEncodeItem.objID, &(ConvertTask.TrackMeta));
            WriteID3Tag(ConvertTask.DiscEncodePath, &(ConvertTask.TrackMeta));
            freeMetaTrack(&(ConvertTask.TrackMeta));  
        }
        /*set update task to the zriptask database's updatapending table.*/
        ZLock(&(ConvertTask.TaskItemLock));		
        ZFREE(ConvertTask.UpdateItem.objID); 
        ZFREE(ConvertTask.UpdateItem.ptrAudioFormat);
        ZFREE(ConvertTask.UpdateItem.ptrWavPath);
        ZFREE(ConvertTask.UpdateItem.ptrEncPath);
        ConvertTask.UpdateItem.objID = strdup(ConvertTask.CurEncodeItem.objID);
        ConvertTask.UpdateItem.ptrAudioFormat = strdup(ConvertTask.CurEncodeItem.ptrAudioFormat);
        ConvertTask.UpdateItem.ptrWavPath = strdup(ConvertTask.DiscAudioSrcPath);
        ConvertTask.UpdateItem.ptrEncPath = strdup(ConvertTask.DiscEncodePath);

        InsertPendingTask(UPDATEPENDING, &(ConvertTask.UpdateItem)); 

        /*Delete task to the zriptask database's EncPending table.*/

        DeletePendingTask(ENCPENDING, &ConvertTask.CurEncodeItem);

        ConvertTask.eItemStatus = ITEM_ENCODED;
        ConvertTask.eThreadStatus = THREAD_FINISHED;
        ZUnlock(&(ConvertTask.TaskItemLock));

    }
    return NULL;
}