64 lines
1.9 KiB
C++
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;
|
|
}
|