73 lines
1.1 KiB
C++
73 lines
1.1 KiB
C++
#ifndef _MUSHEADER_HPP_
|
|
#define _MUSHEADER_HPP_
|
|
#include <string.h>
|
|
#include <common/windows.hpp>
|
|
#include <common/fileio.hpp>
|
|
#include <common/string.hpp>
|
|
|
|
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
|