Files
Work/midiwrt/MUSHDR.HPP
2024-08-07 09:16:27 -04:00

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