Exemplo n.º 1
0
void
MovieEncoder::DisposeData()
{
	// If the movie is still opened, close it; this also flushes all tracks
	if (fMediaFile && fIsFileOpen)
		_CloseFile();
	delete fMediaFile;		// deletes the track, too
	fMediaFile = NULL;
	fMediaTrack = NULL;
	
	fFileList = NULL;
}
Exemplo n.º 2
0
Arquivo: _creat.c Projeto: b409/b409
void main(int argc,char **argv)
{
    int fd;
    char *path;
    if(argc != 2){
        printf("invalid argument!\n");
        exit(1);
    }
    path = argv[1];
    fd = _CreateFile(path,0770,O_RDONLY);
    printf("Creat file -- %s  fd -- %d\n",path,fd);
    _CloseFile(fd);
    exit(0);
}
Exemplo n.º 3
0
Arquivo: _read.c Projeto: b409/b409
void main(int argc,char **argv)
{
    int n = 0;
    int fd;
    char *path;
    char buf[BUFSIZ];
    if(argc != 2){
        printf("invalid argument!\n");
        exit(1);
    }
    path = argv[1];
    fd = _OpenFile(path,O_RDONLY);
    printf("readfile fd -- %d\n",fd);
    if(fd != -1){
        bzero(buf,BUFSIZ);
        n = _ReadFile(fd,buf,BUFSIZ,0);
        printf("read -- %s\n",buf);
        _CloseFile(fd);
    }
    exit(0);
}
Exemplo n.º 4
0
bool Config1::_ParseFile(LPWSTR pstrFile, LPDWORD pdwErrorLine, CONFIGFILE *pcf)
{
  Mem::_zero(pcf, sizeof(CONFIGFILE));
  if(pdwErrorLine)*pdwErrorLine = 0;
  
  //Открываем файл.
  LPSTR *pstrStrings;
  DWORD dwStringsCount;
  {
    Fs::MEMFILE mf;
    if(!Fs::_fileToMem(pstrFile, &mf, false))return false;
    if(mf.dwSize <= UTF8_BOM_SIZE || mf.dwSize > MAX_CONFIG_SIZE){Fs::_CloseMemFile(&mf); return false;}
    
    BYTE bDataOffset = 0;
    if(Str::_UTF8IsBOM(mf.pData))bDataOffset = UTF8_BOM_SIZE;
    dwStringsCount = Str::_SplitToStringsA((LPSTR)mf.pData + bDataOffset, mf.dwSize - bDataOffset, &pstrStrings, Str::STS_TRIM);
    Fs::_CloseMemFile(&mf);
    
    if(dwStringsCount == (DWORD)(-1))return false;
  }

  //Обработка строк.
  VAR **pvTree = NULL;
  DWORD dwTree = 0;
  bool rVal = true;
  VAR *pvLast = NULL;

  DWORD iCurLine = 0;
  for(; iCurLine < dwStringsCount; iCurLine++)if(pstrStrings[iCurLine] != NULL && pstrStrings[iCurLine][0] != 0)
  {
    LPSTR pCur = pstrStrings[iCurLine];
    
    //Игнорируем коментарии.
    if(pCur[0] == '#' || pCur[0] == ';' || (pCur[0] == '/' && pCur[1] == '/'))continue;

    //Получаем аргументы.
    LPSTR *pstrArgs;
    DWORD dwArgsCount = Str::_GetArgumentsA(pCur, Str::_LengthA(pCur), &pstrArgs, Str::STA_FORMAT_C);
    if(dwArgsCount == (DWORD)(-1)){rVal = false; goto END;}
    if(dwArgsCount == 0)continue;

    //Управление потомками.
    if(dwArgsCount == 1 && pstrArgs[0][1] == 0)
    {
      register char c = pstrArgs[0][0];
      if(c == '{' || c == '}')
      {
        Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
        if(c == '{')
        {
          if(pvLast == NULL ||                                      //Нет родителя.
            (dwTree > 0 && pvTree[dwTree - 1] == pvLast) ||         //Поворное указание ковычек. Напимер. ds {{
            !Mem::reallocEx(&pvTree, sizeof(VAR *) * (dwTree + 1))) //Нехватае памяти.
          {
            rVal = false;
            goto END;
          }
          pvTree[dwTree++] = pvLast;
        }
        else if(/*c == '}' && */dwTree-- == 0)
        {
          rVal = false;
          break;
        }
        continue;
      }
    }

    //Конвертируем UTF-8 в unicode.
    for(DWORD a = 0; a < dwArgsCount; a++)
    {
      LPWSTR pt = Str::_utf8ToUnicode((LPBYTE)pstrArgs[a], -1);
      if(pt == NULL)
      {
        Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
        rVal = false;
        goto END;
      }
      Mem::free(pstrArgs[a]);
      pstrArgs[a] = (LPSTR)pt;
    }
    
    //Создаем переменную.
    if((pvLast = _AddVar(dwTree > 0 ? pvTree[dwTree - 1] : NULL, pcf, (LPWSTR *)pstrArgs, dwArgsCount)) == NULL)
    {
      rVal = false;
      Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
      goto END;
    }
    pvLast->dwSourceLine = iCurLine + 1;
  }

END:  
  Mem::free(pvTree);
  Mem::freeArrayOfPointers(pstrStrings, dwStringsCount);
  
  if(rVal == false)
  {
    if(pdwErrorLine)*pdwErrorLine = iCurLine + 1;
    _CloseFile(pcf);
  }
  return rVal;
}
Exemplo n.º 5
0
void Logger::CloseLogger()
{
	_CloseFile();
}
Exemplo n.º 6
0
bool Config1::_ParseFile(LPWSTR pstrFile, LPDWORD pdwErrorLine, CONFIGFILE *pcf)
{
  Mem::_zero(pcf, sizeof(CONFIGFILE));
  if(pdwErrorLine)*pdwErrorLine = 0;
  
  //Open the file.
  LPSTR *pstrStrings;
  DWORD dwStringsCount;
  {
    Fs::MEMFILE mf;
    if(!Fs::_fileToMem(pstrFile, &mf, false))return false;
    if(mf.dwSize <= UTF8_BOM_SIZE || mf.dwSize > MAX_CONFIG_SIZE){Fs::_CloseMemFile(&mf); return false;}
    
    BYTE bDataOffset = 0;
    if(Str::_UTF8IsBOM(mf.pData))bDataOffset = UTF8_BOM_SIZE;
    dwStringsCount = Str::_SplitToStringsA((LPSTR)mf.pData + bDataOffset, mf.dwSize - bDataOffset, &pstrStrings, Str::STS_TRIM);
    Fs::_CloseMemFile(&mf);
    
    if(dwStringsCount == (DWORD)(-1))return false;
  }

  //Processing lines.
  VAR **pvTree = NULL;
  DWORD dwTree = 0;
  bool rVal = true;
  VAR *pvLast = NULL;

  DWORD iCurLine = 0;
  for(; iCurLine < dwStringsCount; iCurLine++)if(pstrStrings[iCurLine] != NULL && pstrStrings[iCurLine][0] != 0)
  {
    LPSTR pCur = pstrStrings[iCurLine];
    
    //Ignore the comments.
    if(pCur[0] == '#' || pCur[0] == ';' || (pCur[0] == '/' && pCur[1] == '/'))continue;

    //Obtain the arguments.
    LPSTR *pstrArgs;
    DWORD dwArgsCount = Str::_GetArgumentsA(pCur, Str::_LengthA(pCur), &pstrArgs, Str::STA_FORMAT_C);
    if(dwArgsCount == (DWORD)(-1)){rVal = false; goto END;}
    if(dwArgsCount == 0)continue;

    //Office of the descendants.
    if(dwArgsCount == 1 && pstrArgs[0][1] == 0)
    {
      register char c = pstrArgs[0][0];
      if(c == '{' || c == '}')
      {
        Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
        if(c == '{')
        {
          if(pvLast == NULL ||                                      //No parent.
            (dwTree > 0 && pvTree[dwTree - 1] == pvLast) ||         //Povornoe indication of the quotes. Napimer. ds {{
            !Mem::reallocEx(&pvTree, sizeof(VAR *) * (dwTree + 1))) //A shortage of memory.
          {
            rVal = false;
            goto END;
          }
          pvTree[dwTree++] = pvLast;
        }
        else if(/*c == '}' & &*/dwTree-- == 0)
        {
          rVal = false;
          break;
        }
        continue;
      }
    }

    //Convert UTF-8 to unicode.
    for(DWORD a = 0; a < dwArgsCount; a++)
    {
      LPWSTR pt = Str::_utf8ToUnicode((LPBYTE)pstrArgs[a], -1);
      if(pt == NULL)
      {
        Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
        rVal = false;
        goto END;
      }
      Mem::free(pstrArgs[a]);
      pstrArgs[a] = (LPSTR)pt;
    }
    
    //Create a variable.
    if((pvLast = _AddVar(dwTree > 0 ? pvTree[dwTree - 1] : NULL, pcf, (LPWSTR *)pstrArgs, dwArgsCount)) == NULL)
    {
      rVal = false;
      Mem::freeArrayOfPointers(pstrArgs, dwArgsCount);
      goto END;
    }
    pvLast->dwSourceLine = iCurLine + 1;
  }

END:  
  Mem::free(pvTree);
  Mem::freeArrayOfPointers(pstrStrings, dwStringsCount);
  
  if(rVal == false)
  {
    if(pdwErrorLine)*pdwErrorLine = iCurLine + 1;
    _CloseFile(pcf);
  }
  return rVal;
}