*/
class Tie_engraver : public Engraver
{
+ bool done_;
PQueue<CHead_melodic_tuple> past_notes_pq_;
Moment end_mom_;
Moment next_end_mom_;
virtual void do_pre_move_processing ();
virtual void acknowledge_element (Score_element_info);
virtual bool do_try_music (Music*);
- void deprecated_process_music ();
virtual void process_acknowledged ();
void typeset_tie (Score_element*);
public:
}
}
-void
-Tie_engraver::deprecated_process_music ()
-{
-}
-
void
Tie_engraver::process_acknowledged ()
{
- if (tie_p_arr_.size ())
- return;
-
- if (req_l_)
+ if (req_l_ && !done_)
{
Moment now = now_mom ();
stopped_heads_.clear ();
while (past_notes_pq_.size ()
&& past_notes_pq_.front ().end_ == now)
stopped_heads_.push (past_notes_pq_.get ());
+ done_ = true;
+ return;
}
+
if (req_l_)
{
now_heads_.sort (CHead_melodic_tuple::pitch_compare);
set_melisma (false);
}
req_l_ = 0;
+ done_ = false;
Moment now = now_mom ();
while (past_notes_pq_.size () && past_notes_pq_.front ().end_ < now)
past_notes_pq_.delmin ();