#include AVIMainHeader &AVIMainHeader::operator=(const AVIMainHeader &someAVIMainHeader) { microSecondsPerFrame(someAVIMainHeader.microSecondsPerFrame()); maxBytesPerSecond(someAVIMainHeader.maxBytesPerSecond()); granularity(someAVIMainHeader.granularity()); flags(someAVIMainHeader.flags()); totalFrames(someAVIMainHeader.totalFrames()); initialFrames(someAVIMainHeader.initialFrames()); streams(someAVIMainHeader.streams()); suggestedBufferSize(someAVIMainHeader.suggestedBufferSize()); width(someAVIMainHeader.width()); height(someAVIMainHeader.height()); return *this; } WORD AVIMainHeader::operator==(const AVIMainHeader &someAVIMainHeader)const { return (microSecondsPerFrame()==someAVIMainHeader.microSecondsPerFrame()&& maxBytesPerSecond()==someAVIMainHeader.maxBytesPerSecond()&& granularity()==someAVIMainHeader.granularity()&& flags()==someAVIMainHeader.flags()&& totalFrames()==someAVIMainHeader.totalFrames()&& initialFrames()==someAVIMainHeader.initialFrames()&& streams()==someAVIMainHeader.streams()&& suggestedBufferSize()==someAVIMainHeader.suggestedBufferSize()&& width()==someAVIMainHeader.width()&& height()==someAVIMainHeader.height()); } bool AVIMainHeader::read(File &inFile) { String aviLiteral("avih"); String aviHeader; DWORD sizeHeader; aviHeader.reserve(aviLiteral.length()+1); inFile.read(aviHeader,aviLiteral.length()); if(!(aviLiteral==aviHeader))return FALSE; inFile.read(sizeHeader); inFile.read(MainAVIHeader::dwMicroSecPerFrame); inFile.read(MainAVIHeader::dwMaxBytesPerSec); inFile.read(MainAVIHeader::dwPaddingGranularity); inFile.read(MainAVIHeader::dwFlags); inFile.read(MainAVIHeader::dwTotalFrames); inFile.read(MainAVIHeader::dwInitialFrames); inFile.read(MainAVIHeader::dwStreams); inFile.read(MainAVIHeader::dwSuggestedBufferSize); inFile.read(MainAVIHeader::dwWidth); inFile.read(MainAVIHeader::dwHeight); inFile.read(MainAVIHeader::dwReserved[0]); inFile.read(MainAVIHeader::dwReserved[1]); inFile.read(MainAVIHeader::dwReserved[2]); inFile.read(MainAVIHeader::dwReserved[3]); ::OutputDebugString(toString()+String("\n")); return true; } bool AVIMainHeader::write(File &outFile) { outFile.write("avih"); DWORD sizeHeader; sizeHeader=sizeof(MainAVIHeader::dwMicroSecPerFrame)+ sizeof(MainAVIHeader::dwMaxBytesPerSec)+ sizeof(MainAVIHeader::dwPaddingGranularity)+ sizeof(MainAVIHeader::dwFlags)+ sizeof(MainAVIHeader::dwTotalFrames)+ sizeof(MainAVIHeader::dwInitialFrames)+ sizeof(MainAVIHeader::dwStreams)+ sizeof(MainAVIHeader::dwSuggestedBufferSize)+ sizeof(MainAVIHeader::dwWidth)+ sizeof(MainAVIHeader::dwHeight)+ sizeof(MainAVIHeader::dwReserved[0])+ sizeof(MainAVIHeader::dwReserved[1])+ sizeof(MainAVIHeader::dwReserved[2])+ sizeof(MainAVIHeader::dwReserved[3]); outFile.write(sizeHeader); outFile.write(MainAVIHeader::dwMicroSecPerFrame); outFile.write(MainAVIHeader::dwMaxBytesPerSec); outFile.write(MainAVIHeader::dwPaddingGranularity); outFile.write(MainAVIHeader::dwFlags); outFile.write(MainAVIHeader::dwTotalFrames); outFile.write(MainAVIHeader::dwInitialFrames); outFile.write(MainAVIHeader::dwStreams); outFile.write(MainAVIHeader::dwSuggestedBufferSize); outFile.write(MainAVIHeader::dwWidth); outFile.write(MainAVIHeader::dwHeight); outFile.write(MainAVIHeader::dwReserved[0]); outFile.write(MainAVIHeader::dwReserved[1]); outFile.write(MainAVIHeader::dwReserved[2]); outFile.write(MainAVIHeader::dwReserved[3]); ::OutputDebugString(toString()+String("\n")); return true; } String AVIMainHeader::toString(void)const { String str; str+=String("[AVIMainHeader::toString]MainAVIHeader::dwMicroSecPerFrame=")+String().fromInt(MainAVIHeader::dwMicroSecPerFrame)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwMaxBytesPerSec=")+String().fromInt(MainAVIHeader::dwMaxBytesPerSec)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwPaddingGranularity=")+String().fromInt(MainAVIHeader::dwPaddingGranularity)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwFlags=")+String().fromInt(MainAVIHeader::dwFlags)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwTotalFrames=")+String().fromInt(MainAVIHeader::dwTotalFrames)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwInitialFrames=")+String().fromInt(MainAVIHeader::dwInitialFrames)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwStreams=")+String().fromInt(MainAVIHeader::dwStreams)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwSuggestedBufferSize=")+String().fromInt(MainAVIHeader::dwSuggestedBufferSize)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwWidth=")+String().fromInt(MainAVIHeader::dwWidth)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwHeight=")+String().fromInt(MainAVIHeader::dwHeight)+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[0]=")+String().fromInt(MainAVIHeader::dwReserved[0])+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[1]=")+String().fromInt(MainAVIHeader::dwReserved[1])+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[2]=")+String().fromInt(MainAVIHeader::dwReserved[2])+String("\n"); str+=String("[AVIMainHeader::toString]MainAVIHeader::dwReserved[3]=")+String().fromInt(MainAVIHeader::dwReserved[3])+String("\n"); return str; }