stuff-from-scratch/plugins/music/src/midi/MetaMidiEvent.cpp
2023-12-21 09:18:44 +00:00

100 lines
1.9 KiB
C++

#include "MetaMidiEvent.h"
MetaMidiEvent::MetaMidiEvent()
: MidiEvent(),
mType(Type::UNSET),
mLabel(),
mValue(0)
{
}
Ptr<MetaMidiEvent> MetaMidiEvent::Create()
{
return std::make_unique<MetaMidiEvent>();
}
void MetaMidiEvent::SetType(char c)
{
switch (c)
{
case META_SEQ_NUM:
mType = Type::SEQ_NUM;
break;
case META_TEXT:
mType = Type::TEXT;
break;
case META_COPYRIGHT:
mType = Type::COPYRIGHT;
break;
case META_TRACK_NAME:
mType = Type::TRACK_NAME;
break;
case META_INSTRUMENT_NAME:
mType = Type::INSTRUMENT_NAME;
break;
case META_LYRIC:
mType = Type::LYRIC;
break;
case META_MARKER:
mType = Type::MARKER;
break;
case META_CUE_POINT:
mType = Type::CUE_POINT;
break;
case META_CHANNEL_PREFIX:
mType = Type::CHANNEL_PREFIX;
break;
case META_END_TRACK:
mType = Type::END_TRACK;
break;
case META_SET_TEMPO:
mType = Type::SET_TEMPO;
break;
case META_SMPTE_OFFSET:
mType = Type::SMPTE_OFFSET;
break;
case META_TIME_SIG:
mType = Type::TIME_SIG;
break;
case META_KEY_SIG:
mType = Type::KEY_SIG;
break;
case META_SEQ_CUSTOM:
mType = Type::SEQ_CUSTOM;
break;
default:
mType = Type::UNKNOWN;
mUnKnownMarker = c;
}
}
MetaMidiEvent::Type MetaMidiEvent::GetType() const
{
return mType;
}
void MetaMidiEvent::SetValue(int value)
{
mValue = value;
}
void MetaMidiEvent::SetLabel(const String& label)
{
mLabel = label;
}
void MetaMidiEvent::SetTimeSignature(const MidiTimeSignature& timeSig)
{
mTimeSig = timeSig;
}
void MetaMidiEvent::SetTimeCode(const MidiSmtpeTimecode& timeCode)
{
mTimecode = timeCode;
}
void MetaMidiEvent::SetKeySignature(const MidiKeySignature& keySig)
{
mKeySig = keySig;
}