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

Method ApplyChannelState

Source/ChannelHandler.cpp:201–217  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

199}
200
201void CChannelHandler::ApplyChannelState(const stChannelState &State)
202{
203 m_iInstrument = State.Instrument;
204 m_iDefaultVolume = m_iVolume = (State.Volume == MAX_VOLUME) ? VOL_COLUMN_MAX : (State.Volume << VOL_COLUMN_SHIFT);
205 m_iEchoBuffer = State.Echo;
206 if (m_iInstrument != MAX_INSTRUMENTS)
207 HandleInstrument(true, true);
208 if (State.Effect_LengthCounter >= 0)
209 HandleEffect({effect_t::VOLUME, static_cast<uint8_t>(State.Effect_LengthCounter)});
210 for (auto fx : enum_values<effect_t>())
211 if (auto param = State.Effect[value_cast(fx)]; param >= 0)
212 HandleEffect({fx, static_cast<uint8_t>(param)});
213 if (State.Effect[value_cast(effect_t::FDS_MOD_SPEED_HI)] >= 0x10)
214 HandleEffect({effect_t::FDS_MOD_SPEED_HI, static_cast<uint8_t>(State.Effect[value_cast(effect_t::FDS_MOD_SPEED_HI)])});
215 if (State.Effect_AutoFMMult >= 0)
216 HandleEffect({effect_t::FDS_MOD_DEPTH, static_cast<uint8_t>(State.Effect_AutoFMMult)});
217}
218
219std::string CChannelHandler::GetEffectString() const // // //
220{

Callers 1

LoadSoundStateMethod · 0.80

Calls 1

value_castFunction · 0.85

Tested by

no test coverage detected