예제 #1
0
 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);
 }
예제 #2
0
파일: asc_supp.cpp 프로젝트: fgroen/zxtune
 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);
       }
     }
   }
 }
예제 #3
0
파일: asc_supp.cpp 프로젝트: fgroen/zxtune
 virtual void SynthesizeData(const TrackModelState& state, AYM::TrackBuilder& track)
 {
   if (0 == state.Quirk())
   {
     GetNewLineState(state, track);
   }
   SynthesizeChannelsData(track);
 }
예제 #4
0
 void SynthesizeData(const TrackModelState& state, DAC::TrackBuilder& track) override
 {
   SynthesizeChannelsData(track);
   if (0 == state.Quirk())
   {
     GetNewLineState(state, track);
   }
 }
예제 #5
0
파일: pt2_supp.cpp 프로젝트: fgroen/zxtune
 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);
       }
     }
   }
 }
예제 #6
0
 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);
       }
     }
   }
 }