Files
Work/avifile/AVIWAVE.CPP
2024-08-07 09:12:07 -04:00

64 lines
1.9 KiB
C++

#include <avifile/aviwave.hpp>
#include <common/array.hpp>
bool AVIWaveFormatEx::read(File &inFile)
{
Array<BYTE> extraInfo;
DWORD dwParam;
WORD wParam;
inFile.read(wParam);
formatTag(wParam);
inFile.read(wParam);
channels(wParam);
inFile.read(dwParam);
samplesPerSecond(dwParam);
inFile.read(dwParam);
averageBytesPerSecond(dwParam);
inFile.read(wParam);
blockAlign(wParam);
inFile.read(wParam);
bitsPerSample(wParam);
inFile.read(wParam);
size(wParam);
extraInfo.size(size());
inFile.read((char*)&extraInfo[0],extraInfo.size());
return true;
}
bool AVIWaveFormatEx::write(File &outFile)
{
Array<BYTE> extraInfo;
DWORD dwParam;
WORD wParam;
wParam=formatTag();
outFile.write(wParam);
wParam=channels;
outFile.write(wParam);
dwParam=samplesPerSecond();
outFile.write(dwParam);
dwParam=averageBytesPerSecond();
outFile.write(dwParam);
wParam=blockAlign();
outFile.write(wParam);
wParam=bitsPerSample();
outFile.write(wParam);
wParam=0; // no extra info
outFile.write(wParam);
return true;
}
String AVIWaveFormatEx::toString(void)const
{
String str;
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::wFormatTag=")+String().fromInt(formatTag())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::nChannels=")+String().fromInt(channels())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::nSamplesPerSec=")+String().fromInt(samplesPerSecond())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::nAvgBytesPerSec=")+String().fromInt(averageBytesPerSecond())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::nBlockAlign=")+String().fromInt(blockAlign())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::wBitsPerSample=")+String().fromInt(bitsPerSample())+String("\n");
str+=String("[AVIWaveFormatEx::toString]WAVEFORMATEX::cbSize=")+String().fromInt(size())+String("\n");
return str;
}