67 lines
1.1 KiB
C++
67 lines
1.1 KiB
C++
#ifndef _MIDIDATA_HPP_
|
|
#define _MIDIDATA_HPP_
|
|
#include <stdio.h>
|
|
#include <common/windows.hpp>
|
|
#include <common/string.hpp>
|
|
#include <midiwrt/midihdr.hpp>
|
|
#include <midiwrt/miditrck.hpp>
|
|
|
|
class MidiData
|
|
{
|
|
public:
|
|
MidiData(String midiPathFileName);
|
|
~MidiData();
|
|
operator MemFile&(void);
|
|
WORD writeHeader(MidiHeader &midiHeader);
|
|
WORD readHeader(MidiHeader &midiHeader);
|
|
WORD flush(void);
|
|
WORD isOkay(void)const;
|
|
private:
|
|
MemFile mMidiFile;
|
|
};
|
|
|
|
inline
|
|
MidiData::MidiData(String midiPathFileName)
|
|
: mMidiFile(midiPathFileName,100000L,MemFile::BigEndian)
|
|
{
|
|
}
|
|
|
|
inline
|
|
MidiData::~MidiData()
|
|
{
|
|
}
|
|
|
|
inline
|
|
WORD MidiData::writeHeader(MidiHeader &midiHeader)
|
|
{
|
|
if(!mMidiFile.isOkay())return FALSE;
|
|
return midiHeader.writeHeader(mMidiFile);
|
|
}
|
|
|
|
inline
|
|
WORD MidiData::readHeader(MidiHeader &midiHeader)
|
|
{
|
|
if(!mMidiFile.isOkay())return FALSE;
|
|
return midiHeader.readHeader(mMidiFile);
|
|
}
|
|
|
|
inline
|
|
WORD MidiData::flush(void)
|
|
{
|
|
if(!isOkay())return FALSE;
|
|
return mMidiFile.flushBuffer();
|
|
}
|
|
|
|
inline
|
|
MidiData::operator MemFile&(void)
|
|
{
|
|
return mMidiFile;
|
|
}
|
|
|
|
inline
|
|
WORD MidiData::isOkay(void)const
|
|
{
|
|
return mMidiFile.isOkay();
|
|
}
|
|
#endif
|