, dim_control (0)
, solo_boost_adjustment (1.0, 1.0, 3.0, 0.01, 0.1) // upper and lower will be reset to match model
, solo_boost_control (0)
- , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1) // upper and lower will be reset to match model
+ , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1)
, solo_cut_control (0)
, solo_in_place_button (solo_model_group, _("SiP"))
, afl_button (solo_model_group, _("AFL"))
/* Dim */
- dim_control = new VolumeController (little_knob_pixbuf, &dim_adjustment, false, 30, 30);
+ dim_control = new MotionFeedback (little_knob_pixbuf, MotionFeedback::Rotary, "", &dim_adjustment, false, 30, 30);
HBox* dim_packer = manage (new HBox);
dim_packer->show ();
/* Solo Boost */
- solo_boost_control = new VolumeController (little_knob_pixbuf, &solo_boost_adjustment, false, 30, 30);
+ solo_boost_control = new MotionFeedback (little_knob_pixbuf, MotionFeedback::Rotary, "", &solo_boost_adjustment, false, 30, 30);
HBox* solo_packer = manage (new HBox);
solo_packer->set_spacing (12);
/* Gain */
- gain_control = new VolumeController (big_knob_pixbuf, &gain_adjustment, false, 80, 80);
+ gain_control = new MotionFeedback (big_knob_pixbuf, MotionFeedback::Rotary, "", &gain_adjustment, false, 80, 80);
spin_label = manage (new Label (_("Gain")));
spin_packer = manage (new VBox);
namespace Gtkmm2ext {
class TearOff;
+ class MotionFeedback;
}
class VolumeController;
ChannelButtons _channel_buttons;
Gtk::Adjustment gain_adjustment;
- VolumeController* gain_control;
+ Gtkmm2ext::MotionFeedback* gain_control;
Gtk::Adjustment dim_adjustment;
- VolumeController* dim_control;
+ Gtkmm2ext::MotionFeedback* dim_control;
Gtk::Adjustment solo_boost_adjustment;
- VolumeController* solo_boost_control;
+ Gtkmm2ext::MotionFeedback* solo_boost_control;
Gtk::Adjustment solo_cut_adjustment;
VolumeController* solo_cut_control;
int subw, int subh)
: MotionFeedback (p, MotionFeedback::Rotary, "", adj, with_numeric, subw, subh)
- , adjustment (adj)
{
-
- adjustment = get_adjustment(); // in case null was passed in
- adjustment->signal_value_changed().connect(mem_fun (*this,&VolumeController::adjustment_value_changed));
+ get_adjustment()->signal_value_changed().connect (mem_fun (*this,&VolumeController::adjustment_value_changed));
}
void
}
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
}
}
- boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
+ boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
}
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
}
}
- boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
+ boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
}
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
}
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (ret.get(), "Region");
+#endif
return ret;
}
/* panning */
Pannable* p = new Pannable (_session);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (p, "Pannable");
+#endif
_pannable.reset (p);
/* input and output objects */
DEBUG_TRACE (DEBUG::Destruction, "Session::destroy() done\n");
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_list_ptrs ();
+#endif
}
void
mt->use_new_diskstream();
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (mt, "Track");
+#endif
track = boost::shared_ptr<MidiTrack>(mt);
{
at->use_new_diskstream();
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (at, "Track");
+#endif
track = boost::shared_ptr<AudioTrack>(at);
{
goto failure;
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (rt, "Route");
+#endif
boost::shared_ptr<Route> bus (rt);
{
delete rt;
return -1;
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (rt, "Route");
+#endif
boost::shared_ptr<Route> r (rt);
{
Glib::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
delete rt;
return -1;
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (rt, "Route");
+#endif
boost::shared_ptr<Route> r (rt);
{
Glib::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
return ret;
}
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (track, "Track");
+#endif
ret.reset (track);
} else {
Route* rt = new Route (*this, X_("toBeResetFroXML"));
if (rt->init () == 0 && rt->set_state (node, version) == 0) {
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (rt, "Route");
+#endif
ret.reset (rt);
} else {
delete rt;
track->set_diskstream (*i);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (track, "Track");
+#endif
ret.reset (track);
} else {
Route* rt = new Route (*this, X_("toBeResetFroXML"));
if (rt->init () == 0 && rt->set_state (node, version) == 0) {
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
boost_debug_shared_ptr_mark_interesting (rt, "Route");
+#endif
ret.reset (rt);
} else {
delete rt;
SourceFactory::createSilent (Session& s, const XMLNode& node, framecnt_t nframes, float sr)
{
Source* src = new SilentFileSource (s, node, nframes, sr);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
// no analysis data - the file is non-existent
SourceCreated (ret);
try {
Source* src = new SndFileSource (s, node);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (setup_peakfile (ret, defer_peaks)) {
return boost::shared_ptr<Source>();
/* this is allowed to throw */
Source *src = new CoreAudioSource (s, node);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (setup_peakfile (ret, defer_peaks)) {
} else if (type == DataType::MIDI) {
boost::shared_ptr<SMFSource> src (new SMFSource (s, node));
src->load_model (true, true);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
src->check_for_analysis_data_on_disk ();
SourceCreated (src);
return src;
try {
Source* src = new SndFileSource (s, path, chn, flags);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (setup_peakfile (ret, defer_peaks)) {
#ifdef USE_COREAUDIO_FOR_FILES
Source* src = new CoreAudioSource (s, path, chn, flags);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (setup_peakfile (ret, defer_peaks)) {
return boost::shared_ptr<Source>();
SMFSource* src = new SMFSource (s, path, SMFSource::Flag(0));
src->load_model (true, true);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (announce) {
(destructive
? Source::Flag (SndFileSource::default_writable_flags | Source::Destructive)
: SndFileSource::default_writable_flags));
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
boost::shared_ptr<Source> ret (src);
if (setup_peakfile (ret, defer_peaks)) {
// XXX writable flags should belong to MidiSource too
boost::shared_ptr<SMFSource> src (new SMFSource (s, path, SndFileSource::default_writable_flags));
src->load_model (true, true);
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
// boost_debug_shared_ptr_mark_interesting (src, "Source");
+#endif
// no analysis data - this is a new file
void boost_debug_shared_ptr_mark_interesting (void* ptr, const char* type);
void boost_debug_list_ptrs ();
+void boost_debug_shared_ptr_show_live_debugging (bool yn);
#endif /* __pbd_boost_debug_h__ */