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

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