#include "ardour/rc_configuration.h"
#include "ardour/utils.h"
#include "ardour/dB.h"
+#include "ardour/session.h"
#include "option_editor.h"
#include "gui_thread.h"
_get (g),
_set (s)
{
- _button = manage (new CheckButton (n));
+ _button = manage (new CheckButton);
+ _label = manage (new Label);
+ _label->set_markup (n);
+ _button->add (*_label);
_button->set_active (_get ());
_button->signal_toggled().connect (sigc::mem_fun (*this, &BoolOption::toggled));
}
, _get (g)
, _set (s)
{
- _pix = ::get_icon (X_("fader_belt_h"));
- if (_pix == 0) {
- throw failed_constructor ();
- }
-
- _pix_desensitised = ::get_icon (X_("fader_belt_h_desensitised"));
- if (_pix_desensitised == 0) {
- throw failed_constructor ();
- }
-
- _db_slider = manage (new HSliderController (_pix,
- _pix_desensitised,
- &_db_adjustment,
- 115,
- false));
+ _db_slider = manage (new HSliderController (&_db_adjustment, 115, 18, false));
_label.set_text (n + ":");
_label.set_name (X_("OptionsLabel"));
add_widgets_to_page (p, &_label, &_box);
}
-ClockOption::ClockOption (string const & i, string const & n, sigc::slot<framecnt_t> g, sigc::slot<bool, framecnt_t> s)
+ClockOption::ClockOption (string const & i, string const & n, sigc::slot<std::string> g, sigc::slot<bool, std::string> s)
: Option (i, n)
- , _clock (X_("timecode-offset"), false, X_(""), true, false, true, false)
+ , _clock (X_("timecode-offset"), true, X_(""), true, false, true, false)
, _get (g)
, _set (s)
{
void
ClockOption::set_state_from_config ()
{
- _clock.set (_get (), true);
+ Timecode::Time TC;
+ framepos_t when;
+ if (!Timecode::parse_timecode_format(_get(), TC)) {
+ _clock.set (0, true);
+ }
+ TC.rate = _session->frames_per_timecode_frame();
+ TC.drop = _session->timecode_drop_frames();
+ _session->timecode_to_sample(TC, when, false, false);
+ if (TC.negative) { when=-when; }
+ _clock.set (when, true);
}
void
ClockOption::save_clock_time ()
{
- _set (_clock.current_time());
+ Timecode::Time TC;
+ _session->sample_to_timecode(_clock.current_time(), TC, false, false);
+ _set (Timecode::timecode_format_time(TC));
}
void
void
ClockOption::set_session (Session* s)
{
+ _session = s;
_clock.set_session (s);
}
using namespace Notebook_Helpers;
set_default_size (300, 300);
- set_wmclass (X_("ardour_preferences"), PROGRAM_NAME);
+ // set_wmclass (X_("ardour_preferences"), PROGRAM_NAME);
set_name ("Preferences");
add_events (Gdk::KEY_PRESS_MASK | Gdk::KEY_RELEASE_MASK);