Initial
This commit is contained in:
62
midiwrt/MUSCNV.HPP
Normal file
62
midiwrt/MUSCNV.HPP
Normal file
@@ -0,0 +1,62 @@
|
||||
#ifndef _MUSCONVERTER_HPP_
|
||||
#define _MUSCONVERTER_HPP_
|
||||
#include <midiwrt/mididata.hpp>
|
||||
#include <midiwrt/musfile.hpp>
|
||||
#include <midiwrt/puredly.hpp>
|
||||
#include <midiwrt/purenote.hpp>
|
||||
#include <midiwrt/purecntl.hpp>
|
||||
#include <midiwrt/miditime.hpp>
|
||||
|
||||
class MUSConverter : private MUSFile
|
||||
{
|
||||
public:
|
||||
MUSConverter(String midiPathFileName,String musPathFileName);
|
||||
~MUSConverter();
|
||||
WORD convertFile(void);
|
||||
void setTempo(USHORT midiTempo);
|
||||
USHORT getTempo(void)const;
|
||||
WORD isOkay(void)const;
|
||||
WORD updateTrackInfo(void);
|
||||
protected:
|
||||
WORD virtual handleScoreStart(void);
|
||||
WORD virtual handleReleaseNote(PureEvent &pureEvent,PureDelay &pureDelay,PureNote &releaseNote,BYTE trackNumber);
|
||||
WORD virtual handlePlayNote(PureEvent &pureEvent,PureDelay &pureDelay,PureNote &playNote,BYTE trackNumber);
|
||||
WORD virtual handlePitchBend(PureEvent &pureEvent,PureDelay &pureDelay,BYTE pitchBenderValue,BYTE trackNumber);
|
||||
WORD virtual handleReset(PureEvent &pureEvent,PureDelay &pureDelay,BYTE tempoValue,BYTE trackNumber);
|
||||
WORD virtual handleController(PureEvent &pureEvent,PureDelay &pureDelay,PureController &pureController,BYTE trackNumber);
|
||||
WORD virtual handleScoreEnd(PureDelay &pureDelay);
|
||||
private:
|
||||
void fixChannel(PureEvent &pureEvent,BYTE trackNumber);
|
||||
WORD writeInfoTrack(void);
|
||||
MidiData mMidiData;
|
||||
MidiTrack mMidiTrack;
|
||||
MidiHeader mMidiHeader;
|
||||
MidiDeltaTime mDeltaTime;
|
||||
WORD mNumTracks;
|
||||
};
|
||||
|
||||
inline
|
||||
WORD MUSConverter::isOkay(void)const
|
||||
{
|
||||
return (mMidiData.isOkay()&&MUSFile::isOkay());
|
||||
}
|
||||
|
||||
inline
|
||||
void MUSConverter::setTempo(WORD midiTempo)
|
||||
{
|
||||
mMidiHeader.deltaTempo(midiTempo);
|
||||
}
|
||||
|
||||
inline
|
||||
USHORT MUSConverter::getTempo(void)const
|
||||
{
|
||||
return mMidiHeader.deltaTempo();
|
||||
}
|
||||
|
||||
inline
|
||||
void MUSConverter::fixChannel(PureEvent &pureEvent,BYTE trackNumber)
|
||||
{
|
||||
if(15==trackNumber)pureEvent.channel(9);
|
||||
if(9==trackNumber)pureEvent.channel(15);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user