#ifndef _MUSHEADER_HPP_ #define _MUSHEADER_HPP_ #include #include #include #include class MUSHeader { public: MUSHeader(void); ~MUSHeader(); WORD readHeader(FileIO &musFileIO); String headerID(void)const; WORD scoreLength(void)const; WORD scoreStart(void)const; WORD channels(void)const; WORD instruments(void)const; private: enum {MaxIDLength=4}; char mID[MaxIDLength]; WORD mScoreLength; WORD mScoreStart; WORD mChannels; WORD mDummyOne; WORD mInstruments; WORD mDummyTwo; }; inline MUSHeader::MUSHeader(void) { ::memset(this,0,sizeof(*this)); } inline MUSHeader::~MUSHeader() { } inline WORD MUSHeader::readHeader(FileIO &musFileIO) { if(!musFileIO.read((char*)this,sizeof(*this)))return FALSE; return TRUE; } inline WORD MUSHeader::scoreLength(void)const { return mScoreLength; } inline WORD MUSHeader::scoreStart(void)const { return mScoreStart; } inline WORD MUSHeader::channels(void)const { return mChannels; } inline WORD MUSHeader::instruments(void)const { return mInstruments; } #endif