MCPcopy Create free account
hub / github.com/HertzDevil/0CC-FamiTracker / SetupParser

Method SetupParser

Source/InstrumentEditorSeq.cpp:89–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89void CInstrumentEditorSeq::SetupParser() const // // //
90{
91 const auto MakeParser = [this] (sequence_t typ, seq_setting_t setting) -> std::unique_ptr<CSeqConversionBase> {
92 switch (typ) {
93 case sequence_t::Volume:
94 return std::make_unique<CSeqConversionDefault>(0, setting == SETTING_VOL_64_STEPS ? 0x3F : this->m_iMaxVolume);
95 case sequence_t::Arpeggio:
96 switch (setting) {
97 case SETTING_ARP_SCHEME: // // //
98 return std::make_unique<CSeqConversionArpScheme>(ARPSCHEME_MIN);
99 case SETTING_ARP_FIXED:
100 return std::make_unique<CSeqConversionArpFixed>();
101 default:
102 return std::make_unique<CSeqConversionDefault>(-NOTE_COUNT, NOTE_COUNT);
103 }
104 case sequence_t::Pitch: case sequence_t::HiPitch:
105 return std::make_unique<CSeqConversionDefault>(-128, 127);
106 case sequence_t::DutyCycle:
107 if (this->m_iInstType == INST_S5B)
108 return std::make_unique<CSeqConversion5B>();
109 return std::make_unique<CSeqConversionDefault>(0, this->m_iMaxDuty);
110 }
111 DEBUG_BREAK(); return nullptr;
112 };
113
114 auto pConv = MakeParser(m_pSequence->GetSequenceType(), m_pSequence->GetSetting());
115 m_pSequenceEditor->SetConversion(*pConv); // // //
116 m_pParser->SetSequence(m_pSequence);
117 m_pParser->SetConversion(std::move(pConv));
118}
119
120void CInstrumentEditorSeq::UpdateSequenceString(bool Changed) // // //
121{

Callers

nothing calls this directly

Calls 4

GetSequenceTypeMethod · 0.80
GetSettingMethod · 0.80
SetConversionMethod · 0.45
SetSequenceMethod · 0.45

Tested by

no test coverage detected