*/
#include "performer.hh"
-#include "event.hh"
#include "audio-item.hh"
#include "audio-column.hh"
-#include "global-translator.hh"
+#include "global-context.hh"
#include "warn.hh"
-/**
-Convert evs to audio beams.
-*/
class Beam_performer : public Performer {
public:
- TRANSLATOR_DECLARATIONS(Beam_performer);
+ TRANSLATOR_DECLARATIONS (Beam_performer);
protected:
virtual bool try_music (Music *ev) ;
bool beam_;
};
+Beam_performer::Beam_performer ()
+{
+ beam_ = false;
+ start_ev_ = 0;
+ now_stop_ev_ = 0;
+}
+
void
Beam_performer::process_music ()
{
if (now_stop_ev_)
{
beam_ = false;
+ set_melisma (false);
}
if (start_ev_)
{
- if (beam_)
- {
- start_ev_->origin ()->warning (_ ("already have a beam"));
- return;
- }
-
beam_ = true;
set_melisma (true);
}
{
SCM b = get_property ("autoBeaming");
if (!to_boolean (b))
- daddy_trans_->set_property ("beamMelismaBusy", ml ? SCM_BOOL_T :SCM_BOOL_F);
+context ()->set_property ("beamMelismaBusy", ml ? SCM_BOOL_T :SCM_BOOL_F);
}
-
void
Beam_performer::start_translation_timestep ()
{
- if (beam_)
- {
- set_melisma (true);
- }
-
start_ev_ = 0;
now_stop_ev_ = 0;
}
-
-
bool
Beam_performer::try_music (Music *m)
{
if (m->is_mus_type ("beam-event"))
{
- Direction d = to_dir (m->get_mus_property ("span-direction"));
+ Direction d = to_dir (m->get_property ("span-direction"));
if (d == START)
{
start_ev_ = m;
}
- else if (d==STOP)
+ else if (d == STOP)
{
now_stop_ev_ = m;
}
return false;
}
-ENTER_DESCRIPTION(Beam_performer,"","",
+ADD_TRANSLATOR (Beam_performer,"","",
"beam-event","","","");
-Beam_performer::Beam_performer()
-{
- beam_ = false;
-}