static void test_create_sparse_file() { File_t f; InitializeFile(&f); CreateFile(&f,"/cygdrive/d/sparse.tmp",IOM_NO_STREAM,1); WriteAtF(&f,0x10000000,"Hallo\n",6); CloseFile(&f,0); }
static void test_splitted_file() { File_t of; InitializeFile(&of); GenDestFileName(&of,"pool/","split-file",".xxx",false); CreateFile( &of, 0, IOM_NO_STREAM,true); printf("*** created -> press ENTER: "); fflush(stdout); getchar(); SetupSplitFile(&of,OFT_PLAIN,0x80); static char abc[] = "abcdefghijklmnopqrstuvwxyz\n"; static char ABC[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"; int i; for ( i = 0; i < 10; i++ ) WriteF(&of,abc,strlen(abc)); printf("*** written -> press ENTER: "); fflush(stdout); getchar(); TRACELINE; CloseFile(&of,0); printf("*** closed -> press ENTER: "); fflush(stdout); getchar(); File_t f; InitializeFile(&f); OpenFileModify(&f,"pool/split-file.xxx",IOM_NO_STREAM); SetupSplitFile(&f,OFT_PLAIN,0x100); SeekF(&f,0xc0); for ( i = 0; i < 20; i++ ) WriteF(&f,ABC,strlen(ABC)); char buf[200]; ReadAtF(&f,0,buf,sizeof(buf)); printf("%.*s|\n",(int)sizeof(buf),buf); CloseFile(&f,false); }
static void test_create_file() { File_t f; InitializeFile(&f); CreateFile(&f,"pool/hallo.tmp",IOM_NO_STREAM,1); SetupSplitFile(&f,OFT_PLAIN,0x80); WriteAtF(&f,0x150,"Hallo\n",6); printf("*** created -> press ENTER: "); fflush(stdout); getchar(); CloseFile(&f,1); printf("*** closed -> press ENTER: "); fflush(stdout); getchar(); }
int CAPECompressCreate::Start(CIO * pioOutput, const WAVEFORMATEX * pwfeInput, int nMaxAudioBytes, int nCompressionLevel, const void * pHeaderData, int nHeaderBytes) { // verify the parameters if (pioOutput == NULL || pwfeInput == NULL) return ERROR_BAD_PARAMETER; // verify the wave format if ((pwfeInput->nChannels != 1) && (pwfeInput->nChannels != 2)) { return ERROR_INPUT_FILE_UNSUPPORTED_CHANNEL_COUNT; } if ((pwfeInput->wBitsPerSample != 8) && (pwfeInput->wBitsPerSample != 16) && (pwfeInput->wBitsPerSample != 24)) { return ERROR_INPUT_FILE_UNSUPPORTED_BIT_DEPTH; } // initialize (creates the base classes) m_nSamplesPerFrame = 73728; if (nCompressionLevel == COMPRESSION_LEVEL_EXTRA_HIGH) m_nSamplesPerFrame *= 4; else if (nCompressionLevel == COMPRESSION_LEVEL_INSANE) m_nSamplesPerFrame *= 16; m_spIO.Assign(pioOutput, FALSE, FALSE); m_spAPECompressCore.Assign(new CAPECompressCore(m_spIO, pwfeInput, m_nSamplesPerFrame, nCompressionLevel)); // copy the format memcpy(&m_wfeInput, pwfeInput, sizeof(WAVEFORMATEX)); // the compression level m_nCompressionLevel = nCompressionLevel; m_nFrameIndex = 0; m_nLastFrameBlocks = m_nSamplesPerFrame; // initialize the file if (nMaxAudioBytes < 0) nMaxAudioBytes = 2147483647; uint32 nMaxAudioBlocks = nMaxAudioBytes / pwfeInput->nBlockAlign; int nMaxFrames = nMaxAudioBlocks / m_nSamplesPerFrame; if ((nMaxAudioBlocks % m_nSamplesPerFrame) != 0) nMaxFrames++; InitializeFile(m_spIO, &m_wfeInput, nMaxFrames, m_nCompressionLevel, pHeaderData, nHeaderBytes); return ERROR_SUCCESS; }