summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_actions.cc
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2007-01-02 13:57:06 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2007-01-02 13:57:06 +0000
commit1bddf1bc884feedb5deb5c35f08c7b9730936dae (patch)
treebb8ef1d1fb866027a671ce3f641ee9475804c361 /gtk2_ardour/editor_actions.cc
parenta3a1e4b413776cf6f0d72be831a33d8a8e6048ae (diff)
General SMPTE fixes mostly relating to non-integer frame rates. Please Test. Fix for sometimes entering an invalid SMPTE format by CHANGING THE SESSION FILE. ****Warning. the SMPTE frame rate will be reset to 30 NDF if you load an old sessionardour2_broken/***. Calculate the HMS verbose canvas cursor properly. Fix incorrect SMPTE display in clocks/VCC. Standardise size of SMPTE display in editor clocks. Make the zoom controls smaller (anyone with some smaller icons?).
git-svn-id: svn://localhost/ardour2/trunk@1257 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_actions.cc')
-rw-r--r--gtk2_ardour/editor_actions.cc129
1 files changed, 55 insertions, 74 deletions
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index cc45d6b769..f99a828203 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -380,16 +380,16 @@ Editor::register_actions ()
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));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte23976"), _("23.976"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_23976));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte24"), _("24"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_24));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte24976"), _("24.976"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_24976));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte25"), _("25"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_25));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte2997"), _("29.97"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_2997));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte2997drop"), _("29.97 drop"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_2997drop));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte30"), _("30"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_30));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte30drop"), _("30 drop"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_30drop));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte5994"), _("59.94"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_5994));
+ ActionManager::register_radio_action (editor_actions, smpte_group, X_("Smpte60"), _("60"), bind (mem_fun (*this, &Editor::smpte_fps_chosen), smpte_60));
RadioAction::Group pullup_group;
@@ -502,33 +502,37 @@ Editor::update_smpte_mode ()
RefPtr<Action> act;
const char* action = 0;
- float frames = Config->get_smpte_frames_per_second();
- bool drop = Config->get_smpte_drop_frames();
-
- if ((frames < 23.976 * 1.0005) && !drop)
+ switch (Config->get_smpte_format()) {
+ case smpte_23976:
action = X_("Smpte23976");
- else if ((frames < 24 * 1.0005) && !drop)
+ break;
+ case smpte_24:
action = X_("Smpte24");
- else if ((frames < 24.976 * 1.0005) && !drop)
+ break;
+ case smpte_24976:
action = X_("Smpte24976");
- else if ((frames < 25 * 1.0005) && !drop)
+ break;
+ case smpte_25:
action = X_("Smpte25");
- else if ((frames < 29.97 * 1.0005) && !drop)
+ break;
+ case smpte_2997:
action = X_("Smpte2997");
- else if ((frames < 29.97 * 1.0005) && drop)
+ break;
+ case smpte_2997drop:
action = X_("Smpte2997drop");
- else if ((frames < 30 * 1.0005) && !drop)
+ break;
+ case smpte_30:
action = X_("Smpte30");
- else if ((frames < 30 * 1.0005) && drop)
+ break;
+ case smpte_30drop:
action = X_("Smpte30drop");
- else if ((frames < 59.94 * 1.0005) && !drop)
+ break;
+ case smpte_5994:
action = X_("Smpte5994");
- else if ((frames < 60 * 1.0005) && !drop)
+ break;
+ case smpte_60:
action = X_("Smpte60");
- else {
- fatal << string_compose (_("programming error: Unexpected SMPTE value (%1, drop = %2) in update_smpte_mode. Menu is probably wrong."),
- frames, drop) << endmsg;
- /*NOTREACHED*/
+ break;
}
act = ActionManager::get_action (X_("Editor"), action);
@@ -837,7 +841,7 @@ Editor::zoom_focus_chosen (ZoomFocus focus)
}
void
-Editor::smpte_fps_chosen (Session::SmpteFormat format)
+Editor::smpte_fps_chosen (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
@@ -846,62 +850,39 @@ Editor::smpte_fps_chosen (Session::SmpteFormat format)
if (session) {
- float fps = 10;
- bool drop = false;
-
RefPtr<Action> act;
switch (format) {
- case Session::smpte_23976: {
- fps=23.976;
- drop = false;
+ case smpte_23976:
act = ActionManager::get_action (X_("Editor"), X_("Smpte23976"));
- } break;
- case Session::smpte_24: {
- fps=24;
- drop = false;
+ break;
+ case smpte_24:
act = ActionManager::get_action (X_("Editor"), X_("Smpte24"));
- } break;
- case Session::smpte_24976: {
- fps=24.976;
- drop = false;
+ break;
+ case smpte_24976:
act = ActionManager::get_action (X_("Editor"), X_("Smpte24976"));
- } break;
- case Session::smpte_25: {
- fps=25;
- drop = false;
+ break;
+ case smpte_25:
act = ActionManager::get_action (X_("Editor"), X_("Smpte25"));
- } break;
- case Session::smpte_2997: {
- fps=29.97;
- drop = false;
+ break;
+ case smpte_2997:
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997"));
- } break;
- case Session::smpte_2997drop: {
- fps=29.97;
- drop = true;
+ break;
+ case smpte_2997drop:
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997drop"));
- } break;
- case Session::smpte_30: {
- fps=30;
- drop = false;
+ break;
+ case smpte_30:
act = ActionManager::get_action (X_("Editor"), X_("Smpte30"));
- } break;
- case Session::smpte_30drop: {
- fps=30;
- drop = true;
+ break;
+ case smpte_30drop:
act = ActionManager::get_action (X_("Editor"), X_("Smpte30drop"));
- } break;
- case Session::smpte_5994: {
- fps=59.94;
- drop = false;
+ break;
+ case smpte_5994:
act = ActionManager::get_action (X_("Editor"), X_("Smpte5994"));
- } break;
- case Session::smpte_60: {
- fps=60;
- drop = false;
+ break;
+ case smpte_60:
act = ActionManager::get_action (X_("Editor"), X_("Smpte60"));
- } break;
+ break;
default:
cerr << "Editor received unexpected smpte type" << endl;
}
@@ -909,7 +890,7 @@ Editor::smpte_fps_chosen (Session::SmpteFormat format)
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
- session->set_smpte_type (fps, drop);
+ session->set_smpte_format (format);
}
}
}
@@ -1081,8 +1062,8 @@ Editor::parameter_changed (const char* parameter_name)
update_punch_range_view (true);
} else if (PARAM_IS ("layer-model")) {
update_layering_model ();
- } else if (PARAM_IS ("smpte-frames-per-second") || PARAM_IS ("smpte-drop-frames")) {
- update_smpte_mode ();
+ } else if (PARAM_IS ("smpte-format")) {
+ update_smpte_mode ();
update_just_smpte ();
} else if (PARAM_IS ("video-pullup")) {
update_video_pullup ();