void PTS::set_frequency_ttls(state& the_state) { // find the frequency informations... // and exchange the phase informations analogout* pts_aout=NULL; /* find a analogout section with suitable id */ state::iterator i=the_state.begin(); while(i!=the_state.end()) { analogout* aout=dynamic_cast<analogout*>(*i); if (aout!=NULL && aout->id==id) { if (pts_aout==NULL) { /* save the informations */ pts_aout=aout; } else { fprintf(stderr, "found another pts decade section, ignoring\n"); delete aout; } /* remove the analog out section */ the_state.erase(i++); } else ++i; } /* state members loop */ /* now, add the ttl information*/ if (pts_aout!=NULL) { phase_add_ttls(the_state, pts_aout->phase); if (pts_aout->frequency!=0) { if (frequency==0) { set_frequency(pts_aout->frequency); } /* different frequencies are forbidden */ else if (frequency!=pts_aout->frequency) { fprintf(stderr, "ignoring frequency %g at analogout %d\n",pts_aout->frequency,id); } } delete pts_aout; } else { /* because we use transparent mode, we have to set phase everywhere */ phase_add_ttls(the_state, phase); } }