first attempt at adding new SMPTE formats, moving SMPTE options to menu, adding video pullup selections, fixing SMPTE save/recall
git-svn-id: svn://localhost/ardour2/trunk@920 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -214,6 +214,30 @@
|
||||
<menuitem action='FileHeaderFormatCAF'/>
|
||||
</menu>
|
||||
</menu>
|
||||
<menu action='SMPTE'>
|
||||
<menuitem action='Smpte23976'/>
|
||||
<menuitem action='Smpte24'/>
|
||||
<menuitem action='Smpte24976'/>
|
||||
<menuitem action='Smpte25'/>
|
||||
<menuitem action='Smpte2997drop'/>
|
||||
<menuitem action='Smpte2997'/>
|
||||
<menuitem action='Smpte30drop'/>
|
||||
<menuitem action='Smpte30'/>
|
||||
<menuitem action='Smpte5994'/>
|
||||
<menuitem action='Smpte60'/>
|
||||
</menu>
|
||||
<menu action='Pullup'>
|
||||
<menuitem action='PullupPlus4Plus1'/>
|
||||
<menuitem action='PullupPlus4'/>
|
||||
<menuitem action='PullupPlus4Minus1'/>
|
||||
<menuitem action='PullupPlus1'/>
|
||||
<menuitem action='PullupNone'/>
|
||||
<menuitem action='PullupMinus1'/>
|
||||
<menuitem action='PullupMinus4Plus1'/>
|
||||
<menuitem action='PullupMinus4'/>
|
||||
<menuitem action='PullupMinus4Minus1'/>
|
||||
</menu>
|
||||
<separator/>
|
||||
<menu action='Autoconnect'>
|
||||
<menuitem action='AutoConnectNewTrackInputsToHardware'/>
|
||||
<separator/>
|
||||
|
||||
@@ -463,6 +463,7 @@ ARDOUR_UI::setup_session_options ()
|
||||
session_control_changed (Session::AutoReturn);
|
||||
session_control_changed (Session::AutoInput);
|
||||
session_control_changed (Session::Clicking);
|
||||
session_control_changed (Session::SmpteMode);
|
||||
|
||||
session->ControlChanged.connect (mem_fun (*this, &ARDOUR_UI::queue_session_control_changed));
|
||||
}
|
||||
@@ -555,7 +556,6 @@ ARDOUR_UI::session_control_changed (Session::ControlType t)
|
||||
case Session::CrossfadingModel:
|
||||
break;
|
||||
|
||||
|
||||
case Session::AutoPlay:
|
||||
map_some_session_state ("Transport", "ToggleAutoPlay", &Session::get_auto_play);
|
||||
break;
|
||||
|
||||
@@ -700,6 +700,7 @@ Editor::Editor (AudioEngine& eng)
|
||||
ControlProtocol::ZoomIn.connect (bind (mem_fun (*this, &Editor::temporal_zoom_step), false));
|
||||
ControlProtocol::ZoomOut.connect (bind (mem_fun (*this, &Editor::temporal_zoom_step), true));
|
||||
ControlProtocol::ScrollTimeline.connect (mem_fun (*this, &Editor::control_scroll));
|
||||
|
||||
constructed = true;
|
||||
instant_save ();
|
||||
|
||||
@@ -1025,6 +1026,10 @@ Editor::session_control_changed (Session::ControlType t)
|
||||
update_layering_model ();
|
||||
break;
|
||||
|
||||
case Session::SmpteMode:
|
||||
update_smpte_mode ();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1171,6 +1176,9 @@ Editor::connect_to_session (Session *t)
|
||||
session_connections.push_back (session->SMPTEOffsetChanged.connect (mem_fun(*this, &Editor::update_just_smpte)));
|
||||
session_connections.push_back (session->SMPTETypeChanged.connect (mem_fun(*this, &Editor::update_just_smpte)));
|
||||
|
||||
session_connections.push_back (session->SMPTETypeChanged.connect (mem_fun(*this, &Editor::update_smpte_mode)));
|
||||
session_connections.push_back (session->PullupChanged.connect (mem_fun(*this, &Editor::update_video_pullup)));
|
||||
|
||||
session_connections.push_back (session->tempo_map().StateChanged.connect (mem_fun(*this, &Editor::tempo_map_changed)));
|
||||
|
||||
edit_groups_changed ();
|
||||
@@ -1258,9 +1266,12 @@ Editor::connect_to_session (Session *t)
|
||||
}
|
||||
|
||||
/* xfade visibility state set from editor::set_state() */
|
||||
|
||||
update_crossfade_model ();
|
||||
update_layering_model ();
|
||||
|
||||
update_crossfade_model();
|
||||
update_layering_model();
|
||||
|
||||
update_smpte_mode();
|
||||
update_video_pullup();
|
||||
|
||||
handle_new_duration ();
|
||||
|
||||
@@ -4084,6 +4095,7 @@ Editor::restore_editing_space ()
|
||||
{
|
||||
mouse_mode_tearoff->set_visible (true);
|
||||
tools_tearoff->set_visible (true);
|
||||
|
||||
edit_pane.set_position (pre_maximal_pane_position);
|
||||
|
||||
unfullscreen();
|
||||
@@ -4137,6 +4149,87 @@ Editor::on_key_press_event (GdkEventKey* ev)
|
||||
return key_press_focus_accelerator_handler (*this, ev);
|
||||
}
|
||||
|
||||
void
|
||||
Editor::update_smpte_mode ()
|
||||
{
|
||||
ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_smpte_mode));
|
||||
|
||||
RefPtr<Action> act;
|
||||
|
||||
float frames = session->smpte_frames_per_second;
|
||||
bool drop = session->smpte_drop_frames;
|
||||
|
||||
if ((frames < 23.976 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte23976"));
|
||||
else if ((frames < 24 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte24"));
|
||||
else if ((frames < 24.976 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte24976"));
|
||||
else if ((frames < 25 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte25"));
|
||||
else if ((frames < 29.97 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997"));
|
||||
else if ((frames < 29.97 * 1.0005) && drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997drop"));
|
||||
else if ((frames < 30 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte30"));
|
||||
else if ((frames < 30 * 1.0005) && drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte30drop"));
|
||||
else if ((frames < 59.94 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte5994"));
|
||||
else if ((frames < 60 * 1.0005) && !drop)
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte60"));
|
||||
else
|
||||
cerr << "Unexpected SMPTE value (" << frames << (drop ? "drop" : "") << ") in update_smpte_mode. Menu is probably wrong\n" << endl;
|
||||
|
||||
|
||||
if (act) {
|
||||
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
|
||||
if (ract && !ract->get_active()) {
|
||||
ract->set_active (true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::update_video_pullup ()
|
||||
{
|
||||
ENSURE_GUI_THREAD (mem_fun(*this, &Editor::update_video_pullup));
|
||||
|
||||
RefPtr<Action> act;
|
||||
|
||||
float pullup = session->video_pullup;
|
||||
|
||||
if ( pullup < (-4.1667 - 0.1) * 0.99) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1"));
|
||||
} else if ( pullup < (-4.1667) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4"));
|
||||
} else if ( pullup < (-4.1667 + 0.1) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1"));
|
||||
} else if ( pullup < (-0.1) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1"));
|
||||
} else if (pullup > (4.1667 + 0.1) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1"));
|
||||
} else if ( pullup > (4.1667) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4"));
|
||||
} else if ( pullup > (4.1667 - 0.1) * 0.99) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1"));
|
||||
} else if ( pullup > (0.1) * 0.99 ) {
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1"));
|
||||
} else
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupNone"));
|
||||
|
||||
|
||||
if (act) {
|
||||
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
|
||||
if (ract && !ract->get_active()) {
|
||||
ract->set_active (true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::update_layering_model ()
|
||||
{
|
||||
@@ -4162,7 +4255,6 @@ Editor::update_layering_model ()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::update_crossfade_model ()
|
||||
{
|
||||
|
||||
@@ -301,6 +301,14 @@ class Editor : public PublicEditor
|
||||
void set_meter_falloff (int);
|
||||
void set_meter_hold (int32_t);
|
||||
|
||||
/* SMPTE timecode & video sync */
|
||||
|
||||
void smpte_fps_chosen (ARDOUR::Session::SmpteFormat format);
|
||||
void video_pullup_chosen (ARDOUR::Session::PullupFormat pullup);
|
||||
|
||||
void update_smpte_mode();
|
||||
void update_video_pullup();
|
||||
|
||||
/* xfades */
|
||||
|
||||
void toggle_auto_xfade ();
|
||||
@@ -310,8 +318,8 @@ class Editor : public PublicEditor
|
||||
void update_crossfade_model ();
|
||||
void set_crossfade_model (ARDOUR::CrossfadeModel);
|
||||
|
||||
/* layers */
|
||||
|
||||
/* layers */
|
||||
void set_layer_model (ARDOUR::Session::LayerModel);
|
||||
void update_layering_model ();
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ Editor::register_actions ()
|
||||
ActionManager::register_action (editor_actions, X_("Monitoring"), _("Monitoring"));
|
||||
ActionManager::register_action (editor_actions, X_("Autoconnect"), _("Autoconnect"));
|
||||
ActionManager::register_action (editor_actions, X_("Layering"), _("Layering"));
|
||||
ActionManager::register_action (editor_actions, X_("SMPTE"), _("SMPTE fps"));
|
||||
ActionManager::register_action (editor_actions, X_("Pullup"), _("Pullup / Pulldown"));
|
||||
ActionManager::register_action (editor_actions, X_("Metering"), _("Metering"));
|
||||
ActionManager::register_action (editor_actions, X_("MeteringFallOffRate"), _("Fall off rate"));
|
||||
ActionManager::register_action (editor_actions, X_("MeteringHoldTime"), _("Hold Time"));
|
||||
@@ -393,6 +395,31 @@ Editor::register_actions ()
|
||||
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerMoveAddHigher"), _("Most Recently Moved/Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), Session::MoveAddHigher));
|
||||
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerAddHigher"), _("Most Recently Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), Session::AddHigher));
|
||||
|
||||
RadioAction::Group smpte_group;
|
||||
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte23976"), _("23.976"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_23976));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte24"), _("24"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_24));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte24976"), _("24.976"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_24976));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte25"), _("25"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_25));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte2997"), _("29.97"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_2997));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte2997drop"), _("29.97 drop"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_2997drop));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte30"), _("30"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_30));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte30drop"), _("30 drop"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_30drop));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte5994"), _("59.94"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_5994));
|
||||
ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte60"), _("60"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), Session::smpte_60));
|
||||
|
||||
RadioAction::Group pullup_group;
|
||||
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupPlus4Plus1"), _("+4.1667% + 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Plus4Plus1));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupPlus4"), _("+4.1667%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Plus4));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupPlus4Minus1"), _("+4.1667% - 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Plus4Minus1));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupPlus1"), _("+ 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Plus1));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupNone"), _("None"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_None));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupMinus1"), _("- 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Minus1));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupMinus4Plus1"), _("-4.1667% + 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Minus4Plus1));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupMinus4"), _("-4.1667%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Minus4));
|
||||
ActionManager::register_radio_action (editor_actions, pullup_group, X_("PullupMinus4Minus1"), _("-4.1667% - 0.1%"), bind (mem_fun (*this, &Editor::video_pullup_chosen), Session::pullup_Minus4Minus1));
|
||||
|
||||
ActionManager::add_action_group (rl_actions);
|
||||
ActionManager::add_action_group (zoom_actions);
|
||||
ActionManager::add_action_group (mouse_mode_actions);
|
||||
@@ -492,6 +519,150 @@ Editor::set_layer_model (Session::LayerModel model)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::smpte_fps_chosen (Session::SmpteFormat format)
|
||||
{
|
||||
/* this is driven by a toggle on a radio group, and so is invoked twice,
|
||||
once for the item that became inactive and once for the one that became
|
||||
active.
|
||||
*/
|
||||
|
||||
if (session) {
|
||||
|
||||
float fps = 10;
|
||||
bool drop = false;
|
||||
|
||||
RefPtr<Action> act;
|
||||
|
||||
switch (format) {
|
||||
case Session::smpte_23976: {
|
||||
fps=23.976;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte23976"));
|
||||
} break;
|
||||
case Session::smpte_24: {
|
||||
fps=24;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte24"));
|
||||
} break;
|
||||
case Session::smpte_24976: {
|
||||
fps=24.976;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte24976"));
|
||||
} break;
|
||||
case Session::smpte_25: {
|
||||
fps=25;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte25"));
|
||||
} break;
|
||||
case Session::smpte_2997: {
|
||||
fps=29.97;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997"));
|
||||
} break;
|
||||
case Session::smpte_2997drop: {
|
||||
fps=29.97;
|
||||
drop = true;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997drop"));
|
||||
} break;
|
||||
case Session::smpte_30: {
|
||||
fps=30;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte30"));
|
||||
} break;
|
||||
case Session::smpte_30drop: {
|
||||
fps=30;
|
||||
drop = true;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte30drop"));
|
||||
} break;
|
||||
case Session::smpte_5994: {
|
||||
fps=59.94;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte5994"));
|
||||
} break;
|
||||
case Session::smpte_60: {
|
||||
fps=60;
|
||||
drop = false;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("Smpte60"));
|
||||
} break;
|
||||
default:
|
||||
cerr << "Editor received unexpected smpte type" << endl;
|
||||
}
|
||||
|
||||
if (act) {
|
||||
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
|
||||
if (ract && ract->get_active()) {
|
||||
session->set_smpte_type (fps, drop);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::video_pullup_chosen (Session::PullupFormat pullup)
|
||||
{
|
||||
/* this is driven by a toggle on a radio group, and so is invoked twice,
|
||||
once for the item that became inactive and once for the one that became
|
||||
active.
|
||||
*/
|
||||
|
||||
if (session) {
|
||||
|
||||
RefPtr<Action> act;
|
||||
|
||||
float pull = 0.0;
|
||||
|
||||
switch (pullup) {
|
||||
case Session::pullup_Plus4Plus1:{
|
||||
pull = 4.1667 + 0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1"));
|
||||
} break;
|
||||
case Session::pullup_Plus4:{
|
||||
pull = 4.1667;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4"));
|
||||
} break;
|
||||
case Session::pullup_Plus4Minus1:{
|
||||
pull = 4.1667 - 0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1"));
|
||||
} break;
|
||||
case Session::pullup_Plus1:{
|
||||
pull = 0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1"));
|
||||
} break;
|
||||
case Session::pullup_None:{
|
||||
pull = 0.0;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupNone"));
|
||||
} break;
|
||||
case Session::pullup_Minus1:{
|
||||
pull = -0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1"));
|
||||
} break;
|
||||
case Session::pullup_Minus4Plus1:{
|
||||
pull = -4.1667 + 0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1"));
|
||||
} break;
|
||||
case Session::pullup_Minus4:{
|
||||
pull = -4.1667;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4"));
|
||||
} break;
|
||||
case Session::pullup_Minus4Minus1:{
|
||||
pull = -4.1667 - 0.1;
|
||||
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1"));
|
||||
} break;
|
||||
default:
|
||||
cerr << "Session received unexpected pullup type" << endl;
|
||||
}
|
||||
|
||||
if (act) {
|
||||
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
|
||||
if (ract && ract->get_active()) {
|
||||
session->set_video_pullup ( pull );
|
||||
}
|
||||
} else cerr << "Editor::video_pullup_chosen could not find action to match pullup." << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::set_crossfade_model (CrossfadeModel model)
|
||||
{
|
||||
|
||||
@@ -152,7 +152,6 @@ OptionEditor::set_session (Session *s)
|
||||
click_emphasis_path_entry.set_sensitive (false);
|
||||
session_raid_entry.set_sensitive (false);
|
||||
|
||||
smpte_fps_combo.set_sensitive (false);
|
||||
short_xfade_slider.set_sensitive (false);
|
||||
smpte_offset_negative_button.set_sensitive (false);
|
||||
|
||||
@@ -165,28 +164,9 @@ OptionEditor::set_session (Session *s)
|
||||
click_path_entry.set_sensitive (true);
|
||||
click_emphasis_path_entry.set_sensitive (true);
|
||||
session_raid_entry.set_sensitive (true);
|
||||
smpte_fps_combo.set_sensitive (true);
|
||||
short_xfade_slider.set_sensitive (true);
|
||||
smpte_offset_negative_button.set_sensitive (true);
|
||||
|
||||
if (!s->smpte_drop_frames) {
|
||||
// non-drop frames
|
||||
if (s->smpte_frames_per_second == 24.0)
|
||||
smpte_fps_combo.set_active_text (_("24 FPS"));
|
||||
else if (s->smpte_frames_per_second == 25.0)
|
||||
smpte_fps_combo.set_active_text (_("25 FPS"));
|
||||
else if (s->smpte_frames_per_second == 30.0)
|
||||
smpte_fps_combo.set_active_text (_("30 FPS"));
|
||||
else
|
||||
smpte_fps_combo.set_active_text (_("???"));
|
||||
} else {
|
||||
// drop frames
|
||||
if (floor(s->smpte_frames_per_second) == 29.0)
|
||||
smpte_fps_combo.set_active_text (_("30 FPS drop"));
|
||||
else
|
||||
smpte_fps_combo.set_active_text (_("???"));
|
||||
}
|
||||
|
||||
smpte_offset_clock.set_session (s);
|
||||
smpte_offset_clock.set (s->smpte_offset (), true);
|
||||
|
||||
@@ -352,15 +332,6 @@ OptionEditor::setup_sync_options ()
|
||||
HBox* hbox;
|
||||
vector<string> dumb;
|
||||
|
||||
dumb.clear ();
|
||||
dumb.push_back (X_("24 FPS"));
|
||||
dumb.push_back (X_("25 FPS"));
|
||||
dumb.push_back (X_("30 FPS drop"));
|
||||
dumb.push_back (X_("30 FPS non-drop"));
|
||||
|
||||
set_popdown_strings (smpte_fps_combo, dumb);
|
||||
smpte_fps_combo.signal_changed().connect (mem_fun(*this, &OptionEditor::smpte_fps_chosen));
|
||||
|
||||
smpte_offset_clock.set_mode (AudioClock::SMPTE);
|
||||
smpte_offset_clock.ValueChanged.connect (mem_fun(*this, &OptionEditor::smpte_offset_chosen));
|
||||
|
||||
@@ -368,19 +339,9 @@ OptionEditor::setup_sync_options ()
|
||||
|
||||
smpte_offset_negative_button.unset_flags (Gtk::CAN_FOCUS);
|
||||
|
||||
Label *smpte_fps_label = manage (new Label (_("SMPTE Frames/second")));
|
||||
Label *smpte_offset_label = manage (new Label (_("SMPTE Offset")));
|
||||
smpte_fps_label->set_name("OptionsLabel");
|
||||
smpte_offset_label->set_name("OptionsLabel");
|
||||
|
||||
hbox = manage (new HBox);
|
||||
hbox->set_border_width (5);
|
||||
hbox->set_spacing (10);
|
||||
hbox->pack_start (*smpte_fps_label, false, false);
|
||||
hbox->pack_start (smpte_fps_combo, false, false);
|
||||
|
||||
sync_packer.pack_start (*hbox, false, false);
|
||||
|
||||
hbox = manage (new HBox);
|
||||
hbox->set_border_width (5);
|
||||
hbox->set_spacing (10);
|
||||
@@ -401,24 +362,6 @@ OptionEditor::smpte_offset_negative_clicked ()
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
OptionEditor::smpte_fps_chosen ()
|
||||
{
|
||||
if (session) {
|
||||
string str = smpte_fps_combo.get_active_text();
|
||||
|
||||
if (str == X_("24 FPS")) {
|
||||
session->set_smpte_type (24.0, false);
|
||||
} else if (str == X_("25 FPS")) {
|
||||
session->set_smpte_type (25.0, false);
|
||||
} else if (str == X_("30 FPS drop")) {
|
||||
session->set_smpte_type (29.97, true);
|
||||
} else if (str == X_("30 FPS non-drop")) {
|
||||
session->set_smpte_type (30.0, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
OptionEditor::smpte_offset_chosen()
|
||||
{
|
||||
|
||||
@@ -100,13 +100,11 @@ class OptionEditor : public Gtk::Dialog
|
||||
Gtk::VBox sync_packer;
|
||||
|
||||
Gtk::ComboBoxText slave_type_combo;
|
||||
Gtk::ComboBoxText smpte_fps_combo;
|
||||
AudioClock smpte_offset_clock;
|
||||
Gtk::CheckButton smpte_offset_negative_button;
|
||||
|
||||
void setup_sync_options ();
|
||||
|
||||
void smpte_fps_chosen ();
|
||||
void smpte_offset_chosen ();
|
||||
void smpte_offset_negative_clicked ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user