*/
#include "score-performer.hh"
-#include "midi-def.hh"
+
#include "audio-column.hh"
#include "audio-item.hh"
#include "performance.hh"
#include "string-convert.hh"
#include "warn.hh"
#include "context-def.hh"
+#include "output-def.hh"
-
-
-ENTER_DESCRIPTION(Score_performer,
+ADD_TRANSLATOR (Score_performer,
/* descr */ "",
/* creats*/ "",
/* accepts */ "",
void
Score_performer::play_element (Audio_element * p)
{
- if (Audio_item * i=dynamic_cast<Audio_item *> (p))
+ if (Audio_item * i = dynamic_cast<Audio_item *> (p))
{
audio_column_->add_audio_item (i);
}
{
audio_column_ = new Audio_column (m);
play_element (audio_column_);
- recurse_down_translators (daddy_context_, &Translator::start_translation_timestep, true);
+ recurse_over_translators (context (), &Translator::start_translation_timestep, UP);
}
-
+void
+Score_performer::finish ()
+{
+ recurse_over_translators (context (), &Translator::finalize, UP);
+}
+
void
Score_performer::one_time_step ()
{
- recurse_down_performers (daddy_context_, &Performer::process_music, false);
- recurse_down_performers (daddy_context_, &Performer::do_announces, true);
- recurse_down_translators (daddy_context_, &Translator::stop_translation_timestep, false);
+ recurse_over_translators (context (), &Performer::process_music, UP);
+ recurse_over_translators (context (), &Performer::do_announces, UP);
+ recurse_over_translators (context (), &Translator::stop_translation_timestep, UP);
}
int
Score_performer::get_tempo () const
{
- return performance_->midi_->get_tempo (Moment (Rational (1, 4)));
+ return ::get_tempo (performance_->midi_, Moment (Rational (1, 4)));
}
Score_performer::get_output ()
{
Music_output * o = performance_;
- performance_ =0;
+ performance_ = 0;
return o;
}
Score_performer::initialize ()
{
performance_ = new Performance;
- performance_->midi_ = dynamic_cast<Midi_def*> (get_output_def ());
+ performance_->midi_ = get_output_def ();
Translator_group::initialize ();
}