void SynthesizeData(const TrackModelState& state, AYM::TrackBuilder& track) override { if (0 == state.Quirk()) { if (0 == state.Line()) { Transposition = Data->Order->GetTransposition(state.Position()); } GetNewLineState(state, track); } SynthesizeChannelsData(track); }
void GetNewLineState(const TrackModelState& state, AYM::TrackBuilder& track) { if (0 == state.Line()) { std::for_each(PlayerState.begin(), PlayerState.end(), std::mem_fun_ref(&ChannelState::ResetBaseNoise)); } if (const Line::Ptr line = state.LineObject()) { for (uint_t chan = 0; chan != PlayerState.size(); ++chan) { if (const Cell::Ptr src = line->GetChannel(chan)) { GetNewChannelState(*src, PlayerState[chan], track); } } } }
virtual void SynthesizeData(const TrackModelState& state, AYM::TrackBuilder& track) { if (0 == state.Quirk()) { GetNewLineState(state, track); } SynthesizeChannelsData(track); }
void SynthesizeData(const TrackModelState& state, DAC::TrackBuilder& track) override { SynthesizeChannelsData(track); if (0 == state.Quirk()) { GetNewLineState(state, track); } }
void GetNewLineState(const TrackModelState& state, AYM::TrackBuilder& track) { if (const Line::Ptr line = state.LineObject()) { for (uint_t chan = 0; chan != PlayerState.size(); ++chan) { if (const Cell::Ptr src = line->GetChannel(chan)) { GetNewChannelState(*src, PlayerState[chan], track); } } } }
void GetNewLineState(const TrackModelState& state, DAC::TrackBuilder& track) { if (const auto line = state.LineObject()) { for (uint_t chan = 0; chan != CHANNELS_COUNT; ++chan) { if (const auto src = line->GetChannel(chan)) { DAC::ChannelDataBuilder builder = track.GetChannel(chan); GetNewChannelState(*src, Volumes[chan], builder); } } } }