constructed = true;
instant_save ();
+
+ setup_fade_images ();
}
Editor::~Editor()
items.push_back (SeparatorElem());
if (Profile->get_sae()) {
- items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::Linear)));
- items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::Fast)));
+
+ items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeLinear)));
+ items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeFast)));
+
} else {
- items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::Linear)));
- items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::Fast)));
- items.push_back (MenuElem (_("Slow"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::LogB)));
- items.push_back (MenuElem (_("Fast"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::LogA)));
- items.push_back (MenuElem (_("Fastest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), AudioRegion::Slow)));
+
+ items.push_back (
+ ImageMenuElem (
+ _("Linear"),
+ *_fade_in_images[FadeLinear],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeLinear)
+ )
+ );
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Slowest"),
+ *_fade_in_images[FadeFast],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeFast)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Slow"),
+ *_fade_in_images[FadeLogB],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeLogB)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Fast"),
+ *_fade_in_images[FadeLogA],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeLogA)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Fastest"),
+ *_fade_in_images[FadeSlow],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeSlow)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
}
break;
items.push_back (SeparatorElem());
if (Profile->get_sae()) {
- items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::Linear)));
- items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::Slow)));
+ items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeLinear)));
+ items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeSlow)));
} else {
- items.push_back (MenuElem (_("Linear"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::Linear)));
- items.push_back (MenuElem (_("Slowest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::Slow)));
- items.push_back (MenuElem (_("Slow"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::LogA)));
- items.push_back (MenuElem (_("Fast"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::LogB)));
- items.push_back (MenuElem (_("Fastest"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), AudioRegion::Fast)));
+
+ items.push_back (
+ ImageMenuElem (
+ _("Linear"),
+ *_fade_out_images[FadeLinear],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeLinear)
+ )
+ );
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Slowest"),
+ *_fade_out_images[FadeFast],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeSlow)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Slow"),
+ *_fade_out_images[FadeLogB],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeLogA)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Fast"),
+ *_fade_out_images[FadeLogA],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeLogB)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
+
+ items.push_back (
+ ImageMenuElem (
+ _("Fastest"),
+ *_fade_out_images[FadeSlow],
+ sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeFast)
+ ));
+
+ dynamic_cast<ImageMenuItem*>(&items.back())->set_always_show_image ();
}
break;
change_region_layering_order (frame);
}
}
+
+void
+Editor::setup_fade_images ()
+{
+ _fade_in_images[FadeLinear] = new Gtk::Image (get_icon_path (X_("crossfade-in-linear")));
+ _fade_in_images[FadeFast] = new Gtk::Image (get_icon_path (X_("crossfade-in-short-cut")));
+ _fade_in_images[FadeLogB] = new Gtk::Image (get_icon_path (X_("crossfade-in-slow-cut")));
+ _fade_in_images[FadeLogA] = new Gtk::Image (get_icon_path (X_("crossfade-in-fast-cut")));
+ _fade_in_images[FadeSlow] = new Gtk::Image (get_icon_path (X_("crossfade-in-long-cut")));
+
+ _fade_out_images[FadeLinear] = new Gtk::Image (get_icon_path (X_("crossfade-out-linear")));
+ _fade_out_images[FadeFast] = new Gtk::Image (get_icon_path (X_("crossfade-out-short-cut")));
+ _fade_out_images[FadeLogB] = new Gtk::Image (get_icon_path (X_("crossfade-out-slow-cut")));
+ _fade_out_images[FadeLogA] = new Gtk::Image (get_icon_path (X_("crossfade-out-fast-cut")));
+ _fade_out_images[FadeSlow] = new Gtk::Image (get_icon_path (X_("crossfade-out-long-cut")));
+}
+
_fade_in->clear ();
switch (shape) {
- case Linear:
+ case FadeLinear:
_fade_in->fast_simple_add (0.0, 0.0);
_fade_in->fast_simple_add (len, 1.0);
break;
- case Fast:
+ case FadeFast:
_fade_in->fast_simple_add (0, 0);
_fade_in->fast_simple_add (len * 0.389401, 0.0333333);
_fade_in->fast_simple_add (len * 0.629032, 0.0861111);
_fade_in->fast_simple_add (len, 1);
break;
- case Slow:
+ case FadeSlow:
_fade_in->fast_simple_add (0, 0);
_fade_in->fast_simple_add (len * 0.0207373, 0.197222);
_fade_in->fast_simple_add (len * 0.0645161, 0.525);
_fade_in->fast_simple_add (len, 1);
break;
- case LogA:
+ case FadeLogA:
_fade_in->fast_simple_add (0, 0);
_fade_in->fast_simple_add (len * 0.0737327, 0.308333);
_fade_in->fast_simple_add (len * 0.246544, 0.658333);
_fade_in->fast_simple_add (len, 1);
break;
- case LogB:
+ case FadeLogB:
_fade_in->fast_simple_add (0, 0);
_fade_in->fast_simple_add (len * 0.304147, 0.0694444);
_fade_in->fast_simple_add (len * 0.529954, 0.152778);
_fade_out->clear ();
switch (shape) {
- case Fast:
+ case FadeFast:
_fade_out->fast_simple_add (len * 0, 1);
_fade_out->fast_simple_add (len * 0.023041, 0.697222);
_fade_out->fast_simple_add (len * 0.0553, 0.483333);
_fade_out->fast_simple_add (len * 1, 0);
break;
- case LogA:
+ case FadeLogA:
_fade_out->fast_simple_add (len * 0, 1);
_fade_out->fast_simple_add (len * 0.228111, 0.988889);
_fade_out->fast_simple_add (len * 0.347926, 0.972222);
_fade_out->fast_simple_add (len * 1, 0);
break;
- case Slow:
+ case FadeSlow:
_fade_out->fast_simple_add (len * 0, 1);
_fade_out->fast_simple_add (len * 0.305556, 1);
_fade_out->fast_simple_add (len * 0.548611, 0.991736);
_fade_out->fast_simple_add (len * 1, 0);
break;
- case LogB:
+ case FadeLogB:
_fade_out->fast_simple_add (len * 0, 1);
_fade_out->fast_simple_add (len * 0.080645, 0.730556);
_fade_out->fast_simple_add (len * 0.277778, 0.289256);
_fade_out->fast_simple_add (len * 1, 0);
break;
- case Linear:
+ case FadeLinear:
_fade_out->fast_simple_add (len * 0, 1);
_fade_out->fast_simple_add (len * 1, 0);
break;
AudioRegion::set_default_fade_in ()
{
_fade_in_suspended = 0;
- set_fade_in (Linear, 64);
+ set_fade_in (FadeLinear, 64);
}
void
AudioRegion::set_default_fade_out ()
{
_fade_out_suspended = 0;
- set_fade_out (Linear, 64);
+ set_fade_out (FadeLinear, 64);
}
void
SessionEvent::Type _SessionEvent_Type;
TimecodeFormat _Session_TimecodeFormat;
Session::PullupFormat _Session_PullupFormat;
- AudioRegion::FadeShape _AudioRegion_FadeShape;
+ FadeShape _FadeShape;
Panner::LinkDirection _Panner_LinkDirection;
IOChange _IOChange;
AutomationType _AutomationType;
REGISTER_CLASS_ENUM (Source, Destructive);
REGISTER_BITS (_Source_Flag);
- REGISTER_CLASS_ENUM (AudioRegion, Linear);
- REGISTER_CLASS_ENUM (AudioRegion, Fast);
- REGISTER_CLASS_ENUM (AudioRegion, Slow);
- REGISTER_CLASS_ENUM (AudioRegion, LogA);
- REGISTER_CLASS_ENUM (AudioRegion, LogB);
- REGISTER (_AudioRegion_FadeShape);
+ REGISTER_ENUM (FadeLinear);
+ REGISTER_ENUM (FadeFast);
+ REGISTER_ENUM (FadeSlow);
+ REGISTER_ENUM (FadeLogA);
+ REGISTER_ENUM (FadeLogB);
+ REGISTER (_FadeShape);
REGISTER_CLASS_ENUM (Diskstream, Recordable);
REGISTER_CLASS_ENUM (Diskstream, Hidden);