summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_ui.cc17
-rw-r--r--gtk2_ardour/ardour_ui2.cc5
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc4
-rw-r--r--gtk2_ardour/au_pluginui.mm2
-rw-r--r--gtk2_ardour/audio_clock.cc26
-rw-r--r--gtk2_ardour/canvas-waveview.c2
-rw-r--r--gtk2_ardour/cocoacarbon.mm2
-rw-r--r--gtk2_ardour/editor_rulers.cc8
-rw-r--r--gtk2_ardour/export_video_dialog.cc4
-rw-r--r--gtk2_ardour/gain_meter.cc1
-rw-r--r--gtk2_ardour/group_tabs.cc4
-rw-r--r--gtk2_ardour/meter_patterns.cc61
-rw-r--r--gtk2_ardour/meter_patterns.h10
-rw-r--r--gtk2_ardour/meter_strip.cc20
-rw-r--r--gtk2_ardour/meterbridge.cc1
-rw-r--r--gtk2_ardour/midi_time_axis.cc7
-rw-r--r--gtk2_ardour/mixer_strip.cc20
-rw-r--r--gtk2_ardour/po/ru.po1441
-rw-r--r--gtk2_ardour/processor_box.cc8
-rw-r--r--gtk2_ardour/startup.cc36
-rw-r--r--gtk2_ardour/time_axis_view.cc1
-rw-r--r--gtk2_ardour/transcode_ffmpeg.cc14
-rw-r--r--gtk2_ardour/transcode_ffmpeg.h21
-rw-r--r--gtk2_ardour/transcode_video_dialog.cc4
-rw-r--r--gtk2_ardour/window_manager.h4
-rw-r--r--libs/ardour/ardour/midi_track.h4
-rw-r--r--libs/ardour/audio_track.cc5
-rw-r--r--libs/ardour/audio_unit.cc2
-rw-r--r--libs/ardour/audioengine.cc2
-rw-r--r--libs/ardour/io.cc4
-rw-r--r--libs/ardour/kmeterdsp.cc19
-rw-r--r--libs/ardour/ladspa_plugin.cc10
-rw-r--r--libs/ardour/lv2_plugin.cc54
-rw-r--r--libs/ardour/meter.cc4
-rw-r--r--libs/ardour/midi_diskstream.cc4
-rw-r--r--libs/ardour/midi_track.cc10
-rw-r--r--libs/ardour/plugin.cc2
-rw-r--r--libs/ardour/plugin_insert.cc6
-rw-r--r--libs/ardour/route.cc11
-rw-r--r--libs/ardour/track.cc48
-rw-r--r--libs/ardour/vst_plugin.cc4
-rw-r--r--libs/audiographer/audiographer/debug_utils.h3
-rw-r--r--libs/evoral/evoral/PatchChange.hpp2
-rw-r--r--libs/evoral/src/Sequence.cpp4
-rw-r--r--libs/gtkmm2ext/fastmeter.cc11
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/fastmeter.h2
-rw-r--r--libs/gtkmm2ext/persistent_tooltip.cc3
-rw-r--r--libs/pbd/ffs.cc35
-rw-r--r--libs/pbd/pathexpand.cc3
-rw-r--r--libs/pbd/pbd/ffs.h27
-rw-r--r--libs/pbd/pbd/stl_delete.h10
-rw-r--r--libs/pbd/wscript1
-rw-r--r--msvc_extra_headers/je-test.h66
-rw-r--r--wscript20
54 files changed, 1281 insertions, 818 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 91dbd999df..9577444120 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -37,9 +37,8 @@
#include <unistd.h>
#include <time.h>
-#include <sys/resource.h>
-#include <sys/types.h>
-#include <sys/sysctl.h>
+#include <glib.h>
+#include <glib/gstdio.h>
#include <gtkmm/messagedialog.h>
#include <gtkmm/accelmap.h>
@@ -3398,15 +3397,23 @@ ARDOUR_UI::start_video_server (Gtk::Window* float_window, bool popup_msg)
if (icsd_docroot.empty()) {icsd_docroot = X_("/");}
struct stat sb;
- if (!lstat (icsd_docroot.c_str(), &sb) == 0 || !S_ISDIR(sb.st_mode)) {
+ if (!g_lstat (icsd_docroot.c_str(), &sb) == 0 || !S_ISDIR(sb.st_mode)) {
warning << _("Specified docroot is not an existing directory.") << endmsg;
continue;
}
- if ( (!lstat (icsd_exec.c_str(), &sb) == 0)
+#ifndef WIN32
+ if ( (!g_lstat (icsd_exec.c_str(), &sb) == 0)
|| (sb.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)) == 0 ) {
warning << _("Given Video Server is not an executable file.") << endmsg;
continue;
}
+#else
+ if ( (!g_lstat (icsd_exec.c_str(), &sb) == 0)
+ || (sb.st_mode & (S_IXUSR)) == 0 ) {
+ warning << _("Given Video Server is not an executable file.") << endmsg;
+ continue;
+ }
+#endif
char **argp;
argp=(char**) calloc(9,sizeof(char*));
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 5a64e53140..50affa6c96 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -617,11 +617,10 @@ ARDOUR_UI::click_button_clicked (GdkEventButton* ev)
return false;
}
- RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("ToggleRCOptionsEditor"));
+ RefPtr<Action> act = ActionManager::get_action (X_("Window"), X_("toggle-rc-options-editor"));
assert (act);
- RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic (act);
- tact->set_active ();
+ act->activate();
rc_option_editor->set_current_page (_("Misc"));
return true;
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index 8c78d6494d..c0fd97cfd6 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -27,6 +27,10 @@
#include "ardour/audioengine.h"
#include "ardour/automation_watch.h"
+#ifdef interface
+#undef interface
+#endif
+
#include "actions.h"
#include "add_route_dialog.h"
#include "add_video_dialog.h"
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm
index 7bebcee84f..bbae272116 100644
--- a/gtk2_ardour/au_pluginui.mm
+++ b/gtk2_ardour/au_pluginui.mm
@@ -658,7 +658,7 @@ AUPluginUI::parent_cocoa_window ()
/* move the au_view down so that it doesn't overlap the top_box contents */
- NSPoint origin = { 0, a.height };
+ NSPoint origin = { 0, static_cast<CGFloat> (a.height) };
[au_view setFrameOrigin:origin];
[view addSubview:au_view positioned:NSWindowBelow relativeTo:nil];
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index a0b48b3557..12d3a1642f 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -997,18 +997,18 @@ AudioClock::set_slave_info ()
switch (sync_src) {
case JACK:
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
_right_layout->set_text ("");
break;
case MIDIClock:
if (slave) {
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
- _right_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _right_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, slave->approximate_current_delta()));
} else {
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, _("--pending--")));
_right_layout->set_text ("");
}
@@ -1020,21 +1020,21 @@ AudioClock::set_slave_info ()
TimecodeSlave* tcslave;
if ((tcslave = dynamic_cast<TimecodeSlave*>(_session->slave())) != 0) {
matching = (tcslave->apparent_timecode_format() == _session->config.get_timecode_format());
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span><span foreground=\"%3\">%4</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span><span foreground=\"%3\">%4</span></span>",
INFO_FONT_SIZE, sync_source_to_string(sync_src, true)[0], (matching?"green":"red"),
dynamic_cast<TimecodeSlave*>(slave)->approximate_current_position()));
- _right_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _right_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, slave->approximate_current_delta()));
}
} else {
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, _("--pending--")));
_right_layout->set_text ("");
}
break;
}
} else {
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"INT/%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "INT/%2</span></span>",
INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
_right_layout->set_text ("");
}
@@ -1079,17 +1079,17 @@ AudioClock::set_frames (framepos_t when, bool /*force*/)
sprintf (buf, "%" PRId64 "Hz", rate);
}
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2 </span><span foreground=\"green\">%3</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2 </span><span foreground=\"green\">%3</span></span>",
INFO_FONT_SIZE, _("SR"), buf));
float vid_pullup = _session->config.get_video_pullup();
if (vid_pullup == 0.0) {
- _right_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2 </span><span foreground=\"green\">off</span></span>",
+ _right_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2 </span><span foreground=\"green\">off</span></span>",
INFO_FONT_SIZE, _("Pull")));
} else {
sprintf (buf, _("%+.4f%%"), vid_pullup);
- _right_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%2 </span><span foreground=\"green\">%3</span></span>",
+ _right_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2 </span><span foreground=\"green\">%3</span></span>",
INFO_FONT_SIZE, _("Pull"), buf));
}
}
@@ -1233,11 +1233,11 @@ AudioClock::set_bbt (framepos_t when, bool /*force*/)
TempoMetric m (_session->tempo_map().metric_at (pos));
sprintf (buf, "%-5.1f", m.tempo().beats_per_minute());
- _left_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%3</span> <span foreground=\"green\">%2</span></span>",
+ _left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%3</span> <span foreground=\"green\">%2</span></span>",
INFO_FONT_SIZE, buf, _("Tempo")));
sprintf (buf, "%g/%g", m.meter().divisions_per_bar(), m.meter().note_divisor());
- _right_layout->set_markup (string_compose ("<span size=\"%1\">"TXTSPAN"%3</span> <span foreground=\"green\">%2</span></span>",
+ _right_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%3</span> <span foreground=\"green\">%2</span></span>",
INFO_FONT_SIZE, buf, _("Meter")));
}
}
diff --git a/gtk2_ardour/canvas-waveview.c b/gtk2_ardour/canvas-waveview.c
index 2080b208d8..51384c0fad 100644
--- a/gtk2_ardour/canvas-waveview.c
+++ b/gtk2_ardour/canvas-waveview.c
@@ -35,7 +35,7 @@
/* POSIX guarantees casting between void* and function pointers, ISO C doesn't
* We can work around warnings by going one step deeper in our casts
*/
-#ifdef _POSIX_VERSION
+#if defined(_POSIX_VERSION) || defined(__MINGW32__)
#define POSIX_FUNC_PTR_CAST(type, object) *((type*) &(object))
#endif // _POSIX_VERSION
diff --git a/gtk2_ardour/cocoacarbon.mm b/gtk2_ardour/cocoacarbon.mm
index 072008e9a1..76b92cb91f 100644
--- a/gtk2_ardour/cocoacarbon.mm
+++ b/gtk2_ardour/cocoacarbon.mm
@@ -112,7 +112,7 @@ set_language_preference ()
break;
}
}
- NSRange r = { 0, count };
+ NSRange r = { 0, static_cast<NSUInteger> (count) };
setenv ("LANGUAGE", [[[languages subarrayWithRange:r] componentsJoinedByString:@":"] UTF8String], 0);
cout << "LANGUAGE set to " << getenv ("LANGUAGE") << endl;
}
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index 2752f96553..a7883674cd 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -373,11 +373,11 @@ Editor::popup_ruler_menu (framepos_t where, ItemType t)
ruler_items.push_back (MenuElem (_("Timeline height")));
static_cast<MenuItem*>(&ruler_items.back())->set_sensitive(false);
ruler_items.push_back (CheckMenuElem (_("Large"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 6)));
- if (videotl_bar_height == 6) { static_cast<CheckMenuItem*>(&ruler_items.back())->set_active(true);}
+ if (videotl_bar_height == 6) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
ruler_items.push_back (CheckMenuElem (_("Normal"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 4)));
- if (videotl_bar_height == 4) { static_cast<CheckMenuItem*>(&ruler_items.back())->set_active(true);}
+ if (videotl_bar_height == 4) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
ruler_items.push_back (CheckMenuElem (_("Small"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 3)));
- if (videotl_bar_height == 3) { static_cast<CheckMenuItem*>(&ruler_items.back())->set_active(true);}
+ if (videotl_bar_height == 3) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
ruler_items.push_back (SeparatorElem ());
ruler_items.push_back (MenuElem (_("Align Video Track")));
@@ -385,7 +385,7 @@ Editor::popup_ruler_menu (framepos_t where, ItemType t)
ruler_items.push_back (CheckMenuElem (_("Lock")));
{
- CheckMenuItem* vtl_lock = static_cast<CheckMenuItem*>(&ruler_items.back());
+ Gtk::CheckMenuItem* vtl_lock = static_cast<Gtk::CheckMenuItem*>(&ruler_items.back());
vtl_lock->set_active(is_video_timeline_locked());
vtl_lock->signal_activate().connect (sigc::mem_fun(*this, &Editor::toggle_video_timeline_locked));
}
diff --git a/gtk2_ardour/export_video_dialog.cc b/gtk2_ardour/export_video_dialog.cc
index d51fd60e2b..7538c504f4 100644
--- a/gtk2_ardour/export_video_dialog.cc
+++ b/gtk2_ardour/export_video_dialog.cc
@@ -586,7 +586,7 @@ ExportVideoDialog::encode_pass (int pass)
}
std::string preset = preset_combo.get_active_text();
- FFSettings ffs ; /* = transcoder->default_encoder_settings(); */
+ TranscodeFfmpeg::FFSettings ffs ; /* = transcoder->default_encoder_settings(); */
ffs.clear();
if (fps_checkbox.get_active()) {
@@ -742,7 +742,7 @@ ExportVideoDialog::encode_pass (int pass)
transcoder->set_avoffset(av_offset / (double)_session->nominal_frame_rate());
}
- FFSettings meta = transcoder->default_meta_data();
+ TranscodeFfmpeg::FFSettings meta = transcoder->default_meta_data();
if (meta_checkbox.get_active()) {
ARDOUR::SessionMetadata * session_data = ARDOUR::SessionMetadata::Metadata();
if (session_data->year() > 0 ) {
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 36ed5e918e..1148c6b889 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -60,6 +60,7 @@ using namespace Gtkmm2ext;
using namespace Gtk;
using namespace std;
using Gtkmm2ext::Keyboard;
+using namespace ArdourMeter;
GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int fader_girth)
: gain_adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0.0, 1.0, 0.01, 0.1)
diff --git a/gtk2_ardour/group_tabs.cc b/gtk2_ardour/group_tabs.cc
index 1332d4ba10..b8d30dc989 100644
--- a/gtk2_ardour/group_tabs.cc
+++ b/gtk2_ardour/group_tabs.cc
@@ -42,7 +42,7 @@ GroupTabs::GroupTabs ()
, _dragging (0)
, _dragging_new_tab (0)
{
-
+ add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
}
GroupTabs::~GroupTabs ()
@@ -175,6 +175,8 @@ GroupTabs::on_motion_notify_event (GdkEventMotion* ev)
set_dirty ();
queue_draw ();
+ gdk_event_request_motions(ev);
+
return true;
}
diff --git a/gtk2_ardour/meter_patterns.cc b/gtk2_ardour/meter_patterns.cc
index f749927e9a..7818711922 100644
--- a/gtk2_ardour/meter_patterns.cc
+++ b/gtk2_ardour/meter_patterns.cc
@@ -35,18 +35,42 @@ using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
using namespace std;
-
+using namespace ArdourMeter;
static const int max_pattern_metric_size = 1026;
-sigc::signal<void> ResetAllPeakDisplays;
-sigc::signal<void,ARDOUR::Route*> ResetRoutePeakDisplays;
-sigc::signal<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
-sigc::signal<void> RedrawMetrics;
+sigc::signal<void> ArdourMeter::ResetAllPeakDisplays;
+sigc::signal<void,ARDOUR::Route*> ArdourMeter::ResetRoutePeakDisplays;
+sigc::signal<void,ARDOUR::RouteGroup*> ArdourMeter::ResetGroupPeakDisplays;
+sigc::signal<void> ArdourMeter::RedrawMetrics;
+
+sigc::signal<void, int, ARDOUR::RouteGroup*, ARDOUR::MeterType> ArdourMeter::SetMeterTypeMulti;
+
+namespace ArdourMeter {
+ typedef std::map<std::string,cairo_pattern_t*> TickPatterns;
+ typedef std::map<std::string,cairo_pattern_t*> MetricPatterns;
+}
-sigc::signal<void, int, ARDOUR::RouteGroup*, ARDOUR::MeterType> SetMeterTypeMulti;
+static ArdourMeter::TickPatterns ticks_patterns;
+static ArdourMeter::MetricPatterns metric_patterns;
-cairo_pattern_t*
+const std::string
+ArdourMeter::meter_type_string (ARDOUR::MeterType mt)
+{
+ switch (mt) {
+ case MeterPeak:
+ return _("Peak");
+ break;
+ case MeterKrms:
+ return _("RMS + Peak");
+ break;
+ default:
+ return _("???");
+ break;
+ }
+}
+
+static cairo_pattern_t*
meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
{
Glib::RefPtr<Gdk::Window> win (w.get_window());
@@ -195,7 +219,7 @@ meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
}
-cairo_pattern_t*
+static cairo_pattern_t*
meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
{
Glib::RefPtr<Gdk::Window> win (w.get_window());
@@ -340,11 +364,11 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
snprintf (buf, sizeof (buf), "%+2d", j->first);
pos = height - (gint) floor (height * fraction);
if (tickleft) {
- cairo_move_to(cr, width-2.5, pos + .5);
+ cairo_move_to(cr, width-1.5, pos + .5);
cairo_line_to(cr, width, pos + .5);
} else {
cairo_move_to(cr, 0, pos + .5);
- cairo_line_to(cr, 2.5, pos + .5);
+ cairo_line_to(cr, 1.5, pos + .5);
}
cairo_stroke (cr);
break;
@@ -374,7 +398,7 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
p = min (p, height - th);
p = max (p, 0);
- cairo_move_to (cr, width-4-tw, p);
+ cairo_move_to (cr, width-3-tw, p);
pango_cairo_show_layout (cr, layout->gobj());
}
}
@@ -407,10 +431,8 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
}
-typedef std::map<std::string,cairo_pattern_t*> TickPatterns;
-static TickPatterns ticks_patterns;
-
-gint meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mta)
+gint
+ArdourMeter::meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mta)
{
Glib::RefPtr<Gdk::Window> win (mta->get_window());
cairo_t* cr;
@@ -446,10 +468,8 @@ gint meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types
return true;
}
-typedef std::map<std::string,cairo_pattern_t*> MetricPatterns;
-static MetricPatterns metric_patterns;
-
-gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mma)
+gint
+ArdourMeter::meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mma)
{
Glib::RefPtr<Gdk::Window> win (mma->get_window());
cairo_t* cr;
@@ -485,7 +505,8 @@ gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> typ
return true;
}
-void meter_clear_pattern_cache(int which) {
+void
+ArdourMeter::meter_clear_pattern_cache(int which) {
MetricPatterns::iterator i = metric_patterns.begin();
TickPatterns::iterator j = ticks_patterns.begin();
diff --git a/gtk2_ardour/meter_patterns.h b/gtk2_ardour/meter_patterns.h
index a664f478f2..90ef4ec980 100644
--- a/gtk2_ardour/meter_patterns.h
+++ b/gtk2_ardour/meter_patterns.h
@@ -27,6 +27,9 @@
#include "gtkmm2ext/cairo_widget.h"
#include <sigc++/signal.h>
+
+namespace ArdourMeter {
+
extern sigc::signal<void> ResetAllPeakDisplays;
extern sigc::signal<void,ARDOUR::Route*> ResetRoutePeakDisplays;
extern sigc::signal<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
@@ -34,13 +37,14 @@ extern sigc::signal<void> RedrawMetrics;
extern sigc::signal<void, int, ARDOUR::RouteGroup*, ARDOUR::MeterType> SetMeterTypeMulti;
-cairo_pattern_t* meter_render_ticks (Gtk::Widget& w, std::vector<ARDOUR::DataType> types);
-cairo_pattern_t* meter_render_metrics (Gtk::Widget& w, std::vector<ARDOUR::DataType> types);
-
gint meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mta);
gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mma);
void meter_clear_pattern_cache(int which=7);
+const std::string meter_type_string (ARDOUR::MeterType);
+
+}
+
#endif
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index 88a946585a..44144114a4 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -52,6 +52,7 @@ using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
using namespace std;
+using namespace ArdourMeter;
PBD::Signal1<void,MeterStrip*> MeterStrip::CatchDeletion;
PBD::Signal0<void> MeterStrip::MetricChanged;
@@ -570,16 +571,19 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
_suspend_menu_callbacks = true;
- add_level_meter_item (items, group, _("Peak"), MeterPeak);
- add_level_meter_item (items, group, _("RMS + Peak"), MeterKrms);
+ add_level_meter_item (items, group, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
+ add_level_meter_item (items, group, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
+
+ MeterType cmt = _route->meter_type();
+ const std::string cmn = ArdourMeter::meter_type_string(cmt);
items.push_back (SeparatorElem());
- items.push_back (MenuElem (_("Change all in Group to Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
+ items.push_back (MenuElem (string_compose(_("Change all in Group to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 24b21656d1..cdecb36c7c 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -62,6 +62,7 @@ using namespace Gtk;
using namespace Glib;
using namespace Gtkmm2ext;
using namespace std;
+using namespace ArdourMeter;
using PBD::atoi;
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc
index a8fc9c3e60..3da5f11f10 100644
--- a/gtk2_ardour/midi_time_axis.cc
+++ b/gtk2_ardour/midi_time_axis.cc
@@ -19,8 +19,6 @@
#include <cstdlib>
#include <cmath>
-#include <strings.h> // for ffs(3)
-
#include <algorithm>
#include <string>
#include <vector>
@@ -28,6 +26,7 @@
#include <sigc++/bind.h>
#include "pbd/error.h"
+#include "pbd/ffs.h"
#include "pbd/stl_delete.h"
#include "pbd/whitespace.h"
#include "pbd/basename.h"
@@ -1491,7 +1490,7 @@ MidiTimeAxisView::playback_channel_mode_changed ()
_playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Play"), _("some")));
break;
case ForceChannel:
- _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Play"), _("all"), ffs (midi_track()->get_playback_channel_mask())));
+ _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Play"), _("all"), PBD::ffs (midi_track()->get_playback_channel_mask())));
break;
}
}
@@ -1507,7 +1506,7 @@ MidiTimeAxisView::capture_channel_mode_changed ()
_capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Rec"), _("some")));
break;
case ForceChannel:
- _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Rec"), _("all"), ffs (midi_track()->get_capture_channel_mask())));
+ _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Rec"), _("all"), PBD::ffs (midi_track()->get_capture_channel_mask())));
break;
}
}
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 17d714fd50..b6d4001e2d 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -71,6 +71,7 @@ using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
using namespace std;
+using namespace ArdourMeter;
int MixerStrip::scrollbar_height = 0;
PBD::Signal1<void,MixerStrip*> MixerStrip::CatchDeletion;
@@ -2132,8 +2133,8 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group tgroup;
items.push_back (SeparatorElem());
- add_level_meter_item_type (items, tgroup, _("Peak"), MeterPeak);
- add_level_meter_item_type (items, tgroup, _("RMS + Peak"), MeterKrms);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
int _strip_type;
if (_route->is_master()) {
@@ -2151,13 +2152,16 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
_strip_type = 1;
}
+ MeterType cmt = _route->meter_type();
+ const std::string cmn = ArdourMeter::meter_type_string(cmt);
+
items.push_back (SeparatorElem());
- items.push_back (MenuElem (_("Change all in Group to Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
+ items.push_back (MenuElem (string_compose(_("Change all in Group to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;
diff --git a/gtk2_ardour/po/ru.po b/gtk2_ardour/po/ru.po
index b724e52fc5..3c81be6c62 100644
--- a/gtk2_ardour/po/ru.po
+++ b/gtk2_ardour/po/ru.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Ardour 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-06-14 03:57+0400\n"
-"PO-Revision-Date: 2013-06-14 04:15+0300\n"
+"POT-Creation-Date: 2013-07-14 15:01+0400\n"
+"PO-Revision-Date: 2013-07-14 18:04+0300\n"
"Last-Translator: ÐлекÑандр Прокудин <alexandre.prokoudine@gmail.com>\n"
"Language-Team: руÑÑкий <>\n"
"Language: ru\n"
@@ -20,8 +20,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); 10<=4 && (n%100<10 || n"
-"%100>=20) ? 1 : 2);\n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"%100>=20) ? 1: 2);\n"
#: about.cc:122
msgid "Brian Ahr"
@@ -413,7 +413,7 @@ msgstr "%1 menu definition file not found"
msgid "%1 will not work without a valid ardour.menus file"
msgstr "%1 will not work without a valid ardour.menus file"
-#: add_route_dialog.cc:53 route_params_ui.cc:503
+#: add_route_dialog.cc:53 route_params_ui.cc:499
msgid "Add Track or Bus"
msgstr "Добавить дорожку или шину"
@@ -506,7 +506,7 @@ msgstr ""
"звуковые и MIDI-дорожки."
#: add_route_dialog.cc:319 add_route_dialog.cc:338 editor_actions.cc:385
-#: editor_rulers.cc:377 time_axis_view.cc:1301
+#: editor_rulers.cc:377 time_axis_view.cc:1304
msgid "Normal"
msgstr "ÐормальнаÑ"
@@ -550,7 +550,7 @@ msgstr "8 каналов"
msgid "12 Channel"
msgstr "3 канала"
-#: add_route_dialog.cc:475 mixer_strip.cc:2136
+#: add_route_dialog.cc:475 mixer_strip.cc:2130
msgid "Custom"
msgstr "Ðа заказ"
@@ -638,7 +638,7 @@ msgid "Track"
msgstr "Дорожка"
#: analysis_window.cc:68 editor_actions.cc:616 mixer_ui.cc:125
-#: mixer_ui.cc:1793
+#: mixer_ui.cc:1795
msgid "Show"
msgstr "Показать"
@@ -646,91 +646,91 @@ msgstr "Показать"
msgid "Re-analyze data"
msgstr "Повторно проанализировать данные"
-#: ardour_button.cc:658
+#: ardour_button.cc:704
msgid "button cannot watch state of non-existing Controllable\n"
msgstr ""
-#: ardour_ui.cc:179
+#: ardour_ui.cc:180
msgid "audition"
msgstr "проÑлушивание"
-#: ardour_ui.cc:180
+#: ardour_ui.cc:181
msgid "solo"
msgstr "Ñолирование"
-#: ardour_ui.cc:181
+#: ardour_ui.cc:182
msgid "feedback"
msgstr "отклик"
-#: ardour_ui.cc:183 speaker_dialog.cc:36
+#: ardour_ui.cc:184 speaker_dialog.cc:36
msgid "Speaker Configuration"
msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾Ð³Ð¾Ð²Ð¾Ñ€Ð¸Ñ‚ÐµÐ»ÐµÐ¹"
-#: ardour_ui.cc:184 theme_manager.cc:56 theme_manager.cc:64
+#: ardour_ui.cc:185 theme_manager.cc:56 theme_manager.cc:64
msgid "Theme Manager"
msgstr "Стиль оформлениÑ"
-#: ardour_ui.cc:185 keyeditor.cc:53
+#: ardour_ui.cc:186 keyeditor.cc:53
msgid "Key Bindings"
msgstr "Клавиатурные комбинации"
-#: ardour_ui.cc:186
+#: ardour_ui.cc:187
msgid "Preferences"
msgstr "Параметры"
-#: ardour_ui.cc:187 ardour_ui.cc:192
+#: ardour_ui.cc:188 ardour_ui.cc:193
msgid "Add Tracks/Busses"
msgstr "Добавить дорожки/шины"
-#: ardour_ui.cc:188
+#: ardour_ui.cc:189
msgid "About"
msgstr "О программе"
-#: ardour_ui.cc:189 location_ui.cc:1134
+#: ardour_ui.cc:190 location_ui.cc:1146
msgid "Locations"
msgstr "Позиции"
-#: ardour_ui.cc:190 route_params_ui.cc:57 route_params_ui.cc:604
+#: ardour_ui.cc:191 route_params_ui.cc:57 route_params_ui.cc:600
msgid "Tracks and Busses"
msgstr "Дорожки и шины"
-#: ardour_ui.cc:191
+#: ardour_ui.cc:192
msgid "Properties"
msgstr "СвойÑтва"
-#: ardour_ui.cc:193 bundle_manager.cc:263
+#: ardour_ui.cc:194 bundle_manager.cc:263
msgid "Bundle Manager"
msgstr "Управление пакетами"
-#: ardour_ui.cc:194 big_clock_window.cc:35
+#: ardour_ui.cc:195 big_clock_window.cc:35
msgid "Big Clock"
msgstr "Большой Ñчётчик"
-#: ardour_ui.cc:195
+#: ardour_ui.cc:196
msgid "Audio Connections"
msgstr "Звуковые ÑоединениÑ"
-#: ardour_ui.cc:196
+#: ardour_ui.cc:197
msgid "MIDI Connections"
msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ MIDI"
-#: ardour_ui.cc:198
+#: ardour_ui.cc:199
msgid "Errors"
msgstr "Ошибки"
-#: ardour_ui.cc:299
+#: ardour_ui.cc:301
msgid "could not initialize %1."
msgstr "Ðе удалоÑÑŒ инициализировать %1."
-#: ardour_ui.cc:394
+#: ardour_ui.cc:396
msgid "Starting audio engine"
msgstr "ЗапуÑкаетÑÑ Ð·Ð²ÑƒÐºÐ¾Ð²Ð¾Ð¹ движок"
-#: ardour_ui.cc:763 startup.cc:638
+#: ardour_ui.cc:766 startup.cc:638
msgid "%1 is ready for use"
msgstr "%1 готов к работе"
-#: ardour_ui.cc:811
+#: ardour_ui.cc:814
msgid ""
"WARNING: Your system has a limit for maximum amount of locked memory. This "
"might cause %1 to run out of memory before your system runs out of memory. \n"
@@ -745,23 +745,23 @@ msgstr ""
"Ð’Ñ‹ можете узнать уÑтановленный предел при помощи команды 'ulimit -l'. Обычно "
"Ñто контролируетÑÑ Ð² %2."
-#: ardour_ui.cc:828
+#: ardour_ui.cc:831
msgid "Do not show this window again"
msgstr "Больше не показывать Ñто окно"
-#: ardour_ui.cc:870
+#: ardour_ui.cc:873
msgid "Don't quit"
msgstr "Ðе выходить"
-#: ardour_ui.cc:871
+#: ardour_ui.cc:874
msgid "Just quit"
msgstr "ПроÑто выйти"
-#: ardour_ui.cc:872
+#: ardour_ui.cc:875
msgid "Save and quit"
msgstr "Сохранить и выйти"
-#: ardour_ui.cc:882
+#: ardour_ui.cc:885
msgid ""
"%1 was unable to save your session.\n"
"\n"
@@ -776,15 +776,15 @@ msgstr ""
"\n"
"«ПроÑто выйти»."
-#: ardour_ui.cc:913
+#: ardour_ui.cc:916
msgid "Please wait while %1 cleans up..."
msgstr "ДождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ‡Ð¸Ñтки ÑеанÑа в %1..."
-#: ardour_ui.cc:930
+#: ardour_ui.cc:933
msgid "Unsaved Session"
msgstr "Ð¡ÐµÐ°Ð½Ñ Ð½Ðµ Ñохранён"
-#: ardour_ui.cc:951
+#: ardour_ui.cc:954
msgid ""
"The session \"%1\"\n"
"has not been saved.\n"
@@ -802,7 +802,7 @@ msgstr ""
"\n"
"Что вы хотите Ñделать?"
-#: ardour_ui.cc:954
+#: ardour_ui.cc:957
msgid ""
"The snapshot \"%1\"\n"
"has not been saved.\n"
@@ -820,74 +820,74 @@ msgstr ""
"\n"
"Что вы хотите Ñделать?"
-#: ardour_ui.cc:968
+#: ardour_ui.cc:971
msgid "Prompter"
msgstr ""
-#: ardour_ui.cc:1045
+#: ardour_ui.cc:1048
msgid "disconnected"
msgstr "отÑоединено"
-#: ardour_ui.cc:1052
+#: ardour_ui.cc:1055
#, c-format
msgid "JACK: <span foreground=\"green\">%.1f kHz / %4.1f ms</span>"
msgstr "JACK: <span foreground=\"green\">%.1f КГц / %4.1f мÑ</span>"
-#: ardour_ui.cc:1056
+#: ardour_ui.cc:1059
#, c-format
msgid "JACK: <span foreground=\"green\">%<PRId64> kHz / %4.1f ms</span>"
msgstr "JACK: <span foreground=\"green\">%<PRId64> КГц / %4.1f мÑ</span>"
-#: ardour_ui.cc:1074 export_video_dialog.cc:67
+#: ardour_ui.cc:1077 export_video_dialog.cc:67
msgid "File:"
msgstr "Файл:"
-#: ardour_ui.cc:1078
+#: ardour_ui.cc:1081
msgid "BWF"
msgstr "BWF"
-#: ardour_ui.cc:1081
+#: ardour_ui.cc:1084
msgid "WAV"
msgstr "WAV"
-#: ardour_ui.cc:1084
+#: ardour_ui.cc:1087
msgid "WAV64"
msgstr "WAV64"
-#: ardour_ui.cc:1087 session_option_editor.cc:197
+#: ardour_ui.cc:1090 session_option_editor.cc:197
msgid "CAF"
msgstr "CAF"
-#: ardour_ui.cc:1090
+#: ardour_ui.cc:1093
msgid "AIFF"
msgstr "AIFF"
-#: ardour_ui.cc:1093
+#: ardour_ui.cc:1096
msgid "iXML"
msgstr "iXML"
-#: ardour_ui.cc:1096
+#: ardour_ui.cc:1099
msgid "RF64"
msgstr "RF64"
-#: ardour_ui.cc:1104
+#: ardour_ui.cc:1107
msgid "32-float"
msgstr "32-float"
-#: ardour_ui.cc:1107
+#: ardour_ui.cc:1110
msgid "24-int"
msgstr "24-int"
-#: ardour_ui.cc:1110
+#: ardour_ui.cc:1113
msgid "16-int"
msgstr "16-int"
-#: ardour_ui.cc:1129
+#: ardour_ui.cc:1132
#, c-format
msgid "DSP: <span foreground=\"%s\">%5.1f%%</span>"
msgstr "ЦП: <span foreground=\"%s\">%5.1f%%</span>"
-#: ardour_ui.cc:1148
+#: ardour_ui.cc:1151
#, c-format
msgid ""
"Buffers: <span foreground=\"green\">p:</span><span foreground=\"%s\">"
@@ -898,33 +898,33 @@ msgstr ""
"%%</span> <span foreground=\"green\">c:</span><span foreground=\"%s\">"
"%<PRIu32>%%</span>"
-#: ardour_ui.cc:1184
+#: ardour_ui.cc:1187
msgid "Disk: <span foreground=\"green\">Unknown</span>"
msgstr "Ðа диÑке: <span foreground=\"green\">неизвеÑтно</span>"
-#: ardour_ui.cc:1186
+#: ardour_ui.cc:1189
msgid "Disk: <span foreground=\"green\">24hrs+</span>"
msgstr "Ðа диÑке: <span foreground=\"green\">24ч+</span>"
-#: ardour_ui.cc:1204
+#: ardour_ui.cc:1207
msgid "Disk: <span foreground=\"green\">&gt;24 hrs</span>"
msgstr "Ðа диÑке: <span foreground=\"green\">&gt;24ч</span>"
-#: ardour_ui.cc:1215
+#: ardour_ui.cc:1218
#, c-format
msgid "Disk: <span foreground=\"%s\">%02dh:%02dm:%02ds</span>"
msgstr "Ðа диÑке: <span foreground=\"%s\">%02dч:%02dм:%02dÑ</span>"
-#: ardour_ui.cc:1241
+#: ardour_ui.cc:1244
#, c-format
msgid "Timecode|TC: <span foreground=\"%s\">%s</span>"
msgstr "ТК: <span foreground=\"%s\">%s</span>"
-#: ardour_ui.cc:1358 ardour_ui.cc:1367 startup.cc:1045
+#: ardour_ui.cc:1361 ardour_ui.cc:1370 startup.cc:1045
msgid "Recent Sessions"
msgstr "Ðедавние ÑеанÑÑ‹"
-#: ardour_ui.cc:1447
+#: ardour_ui.cc:1450
msgid ""
"%1 is not connected to JACK\n"
"You cannot open or close sessions in this condition"
@@ -932,27 +932,27 @@ msgstr ""
"%1 не Ñоединен Ñ JACK.\n"
"Открытие и закрытие ÑеанÑов невозможно."
-#: ardour_ui.cc:1474
+#: ardour_ui.cc:1477
msgid "Open Session"
msgstr "Открыть ÑеанÑ"
-#: ardour_ui.cc:1492 session_import_dialog.cc:169
+#: ardour_ui.cc:1495 session_import_dialog.cc:169
#: session_metadata_dialog.cc:729 startup.cc:1074
msgid "%1 sessions"
msgstr "CеанÑÑ‹ %1"
-#: ardour_ui.cc:1529
+#: ardour_ui.cc:1532
msgid "You cannot add a track without a session already loaded."
msgstr "Ð’Ñ‹ не можете добавить дорожку без загруженного ÑеанÑа."
-#: ardour_ui.cc:1537
+#: ardour_ui.cc:1540
msgid "could not create %1 new mixed track"
msgid_plural "could not create %1 new mixed tracks"
msgstr[0] "Ðе удалоÑÑŒ Ñоздать %1 новую Ñмешанную дорожку"
msgstr[1] "Ðе удалоÑÑŒ Ñоздать %1 новых Ñмешанных дорожки"
msgstr[2] "Ðе удалоÑÑŒ Ñоздать %1 новых Ñмешанных дорожек"
-#: ardour_ui.cc:1543 ardour_ui.cc:1604
+#: ardour_ui.cc:1546 ardour_ui.cc:1607
msgid ""
"There are insufficient JACK ports available\n"
"to create a new track or bus.\n"
@@ -964,25 +964,25 @@ msgstr ""
"Ðеобходимо Ñохранить %1, выйти и запуÑтить\n"
"JACK Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð½Ñ‹Ð¼ количеÑтвом портов."
-#: ardour_ui.cc:1578
+#: ardour_ui.cc:1581
msgid "You cannot add a track or bus without a session already loaded."
msgstr "Ð’Ñ‹ не можете добавить дорожку или шину без открытого ÑеанÑа."
-#: ardour_ui.cc:1587
+#: ardour_ui.cc:1590
msgid "could not create %1 new audio track"
msgid_plural "could not create %1 new audio tracks"
msgstr[0] "Ðе удалоÑÑŒ Ñоздать %1 новую звуковую дорожку"
msgstr[1] "Ðе удалоÑÑŒ Ñоздать %2 новых звуковых дорожки"
msgstr[2] "Ðе удалоÑÑŒ Ñоздать %2 новых звуковых дорожек"
-#: ardour_ui.cc:1596
+#: ardour_ui.cc:1599
msgid "could not create %1 new audio bus"
msgid_plural "could not create %1 new audio busses"
msgstr[0] "Ðе удалоÑÑŒ Ñоздать %1 новую звуковую шину"
msgstr[1] "Ðе удалоÑÑŒ Ñоздать %1 новых звуковых шины"
msgstr[2] "Ðе удалоÑÑŒ Ñоздать %1 новых звуковых шин"
-#: ardour_ui.cc:1713
+#: ardour_ui.cc:1716
msgid ""
"Please create one or more tracks before trying to record.\n"
"You can do this with the \"Add Track or Bus\" option in the Session menu."
@@ -991,14 +991,14 @@ msgstr ""
"как пытатьÑÑ Ñ‡Ñ‚Ð¾-либо запиÑать.\n"
"ИÑпользуйте меню Â«Ð¡ÐµÐ°Ð½Ñ > Добавить дорожку/шину»."
-#: ardour_ui.cc:2103
+#: ardour_ui.cc:2106
msgid ""
"The audio backend (JACK) was shutdown because:\n"
"\n"
"%1"
msgstr ""
-#: ardour_ui.cc:2105
+#: ardour_ui.cc:2108
msgid ""
"JACK has either been shutdown or it\n"
"disconnected %1 because %1\n"
@@ -1009,19 +1009,19 @@ msgstr ""
"Ñ %1 и отÑоединил его. Ðеобходимо перезапуÑтить \n"
"JACK, воÑÑтановить Ñоединение и Ñохранить ÑеанÑ."
-#: ardour_ui.cc:2131
+#: ardour_ui.cc:2134
msgid "Unable to start the session running"
msgstr "Ðевозможно запуÑтить уже выполнÑемый ÑеанÑ"
-#: ardour_ui.cc:2211
+#: ardour_ui.cc:2214
msgid "Take Snapshot"
msgstr "Создать Ñнимок"
-#: ardour_ui.cc:2212
+#: ardour_ui.cc:2215
msgid "Name of new snapshot"
msgstr "Ðазвание нового Ñнимка"
-#: ardour_ui.cc:2236
+#: ardour_ui.cc:2239
msgid ""
"To ensure compatibility with various systems\n"
"snapshot names may not contain a '%1' character"
@@ -1029,27 +1029,27 @@ msgstr ""
"Ð”Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ ÑовмеÑтимоÑти Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ ÑиÑтемами\n"
"Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñнимков не могут Ñодержать Ñимвол '%1'."
-#: ardour_ui.cc:2248
+#: ardour_ui.cc:2251
msgid "Confirm Snapshot Overwrite"
msgstr "Подтвердите перезапиÑÑŒ Ñнимка"
-#: ardour_ui.cc:2249
+#: ardour_ui.cc:2252
msgid "A snapshot already exists with that name. Do you want to overwrite it?"
msgstr "Снимок Ñ Ñ‚Ð°ÐºÐ¸Ð¼ названием уже еÑÑ‚ÑŒ. ПерезапиÑать его?"
-#: ardour_ui.cc:2252 utils_videotl.cc:66
+#: ardour_ui.cc:2255 utils_videotl.cc:66
msgid "Overwrite"
msgstr "ПерезапиÑать"
-#: ardour_ui.cc:2286
+#: ardour_ui.cc:2289
msgid "Rename Session"
msgstr "Переименовать ÑеанÑ"
-#: ardour_ui.cc:2287
+#: ardour_ui.cc:2290
msgid "New session name"
msgstr "Ðовое название ÑеанÑа"
-#: ardour_ui.cc:2301 ardour_ui.cc:2681 ardour_ui.cc:2726
+#: ardour_ui.cc:2304 ardour_ui.cc:2684 ardour_ui.cc:2729
msgid ""
"To ensure compatibility with various systems\n"
"session names may not contain a '%1' character"
@@ -1057,12 +1057,12 @@ msgstr ""
"Ð”Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ ÑовмеÑтимоÑти Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ ÑиÑтемами\n"
"Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑеанÑов не могут Ñодержать Ñимвол '%1'."
-#: ardour_ui.cc:2309
+#: ardour_ui.cc:2312
msgid ""
"That name is already in use by another directory/folder. Please try again."
msgstr ""
-#: ardour_ui.cc:2318
+#: ardour_ui.cc:2321
msgid ""
"Renaming this session failed.\n"
"Things could be seriously messed up at this point"
@@ -1070,19 +1070,19 @@ msgstr ""
"Ðе удалоÑÑŒ переименовать Ñтот ÑеанÑ.\n"
"Очень может быть, что вÑÑ‘ иÑпортилоÑÑŒ."
-#: ardour_ui.cc:2429
+#: ardour_ui.cc:2432
msgid "Save Template"
msgstr "Сохранить шаблон"
-#: ardour_ui.cc:2430
+#: ardour_ui.cc:2433
msgid "Name for template:"
msgstr "Ðазвание шаблона:"
-#: ardour_ui.cc:2431
+#: ardour_ui.cc:2434
msgid "-template"
msgstr "-шаблон"
-#: ardour_ui.cc:2469
+#: ardour_ui.cc:2472
msgid ""
"This session\n"
"%1\n"
@@ -1092,52 +1092,52 @@ msgstr ""
"%1\n"
"уже ÑущеÑтвует. Открыть его?"
-#: ardour_ui.cc:2479
+#: ardour_ui.cc:2482
msgid "Open Existing Session"
msgstr "Открыть ÑущеÑтвующий ÑеанÑ"
-#: ardour_ui.cc:2717
+#: ardour_ui.cc:2720
msgid "There is no existing session at \"%1\""
msgstr "По адреÑу \"%1\" не ÑущеÑтвующего ÑеанÑа"
-#: ardour_ui.cc:2804
+#: ardour_ui.cc:2807
msgid "Please wait while %1 loads your session"
msgstr "ДождитеÑÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ÑеанÑа в %1"
-#: ardour_ui.cc:2819
+#: ardour_ui.cc:2822
msgid "Port Registration Error"
msgstr "Ошибка региÑтрации порта"
-#: ardour_ui.cc:2820
+#: ardour_ui.cc:2823
msgid "Click the Close button to try again."
msgstr "Щелкните кнопку «Закрыть» Ð´Ð»Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‚Ð° к предыдущему диалогу."
-#: ardour_ui.cc:2841
+#: ardour_ui.cc:2844
msgid "Session \"%1 (snapshot %2)\" did not load successfully"
msgstr "Ðе удалоÑÑŒ загрузить ÑÐµÐ°Ð½Ñ \"%1 (Ñнимок %2)\""
-#: ardour_ui.cc:2847
+#: ardour_ui.cc:2850
msgid "Loading Error"
msgstr "Ошибка при загрузке"
-#: ardour_ui.cc:2848
+#: ardour_ui.cc:2851
msgid "Click the Refresh button to try again."
msgstr "Щёлкните кнопку «Обновить» Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð¹ попытки."
-#: ardour_ui.cc:2930
+#: ardour_ui.cc:2933
msgid "Could not create session in \"%1\""
msgstr "Ðе удалоÑÑŒ Ñоздать ÑÐµÐ°Ð½Ñ Â«%1»"
-#: ardour_ui.cc:3030
+#: ardour_ui.cc:3033
msgid "No files were ready for clean-up"
msgstr "Ðет готовых к удалению звуковых файлов"
-#: ardour_ui.cc:3034 ardour_ui.cc:3044 ardour_ui.cc:3177 ardour_ui.cc:3184
+#: ardour_ui.cc:3037 ardour_ui.cc:3047 ardour_ui.cc:3180 ardour_ui.cc:3187
#: ardour_ui_ed.cc:104
msgid "Clean-up"
msgstr "ОчиÑтить"
-#: ardour_ui.cc:3035
+#: ardour_ui.cc:3038
msgid ""
"If this seems suprising, \n"
"check for any existing snapshots.\n"
@@ -1149,19 +1149,19 @@ msgstr ""
"Они могут включать облаÑти, которым\n"
"нужны неиÑпользуемые файлы."
-#: ardour_ui.cc:3094
+#: ardour_ui.cc:3097
msgid "kilo"
msgstr "кило"
-#: ardour_ui.cc:3097
+#: ardour_ui.cc:3100
msgid "mega"
msgstr "мега"
-#: ardour_ui.cc:3100
+#: ardour_ui.cc:3103
msgid "giga"
msgstr "гига"
-#: ardour_ui.cc:3105
+#: ardour_ui.cc:3108
msgid ""
"The following file was deleted from %2,\n"
"releasing %3 %4bytes of disk space"
@@ -1181,7 +1181,7 @@ msgstr[2] ""
"оÑвободив при Ñтом %3 %4байт\n"
"диÑкового проÑтранÑтва."
-#: ardour_ui.cc:3112
+#: ardour_ui.cc:3115
msgid ""
"The following file was not in use and \n"
"has been moved to: %2\n"
@@ -1201,7 +1201,7 @@ msgid_plural ""
"\n"
"will release an additional %3 %4bytes of disk space.\n"
msgstr[0] ""
-"Следующий %1 файл не иÑпользуетÑÑ Ð¸ перемещён в пвпку\n"
+"Следующий %1 файл не иÑпользуетÑÑ Ð¸ перемещён в папку\n"
"%2\n"
"\n"
"ПоÑле повторного запуÑка %5 команда\n"
@@ -1210,7 +1210,7 @@ msgstr[0] ""
"\n"
"дополнительно оÑвободит %3 %4байт диÑкового проÑтранÑтва.\n"
msgstr[1] ""
-"Следующие %1 файла не иÑпользуютÑÑ Ð¸ перемещён в пвпку\n"
+"Следующие %1 файла не иÑпользуютÑÑ Ð¸ перемещены в папку\n"
"%2\n"
"\n"
"ПоÑле повторного запуÑка %5 команда\n"
@@ -1219,7 +1219,7 @@ msgstr[1] ""
"\n"
"дополнительно оÑвободит %3 %4байт диÑкового проÑтранÑтва.\n"
msgstr[2] ""
-"Следующие %1 файлов не иÑпользуютÑÑ Ð¸ перемещён в пвпку\n"
+"Следующие %1 файлов не иÑпользуютÑÑ Ð¸ перемещены в папку\n"
"%2\n"
"\n"
"ПоÑле повторного запуÑка %5 команда\n"
@@ -1228,11 +1228,11 @@ msgstr[2] ""
"\n"
"дополнительно оÑвободит %3 %4байт диÑкового проÑтранÑтва.\n"
-#: ardour_ui.cc:3172
+#: ardour_ui.cc:3175
msgid "Are you sure you want to clean-up?"
msgstr "Ð’Ñ‹ уверены, что хотите выполнить очиÑтку?"
-#: ardour_ui.cc:3179
+#: ardour_ui.cc:3182
msgid ""
"Clean-up is a destructive operation.\n"
"ALL undo/redo information will be lost if you clean-up.\n"
@@ -1243,80 +1243,80 @@ msgstr ""
"неиÑпользуемые звуковые файлы\n"
"будут перемещены в «мертвую» зону."
-#: ardour_ui.cc:3187
+#: ardour_ui.cc:3190
msgid "CleanupDialog"
msgstr "ОчиÑтка"
-#: ardour_ui.cc:3217
+#: ardour_ui.cc:3220
msgid "Cleaned Files"
msgstr "Очищенные файлы"
-#: ardour_ui.cc:3234
+#: ardour_ui.cc:3237
msgid "deleted file"
msgstr "удалён файл"
-#: ardour_ui.cc:3326
+#: ardour_ui.cc:3329
msgid ""
"Video-Server was not launched by Ardour. The request to stop it is ignored."
msgstr ""
-#: ardour_ui.cc:3330
+#: ardour_ui.cc:3333
msgid "Stop Video-Server"
msgstr ""
-#: ardour_ui.cc:3331
+#: ardour_ui.cc:3334
msgid "Do you really want to stop the Video Server?"
msgstr "Ð’Ñ‹ дейÑтвительно хотите оÑтановить видеоÑервер?"
-#: ardour_ui.cc:3334
+#: ardour_ui.cc:3337
msgid "Yes, Stop It"
msgstr "Да, оÑтановить"
-#: ardour_ui.cc:3360
+#: ardour_ui.cc:3363
msgid "The Video Server is already started."
msgstr ""
-#: ardour_ui.cc:3362
+#: ardour_ui.cc:3365
msgid ""
"An external Video Server is configured and can be reached. Not starting a "
"new instance."
msgstr ""
-#: ardour_ui.cc:3370 ardour_ui.cc:3460
+#: ardour_ui.cc:3373 ardour_ui.cc:3463
msgid ""
"Could not connect to the Video Server. Start it or configure its access URL "
"in Edit -> Preferences."
msgstr ""
-#: ardour_ui.cc:3394
+#: ardour_ui.cc:3397
msgid "Specified docroot is not an existing directory."
msgstr ""
-#: ardour_ui.cc:3399
+#: ardour_ui.cc:3402
msgid "Given Video Server is not an executable file."
msgstr ""
-#: ardour_ui.cc:3432
+#: ardour_ui.cc:3435
msgid "Cannot launch the video-server"
msgstr "Ðе удалоÑÑŒ запуÑтить видеоÑервер"
-#: ardour_ui.cc:3441
+#: ardour_ui.cc:3444
msgid "Video-server was started but does not respond to requests..."
msgstr ""
-#: ardour_ui.cc:3482 editor_audio_import.cc:629
+#: ardour_ui.cc:3489 editor_audio_import.cc:629
msgid "could not open %1"
msgstr "не удалоÑÑŒ открыть %1"
-#: ardour_ui.cc:3486
+#: ardour_ui.cc:3493
msgid "no video-file selected"
msgstr ""
-#: ardour_ui.cc:3646
+#: ardour_ui.cc:3658
msgid "Recording was stopped because your system could not keep up."
msgstr "ЗапиÑÑŒ оÑтановлена из-за недоÑтаточного быÑтродейÑÑ‚Ð²Ð¸Ñ ÑиÑтемы"
-#: ardour_ui.cc:3675
+#: ardour_ui.cc:3687
msgid ""
"The disk system on your computer\n"
"was not able to keep up with %1.\n"
@@ -1330,7 +1330,7 @@ msgstr ""
"Ð’ чаÑтноÑти ей не удалоÑÑŒ запиÑать данные на диÑк\n"
"доÑтаточно быÑтро Ð´Ð»Ñ Ñ„Ð¸ÐºÑации захваченных данных.\n"
-#: ardour_ui.cc:3694
+#: ardour_ui.cc:3706
msgid ""
"The disk system on your computer\n"
"was not able to keep up with %1.\n"
@@ -1344,11 +1344,11 @@ msgstr ""
"Ð’ чаÑтноÑти ей не удалоÑÑŒ прочитать данные\n"
"Ñ Ð´Ð¸Ñка доÑтаточно быÑтро Ð´Ð»Ñ Ð²Ð¾ÑпроизведениÑ.\n"
-#: ardour_ui.cc:3734
+#: ardour_ui.cc:3746
msgid "Crash Recovery"
msgstr "ВоÑÑтановление данных"
-#: ardour_ui.cc:3735
+#: ardour_ui.cc:3747
msgid ""
"This session appears to have been in the\n"
"middle of recording when %1 or\n"
@@ -1364,19 +1364,19 @@ msgstr ""
"%1 может воÑÑтановить запиÑанные данные,\n"
"либо проигнорировать их. Примите решение.\n"
-#: ardour_ui.cc:3747
+#: ardour_ui.cc:3759
msgid "Ignore crash data"
msgstr "Проигнорировать"
-#: ardour_ui.cc:3748
+#: ardour_ui.cc:3760
msgid "Recover from crash"
msgstr "ВоÑÑтановить данные"
-#: ardour_ui.cc:3768
+#: ardour_ui.cc:3780
msgid "Sample Rate Mismatch"
msgstr "ÐеÑовпадение чаÑтот ÑÑмплированиÑ"
-#: ardour_ui.cc:3769
+#: ardour_ui.cc:3781
msgid ""
"This session was created with a sample rate of %1 Hz, but\n"
"%2 is currently running at %3 Hz. If you load this session,\n"
@@ -1388,23 +1388,23 @@ msgstr ""
"ЕÑли вы загрузите Ñтот ÑеанÑ, звуковые данные могут быть\n"
"воÑпроизведены Ñ Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ чаÑтотой ÑÑмплированиÑ.\n"
-#: ardour_ui.cc:3778
+#: ardour_ui.cc:3790
msgid "Do not load session"
msgstr "Ðе загружать ÑеанÑ"
-#: ardour_ui.cc:3779
+#: ardour_ui.cc:3791
msgid "Load session anyway"
msgstr "Ð’Ñе равно загрузить"
-#: ardour_ui.cc:3802
+#: ardour_ui.cc:3814
msgid "Could not disconnect from JACK"
msgstr "Ðе удалоÑÑŒ отÑоединитьÑÑ Ð¾Ñ‚ Ñервера JACK"
-#: ardour_ui.cc:3815
+#: ardour_ui.cc:3827
msgid "Could not reconnect to JACK"
msgstr "Ðе удалоÑÑŒ ÑоединитьÑÑ Ñ Ñервером JACK"
-#: ardour_ui.cc:4089
+#: ardour_ui.cc:4101
msgid ""
"%4This is a session from an older version of %3%5\n"
"\n"
@@ -1427,57 +1427,61 @@ msgstr "ИнтерфейÑ: не удалоÑÑŒ инициализировать
msgid "UI: cannot setup mixer"
msgstr "ИнтерфейÑ: не удалоÑÑŒ инициализировать микшер"
-#: ardour_ui2.cc:125
+#: ardour_ui2.cc:82
+msgid "UI: cannot setup meterbridge"
+msgstr "ИнтерфейÑ: не удалоÑÑŒ наÑтроить панель индикаторов"
+
+#: ardour_ui2.cc:130
msgid "Play from playhead"
msgstr "ВоÑпроизвеÑти от указателÑ"
-#: ardour_ui2.cc:126
+#: ardour_ui2.cc:131
msgid "Stop playback"
msgstr "Стоп"
-#: ardour_ui2.cc:127
+#: ardour_ui2.cc:132
msgid "Toggle record"
msgstr "Переключить готовноÑÑ‚ÑŒ к запиÑи"
-#: ardour_ui2.cc:128
+#: ardour_ui2.cc:133
msgid "Play range/selection"
msgstr "ВоÑпроизвеÑти выделение"
-#: ardour_ui2.cc:129
+#: ardour_ui2.cc:134
msgid "Go to start of session"
msgstr "Ð’ начало ÑеанÑа"
-#: ardour_ui2.cc:130
+#: ardour_ui2.cc:135
msgid "Go to end of session"
msgstr "Ð’ конец ÑеанÑа"
-#: ardour_ui2.cc:131
+#: ardour_ui2.cc:136
msgid "Play loop range"
msgstr "ВоÑпроизвеÑти выделение в петле"
-#: ardour_ui2.cc:132
+#: ardour_ui2.cc:137
msgid ""
"MIDI Panic\n"
"Send note off and reset controller messages on all MIDI channels"
msgstr ""
-#: ardour_ui2.cc:133
+#: ardour_ui2.cc:138
msgid "Return to last playback start when stopped"
msgstr "ВернутьÑÑ Ðº точке начала воÑпроизведениÑ"
-#: ardour_ui2.cc:134
+#: ardour_ui2.cc:139
msgid "Playhead follows Range Selections and Edits"
msgstr "Указатель воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñледует за выделением облаÑтей и правкам"
-#: ardour_ui2.cc:135
+#: ardour_ui2.cc:140
msgid "Be sensible about input monitoring"
msgstr ""
-#: ardour_ui2.cc:136
+#: ardour_ui2.cc:141
msgid "Enable/Disable audio click"
msgstr "Включить или выключить метроном"
-#: ardour_ui2.cc:137 monitor_section.cc:101
+#: ardour_ui2.cc:142 monitor_section.cc:101
msgid ""
"When active, something is soloed.\n"
"Click to de-solo everything"
@@ -1485,7 +1489,7 @@ msgstr ""
"Включено, еÑли какие-то дорожки Ñолируют.\n"
"Щёлкните, чтобы ÑнÑÑ‚ÑŒ Ñолирование везде."
-#: ardour_ui2.cc:138
+#: ardour_ui2.cc:143
msgid ""
"When active, auditioning is taking place\n"
"Click to stop the audition"
@@ -1493,11 +1497,11 @@ msgstr ""
"Включено, еÑли выполнÑетÑÑ Ð¿Ñ€Ð¾Ñлушивание.\n"
"Щёлкните, чтобы прекратить его."
-#: ardour_ui2.cc:139
+#: ardour_ui2.cc:144
msgid "When active, there is a feedback loop."
msgstr "Включена, когда еÑÑ‚ÑŒ Ð¿ÐµÑ‚Ð»Ñ Ð¾Ñ‚ÐºÐ»Ð¸ÐºÐ° (feedback loop)"
-#: ardour_ui2.cc:140
+#: ardour_ui2.cc:145
msgid ""
"<b>Primary Clock</b> right-click to set display mode. Click to edit, click"
"+drag a digit or mouse-over+scroll wheel to modify.\n"
@@ -1510,7 +1514,7 @@ msgstr ""
"ПрÑмой ввод: <tt>Esc</tt>: отмена; <tt>Enter</tt>: подтверждение; поÑÑ‚Ñ„Ð¸ÐºÑ "
"'+' или '-' вводит разницу во времени.\n"
-#: ardour_ui2.cc:141
+#: ardour_ui2.cc:146
msgid ""
"<b>Secondary Clock</b> right-click to set display mode. Click to edit, click"
"+drag a digit or mouse-over+scroll wheel to modify.\n"
@@ -1523,27 +1527,27 @@ msgstr ""
"ПрÑмой ввод: <tt>Esc</tt>: отмена; <tt>Enter</tt>: подтверждение; поÑÑ‚Ñ„Ð¸ÐºÑ "
"'+' или '-' вводит разницу во времени.\n"
-#: ardour_ui2.cc:173
+#: ardour_ui2.cc:178
msgid "[ERROR]: "
msgstr "[ОШИБКÐ]: "
-#: ardour_ui2.cc:175
+#: ardour_ui2.cc:180
msgid "[WARNING]: "
msgstr "[ПРЕДУПРЕЖДЕÐИЕ]:"
-#: ardour_ui2.cc:177
+#: ardour_ui2.cc:182
msgid "[INFO]: "
msgstr "[СПРÐВКÐ]:"
-#: ardour_ui2.cc:241 ardour_ui_ed.cc:376
+#: ardour_ui2.cc:246 ardour_ui_ed.cc:377
msgid "Auto Return"
msgstr "Ðвтовозврат"
-#: ardour_ui2.cc:243 ardour_ui_ed.cc:379
+#: ardour_ui2.cc:248 ardour_ui_ed.cc:380
msgid "Follow Edits"
msgstr "Следовать правкам"
-#: ardour_ui2.cc:621 rc_option_editor.cc:1004 rc_option_editor.cc:1022
+#: ardour_ui2.cc:626 rc_option_editor.cc:1004 rc_option_editor.cc:1022
#: rc_option_editor.cc:1025 rc_option_editor.cc:1027 rc_option_editor.cc:1029
#: rc_option_editor.cc:1037 rc_option_editor.cc:1045 rc_option_editor.cc:1047
#: rc_option_editor.cc:1055 rc_option_editor.cc:1062 rc_option_editor.cc:1071
@@ -1563,23 +1567,23 @@ msgstr "ÐаÑтройка редактора"
msgid "Setup Mixer"
msgstr "ÐаÑтройка микшера"
-#: ardour_ui_dependents.cc:84
+#: ardour_ui_dependents.cc:85
msgid "Reload Session History"
msgstr "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° иÑтории ÑеанÑов"
-#: ardour_ui_dialogs.cc:206
+#: ardour_ui_dialogs.cc:200
msgid "Don't close"
msgstr "Ðе закрывать"
-#: ardour_ui_dialogs.cc:207
+#: ardour_ui_dialogs.cc:201
msgid "Just close"
msgstr "ПроÑто закрыть"
-#: ardour_ui_dialogs.cc:208
+#: ardour_ui_dialogs.cc:202
msgid "Save and close"
msgstr "Сохранить и закрыть"
-#: ardour_ui_dialogs.cc:293
+#: ardour_ui_dialogs.cc:291
msgid "This screen is not tall enough to display the mixer window"
msgstr "Размеров Ñкрана недоÑтаточно, чтобы показать окно микшера"
@@ -1644,7 +1648,7 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸"
msgid "Denormal Handling"
msgstr "Обработка отклонений"
-#: ardour_ui_ed.cc:123 route_time_axis.cc:1475
+#: ardour_ui_ed.cc:123 route_time_axis.cc:1489
msgid "New..."
msgstr "Создать..."
@@ -1674,7 +1678,7 @@ msgstr "Удалить видео"
#: ardour_ui_ed.cc:141
msgid "Export To Video File"
-msgstr "ЭкÑпортировать видеофайл"
+msgstr "Видеофайл"
#: ardour_ui_ed.cc:145
msgid "Snapshot..."
@@ -1685,7 +1689,7 @@ msgid "Save As..."
msgstr "Сохранить как..."
#: ardour_ui_ed.cc:153 editor_actions.cc:1719 editor_markers.cc:858
-#: editor_snapshots.cc:123 mixer_strip.cc:1464 route_time_axis.cc:1471
+#: editor_snapshots.cc:123 mixer_strip.cc:1470 route_time_axis.cc:1485
msgid "Rename..."
msgstr "Переименовать..."
@@ -1738,8 +1742,8 @@ msgstr "Задержка отклика"
msgid "Reconnect"
msgstr "ПереÑоединить"
-#: ardour_ui_ed.cc:195 global_port_matrix.cc:198 io_selector.cc:210
-#: mixer_strip.cc:712 mixer_strip.cc:838
+#: ardour_ui_ed.cc:195 global_port_matrix.cc:207 io_selector.cc:210
+#: mixer_strip.cc:718 mixer_strip.cc:844
msgid "Disconnect"
msgstr "ОтÑоединить"
@@ -1755,7 +1759,7 @@ msgstr "Редактор на полный Ñкран"
msgid "Show Toolbars"
msgstr "Показывать панели"
-#: ardour_ui_ed.cc:230 mixer_ui.cc:1863 mixer_ui.cc:1869
+#: ardour_ui_ed.cc:230 mixer_ui.cc:1865 mixer_ui.cc:1871
msgid "Window|Mixer"
msgstr "Микшер"
@@ -1763,27 +1767,31 @@ msgstr "Микшер"
msgid "Toggle Editor+Mixer"
msgstr "Редактор или микшер на переднем плане"
-#: ardour_ui_ed.cc:233 midi_tracer.cc:39
+#: ardour_ui_ed.cc:232 meterbridge.cc:224 meterbridge.cc:230
+msgid "Window|Meterbridge"
+msgstr "Панель индикаторов"
+
+#: ardour_ui_ed.cc:234 midi_tracer.cc:39
msgid "MIDI Tracer"
msgstr "Журнал MIDI-Ñобытий"
-#: ardour_ui_ed.cc:235
+#: ardour_ui_ed.cc:236
msgid "Chat"
msgstr "ПообщатьÑÑ"
-#: ardour_ui_ed.cc:237
+#: ardour_ui_ed.cc:238
msgid "Help|Manual"
msgstr "Справка"
-#: ardour_ui_ed.cc:238
+#: ardour_ui_ed.cc:239
msgid "Reference"
msgstr "Справка в Интернете"
-#: ardour_ui_ed.cc:240 plugin_ui.cc:419
+#: ardour_ui_ed.cc:241 plugin_ui.cc:418
msgid "Save"
msgstr "Сохранить"
-#: ardour_ui_ed.cc:248 rc_option_editor.cc:1114 rc_option_editor.cc:1125
+#: ardour_ui_ed.cc:249 rc_option_editor.cc:1114 rc_option_editor.cc:1125
#: rc_option_editor.cc:1134 rc_option_editor.cc:1147 rc_option_editor.cc:1160
#: rc_option_editor.cc:1169 rc_option_editor.cc:1179 rc_option_editor.cc:1181
#: rc_option_editor.cc:1191 rc_option_editor.cc:1207 rc_option_editor.cc:1220
@@ -1793,99 +1801,99 @@ msgstr "Сохранить"
msgid "Transport"
msgstr "ТранÑпорт"
-#: ardour_ui_ed.cc:254 engine_dialog.cc:85 sfdb_ui.cc:559
+#: ardour_ui_ed.cc:255 engine_dialog.cc:85
msgid "Stop"
msgstr "Стоп"
-#: ardour_ui_ed.cc:257
+#: ardour_ui_ed.cc:258
msgid "Roll"
msgstr ""
-#: ardour_ui_ed.cc:261
+#: ardour_ui_ed.cc:262
msgid "Start/Stop"
msgstr "Старт/Стоп"
-#: ardour_ui_ed.cc:264
+#: ardour_ui_ed.cc:265
msgid "Start/Continue/Stop"
msgstr "Старт/Продолжить/Стоп"
-#: ardour_ui_ed.cc:267
+#: ardour_ui_ed.cc:268
msgid "Stop and Forget Capture"
msgstr "ОÑтановитьÑÑ Ð¸ забыть захват"
-#: ardour_ui_ed.cc:277
+#: ardour_ui_ed.cc:278
msgid "Transition To Roll"
msgstr "В обычном направлении"
-#: ardour_ui_ed.cc:281
+#: ardour_ui_ed.cc:282
msgid "Transition To Reverse"
msgstr "В обратном направлении"
-#: ardour_ui_ed.cc:285
+#: ardour_ui_ed.cc:286
msgid "Play Loop Range"
msgstr "ВоÑпроизвеÑти петлю"
-#: ardour_ui_ed.cc:288
+#: ardour_ui_ed.cc:289
msgid "Play Selected Range"
msgstr ""
-#: ardour_ui_ed.cc:291
+#: ardour_ui_ed.cc:292
msgid "Play Selection w/Preroll"
msgstr ""
-#: ardour_ui_ed.cc:295
+#: ardour_ui_ed.cc:296
msgid "Enable Record"
msgstr "Разрешить запиÑÑŒ"
-#: ardour_ui_ed.cc:298
+#: ardour_ui_ed.cc:299
msgid "Start Recording"
msgstr "Ðачать запиÑÑŒ"
-#: ardour_ui_ed.cc:302
+#: ardour_ui_ed.cc:303
msgid "Rewind"
msgstr "Перемотать назад"
-#: ardour_ui_ed.cc:305
+#: ardour_ui_ed.cc:306
msgid "Rewind (Slow)"
msgstr "Перемотать назад (медленно)"
-#: ardour_ui_ed.cc:308
+#: ardour_ui_ed.cc:309
msgid "Rewind (Fast)"
msgstr "Перемотать назад (быÑтро)"
-#: ardour_ui_ed.cc:311 startup.cc:727
+#: ardour_ui_ed.cc:312 startup.cc:727
msgid "Forward"
msgstr "Перемотать вперёд"
-#: ardour_ui_ed.cc:314
+#: ardour_ui_ed.cc:315
msgid "Forward (Slow)"
msgstr "Перемотать вперёд (медленно)"
-#: ardour_ui_ed.cc:317
+#: ardour_ui_ed.cc:318
msgid "Forward (Fast)"
msgstr "Перемотать вперёд (быÑтро)"
-#: ardour_ui_ed.cc:320
+#: ardour_ui_ed.cc:321
msgid "Goto Zero"
msgstr "К нулевой отметке"
-#: ardour_ui_ed.cc:323
+#: ardour_ui_ed.cc:324
msgid "Goto Start"
msgstr "К началу"
-#: ardour_ui_ed.cc:326
+#: ardour_ui_ed.cc:327
msgid "Goto End"
msgstr "В конец"
-#: ardour_ui_ed.cc:329
+#: ardour_ui_ed.cc:330
msgid "Goto Wall Clock"
msgstr "К текущему времени"
-#: ardour_ui_ed.cc:333
+#: ardour_ui_ed.cc:334
msgid "Focus On Clock"
msgstr ""
-#: ardour_ui_ed.cc:337 ardour_ui_ed.cc:346 audio_clock.cc:2046 editor.cc:237
+#: ardour_ui_ed.cc:338 ardour_ui_ed.cc:347 audio_clock.cc:2046 editor.cc:237
#: editor_actions.cc:544 editor_actions.cc:553 export_timespan_selector.cc:88
#: session_option_editor.cc:41 session_option_editor.cc:61
#: session_option_editor.cc:80 session_option_editor.cc:96
@@ -1894,125 +1902,125 @@ msgstr ""
msgid "Timecode"
msgstr "Тайм-код"
-#: ardour_ui_ed.cc:339 ardour_ui_ed.cc:348 editor_actions.cc:542
+#: ardour_ui_ed.cc:340 ardour_ui_ed.cc:349 editor_actions.cc:542
msgid "Bars & Beats"
msgstr "Такты и доли"
-#: ardour_ui_ed.cc:341 ardour_ui_ed.cc:350
+#: ardour_ui_ed.cc:342 ardour_ui_ed.cc:351
msgid "Minutes & Seconds"
msgstr "Минуты и Ñекунды"
-#: ardour_ui_ed.cc:343 ardour_ui_ed.cc:352 audio_clock.cc:2050 editor.cc:238
+#: ardour_ui_ed.cc:344 ardour_ui_ed.cc:353 audio_clock.cc:2050 editor.cc:238
#: editor_actions.cc:543
msgid "Samples"
msgstr "СÑмплы"
-#: ardour_ui_ed.cc:355
+#: ardour_ui_ed.cc:356
msgid "Punch In"
msgstr "Ðачало врезки"
-#: ardour_ui_ed.cc:356 mixer_strip.cc:1904 route_ui.cc:132
+#: ardour_ui_ed.cc:357 mixer_strip.cc:1904 route_ui.cc:132
#: time_info_box.cc:113
msgid "In"
msgstr "Вход"
-#: ardour_ui_ed.cc:359
+#: ardour_ui_ed.cc:360
msgid "Punch Out"
msgstr "Конец врезки"
-#: ardour_ui_ed.cc:360 time_info_box.cc:114
+#: ardour_ui_ed.cc:361 time_info_box.cc:114
msgid "Out"
msgstr "Выход"
-#: ardour_ui_ed.cc:363
+#: ardour_ui_ed.cc:364
msgid "Punch In/Out"
msgstr "Врезка"
-#: ardour_ui_ed.cc:364
+#: ardour_ui_ed.cc:365
msgid "In/Out"
msgstr "Ð’Ñ…/Ð’Ñ‹Ñ…"
-#: ardour_ui_ed.cc:367 rc_option_editor.cc:1071
+#: ardour_ui_ed.cc:368 rc_option_editor.cc:1071
msgid "Click"
msgstr "Метроном"
-#: ardour_ui_ed.cc:370
+#: ardour_ui_ed.cc:371
msgid "Auto Input"
msgstr "Ðвтовход"
-#: ardour_ui_ed.cc:373
+#: ardour_ui_ed.cc:374
msgid "Auto Play"
msgstr "ÐвтовоÑпр."
-#: ardour_ui_ed.cc:384
+#: ardour_ui_ed.cc:385
msgid "Sync Startup to Video"
msgstr "Синхронизировать начало Ñ Ð²Ð¸Ð´ÐµÐ¾"
-#: ardour_ui_ed.cc:386
+#: ardour_ui_ed.cc:387
msgid "Time Master"
msgstr "Ведущий времени"
-#: ardour_ui_ed.cc:393
+#: ardour_ui_ed.cc:394
msgid "Toggle Record Enable Track %1"
msgstr "Переключить запиÑываемоÑÑ‚ÑŒ дорожки %1"
-#: ardour_ui_ed.cc:400
+#: ardour_ui_ed.cc:401
msgid "Percentage"
msgstr "Проценты"
-#: ardour_ui_ed.cc:401 shuttle_control.cc:169
+#: ardour_ui_ed.cc:402 shuttle_control.cc:169
msgid "Semitones"
msgstr "Полутона"
-#: ardour_ui_ed.cc:405
+#: ardour_ui_ed.cc:406
msgid "Send MTC"
msgstr "Передавать MTC"
-#: ardour_ui_ed.cc:407
+#: ardour_ui_ed.cc:408
msgid "Send MMC"
msgstr "Передавать MMC"
-#: ardour_ui_ed.cc:409
+#: ardour_ui_ed.cc:410
msgid "Use MMC"
msgstr "ИÑпользовать MMC"
-#: ardour_ui_ed.cc:411 rc_option_editor.cc:1702
+#: ardour_ui_ed.cc:412 rc_option_editor.cc:1702
msgid "Send MIDI Clock"
msgstr "ОтправлÑÑ‚ÑŒ MIDI Clock"
-#: ardour_ui_ed.cc:413
+#: ardour_ui_ed.cc:414
msgid "Send MIDI Feedback"
msgstr "ОтправлÑÑ‚ÑŒ MIDI Feedback"
-#: ardour_ui_ed.cc:419
+#: ardour_ui_ed.cc:420
msgid "Panic"
msgstr ""
-#: ardour_ui_ed.cc:559
+#: ardour_ui_ed.cc:560
msgid "Wall Clock"
msgstr "Текущее времÑ"
-#: ardour_ui_ed.cc:560
+#: ardour_ui_ed.cc:561
msgid "Disk Space"
msgstr "ДиÑк. проÑтранÑтво"
-#: ardour_ui_ed.cc:561
+#: ardour_ui_ed.cc:562
msgid "DSP"
msgstr "DSP"
-#: ardour_ui_ed.cc:562
+#: ardour_ui_ed.cc:563
msgid "Buffers"
msgstr "Буферы"
-#: ardour_ui_ed.cc:563
+#: ardour_ui_ed.cc:564
msgid "JACK Sampling Rate and Latency"
msgstr "ЧаÑтота ÑÑÐ¼Ð¿Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ задержка JACK"
-#: ardour_ui_ed.cc:564
+#: ardour_ui_ed.cc:565
msgid "Timecode Format"
msgstr "Формат тайм-кода"
-#: ardour_ui_ed.cc:565
+#: ardour_ui_ed.cc:566
msgid "File Format"
msgstr "Формат файлов"
@@ -2149,28 +2157,28 @@ msgid "hide track"
msgstr "Скрыть дорожку"
#: automation_time_axis.cc:255 automation_time_axis.cc:307
-#: automation_time_axis.cc:496 gain_meter.cc:196 generic_pluginui.cc:456
-#: generic_pluginui.cc:733 panner_ui.cc:150
+#: automation_time_axis.cc:496 gain_meter.cc:194 generic_pluginui.cc:456
+#: generic_pluginui.cc:746 panner_ui.cc:150
msgid "Automation|Manual"
msgstr "Вручную"
#: automation_time_axis.cc:257 automation_time_axis.cc:318
#: automation_time_axis.cc:501 editor.cc:1933 editor.cc:2010
-#: editor_actions.cc:118 editor_actions.cc:1865 gain_meter.cc:199
-#: generic_pluginui.cc:459 generic_pluginui.cc:735 midi_time_axis.cc:1488
+#: editor_actions.cc:118 editor_actions.cc:1865 gain_meter.cc:197
+#: generic_pluginui.cc:459 generic_pluginui.cc:748 midi_time_axis.cc:1488
#: midi_time_axis.cc:1491 midi_time_axis.cc:1494 panner_ui.cc:153
msgid "Play"
msgstr "ВоÑпр."
#: automation_time_axis.cc:259 automation_time_axis.cc:329
-#: automation_time_axis.cc:506 gain_meter.cc:202 generic_pluginui.cc:462
-#: generic_pluginui.cc:737 panner_ui.cc:156
+#: automation_time_axis.cc:506 gain_meter.cc:200 generic_pluginui.cc:462
+#: generic_pluginui.cc:750 panner_ui.cc:156
msgid "Write"
msgstr "ЗапиÑÑŒ"
#: automation_time_axis.cc:261 automation_time_axis.cc:340
-#: automation_time_axis.cc:511 gain_meter.cc:205 generic_pluginui.cc:465
-#: generic_pluginui.cc:739 panner_ui.cc:159
+#: automation_time_axis.cc:511 gain_meter.cc:203 generic_pluginui.cc:465
+#: generic_pluginui.cc:752 panner_ui.cc:159
msgid "Touch"
msgstr "КаÑание"
@@ -2183,7 +2191,7 @@ msgid "clear automation"
msgstr "ОчиÑтить автоматизацию"
#: automation_time_axis.cc:485 editor_actions.cc:613 editor_markers.cc:857
-#: location_ui.cc:55 plugin_selector.cc:85 route_time_axis.cc:699
+#: location_ui.cc:55 plugin_selector.cc:85 route_time_axis.cc:708
msgid "Hide"
msgstr "Скрыть"
@@ -2204,7 +2212,7 @@ msgstr "ДиÑкретный"
msgid "Linear"
msgstr "ЛинейнаÑ"
-#: automation_time_axis.cc:543 rhythm_ferret.cc:110 route_time_axis.cc:638
+#: automation_time_axis.cc:543 rhythm_ferret.cc:110 route_time_axis.cc:647
#: shuttle_control.cc:188
msgid "Mode"
msgstr "Режим"
@@ -2221,13 +2229,13 @@ msgstr "Изменение пакета"
msgid "Direction:"
msgstr "Ðаправление:"
-#: bundle_manager.cc:205 bundle_manager.cc:209 mixer_strip.cc:156
-#: mixer_strip.cc:2132
+#: bundle_manager.cc:205 bundle_manager.cc:209 mixer_strip.cc:157
+#: mixer_strip.cc:2126
msgid "Input"
msgstr "Вход"
#: bundle_manager.cc:206 bundle_manager.cc:211 bundle_manager.cc:245
-#: mixer_strip.cc:161 mixer_strip.cc:2135
+#: mixer_strip.cc:162 mixer_strip.cc:2129
msgid "Output"
msgstr "Выход"
@@ -2237,8 +2245,8 @@ msgid "Edit"
msgstr "Правка"
#: bundle_manager.cc:265 editor.cc:5493 editor_actions.cc:310
-#: editor_actions.cc:368 plugin_ui.cc:420 processor_box.cc:2227
-#: route_time_axis.cc:704
+#: editor_actions.cc:368 plugin_ui.cc:419 processor_box.cc:2216
+#: route_time_axis.cc:713
msgid "Delete"
msgstr "Удалить"
@@ -2406,7 +2414,7 @@ msgstr "ВремÑ"
#: edit_note_dialog.cc:98 editor_regions.cc:114
#: export_timespan_selector.cc:359 export_timespan_selector.cc:421
-#: location_ui.cc:313 midi_list_editor.cc:114 time_info_box.cc:105
+#: location_ui.cc:317 midi_list_editor.cc:114 time_info_box.cc:105
msgid "Length"
msgstr "ДлительноÑÑ‚ÑŒ"
@@ -2687,8 +2695,8 @@ msgstr "Симметрично"
msgid "Slow"
msgstr "Медленно"
-#: editor.cc:1390 editor.cc:1483 editor.cc:1545 sfdb_ui.cc:1606
-#: sfdb_ui.cc:1715
+#: editor.cc:1390 editor.cc:1483 editor.cc:1545 sfdb_ui.cc:1633
+#: sfdb_ui.cc:1742
msgid "Fast"
msgstr "БыÑтро"
@@ -2708,7 +2716,7 @@ msgstr "Ðктивировать"
msgid "Slowest"
msgstr "Медленнее вÑего"
-#: editor.cc:1572 route_time_axis.cc:1863 selection.cc:1009 selection.cc:1064
+#: editor.cc:1572 route_time_axis.cc:1877 selection.cc:1009 selection.cc:1064
msgid "programming error: "
msgstr "Ошибка в программе: "
@@ -2825,7 +2833,7 @@ msgid "Select All in Track"
msgstr "Выделить вÑÑ‘ на дорожке"
#: editor.cc:1942 editor.cc:2019 editor_actions.cc:185
-#: export_timespan_selector.cc:53 processor_box.cc:2235
+#: export_timespan_selector.cc:53 processor_box.cc:2224
msgid "Select All"
msgstr "Выделить вÑÑ‘"
@@ -2877,15 +2885,15 @@ msgstr "Создать выделение между указателем и кÑ
msgid "Select"
msgstr "Выделить"
-#: editor.cc:1965 editor.cc:2036 editor_actions.cc:309 processor_box.cc:2220
+#: editor.cc:1965 editor.cc:2036 editor_actions.cc:309 processor_box.cc:2209
msgid "Cut"
msgstr "Вырезать"
-#: editor.cc:1966 editor.cc:2037 editor_actions.cc:312 processor_box.cc:2223
+#: editor.cc:1966 editor.cc:2037 editor_actions.cc:312 processor_box.cc:2212
msgid "Copy"
msgstr "Копировать"
-#: editor.cc:1967 editor.cc:2038 editor_actions.cc:313 processor_box.cc:2231
+#: editor.cc:1967 editor.cc:2038 editor_actions.cc:313 processor_box.cc:2220
msgid "Paste"
msgstr "Ð’Ñтавить"
@@ -3090,7 +3098,7 @@ msgstr "ОчиÑтить ÑпиÑки воÑпроизведениÑ"
msgid "Please wait while %1 loads visual data."
msgstr "ДождитеÑÑŒ загрузки визуальных данных в %1."
-#: editor.cc:5492 editor_markers.cc:940 panner_ui.cc:393 processor_box.cc:2251
+#: editor.cc:5492 editor_markers.cc:940 panner_ui.cc:393 processor_box.cc:2240
msgid "Edit..."
msgstr "Изменить"
@@ -3139,7 +3147,7 @@ msgstr "Слои"
msgid "Position"
msgstr "Положение"
-#: editor_actions.cc:101 gain_meter.cc:124 gain_meter.cc:755 panner_ui.cc:177
+#: editor_actions.cc:101 gain_meter.cc:120 gain_meter.cc:787 panner_ui.cc:177
#: panner_ui.cc:586
msgid "Trim"
msgstr "Обрезать"
@@ -3231,8 +3239,8 @@ msgstr "Дополнительный Ñчётчик"
msgid "Separate"
msgstr "Разделить"
-#: editor_actions.cc:132 mixer_strip.cc:1916 route_time_axis.cc:199
-#: route_time_axis.cc:2397
+#: editor_actions.cc:132 mixer_strip.cc:1913 route_time_axis.cc:208
+#: route_time_axis.cc:2417
msgid "Solo"
msgstr "Соло"
@@ -3244,7 +3252,7 @@ msgstr "Подвыборки"
msgid "Timecode fps"
msgstr "СкороÑÑ‚ÑŒ (FPS) тайм-кода"
-#: editor_actions.cc:137 route_time_axis.cc:421
+#: editor_actions.cc:137 route_time_axis.cc:430
msgid "Height"
msgstr "Ð’Ñ‹Ñота"
@@ -3368,7 +3376,7 @@ msgstr "К началу облаÑти"
msgid "Playhead to Range End"
msgstr "К концу облаÑти"
-#: editor_actions.cc:186 export_timespan_selector.cc:61 processor_box.cc:2237
+#: editor_actions.cc:186 export_timespan_selector.cc:61 processor_box.cc:2226
msgid "Deselect All"
msgstr "СнÑÑ‚ÑŒ вÑе выделениÑ"
@@ -3637,8 +3645,8 @@ msgid "Toggle Active"
msgstr "Переключить активноÑÑ‚ÑŒ"
#: editor_actions.cc:370 editor_actions.cc:1716 editor_markers.cc:876
-#: editor_markers.cc:941 editor_snapshots.cc:121 mixer_strip.cc:1488
-#: route_time_axis.cc:701
+#: editor_markers.cc:941 editor_snapshots.cc:121 mixer_strip.cc:1494
+#: route_time_axis.cc:710
msgid "Remove"
msgstr "Удалить"
@@ -3646,19 +3654,19 @@ msgstr "Удалить"
msgid "Fit Selected Tracks"
msgstr "Только выделенные дорожки"
-#: editor_actions.cc:376 time_axis_view.cc:1298
+#: editor_actions.cc:376 time_axis_view.cc:1301
msgid "Largest"
msgstr "ОгромнаÑ"
-#: editor_actions.cc:379 time_axis_view.cc:1299
+#: editor_actions.cc:379 time_axis_view.cc:1302
msgid "Larger"
msgstr "Больше"
-#: editor_actions.cc:382 editor_rulers.cc:375 time_axis_view.cc:1300
+#: editor_actions.cc:382 editor_rulers.cc:375 time_axis_view.cc:1303
msgid "Large"
msgstr "БольшаÑ"
-#: editor_actions.cc:388 editor_rulers.cc:379 time_axis_view.cc:1302
+#: editor_actions.cc:388 editor_rulers.cc:379 time_axis_view.cc:1305
msgid "Small"
msgstr "МаленькаÑ"
@@ -4025,7 +4033,7 @@ msgstr ""
#: editor_actions.cc:652 editor_audio_import.cc:279
#: session_import_dialog.cc:74 session_import_dialog.cc:94
-#: session_metadata_dialog.cc:297 editor_videotimeline.cc:107
+#: session_metadata_dialog.cc:297 editor_videotimeline.cc:108
msgid "Import"
msgstr "Импортировать"
@@ -4103,7 +4111,7 @@ msgstr "Приклеить к тактам и долÑм"
msgid "Remove Sync"
msgstr "Удалить Ñинхронизатор"
-#: editor_actions.cc:1752 mixer_strip.cc:1903 route_time_axis.cc:200
+#: editor_actions.cc:1752 mixer_strip.cc:1903 route_time_axis.cc:209
msgid "Mute"
msgstr "Молча"
@@ -4376,7 +4384,7 @@ msgstr ""
"Ð’ Ñтом ÑеанÑе уже еÑÑ‚ÑŒ иÑходный файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ %1. Ð’Ñ‹ хотите импортировать %2 "
"как новый иÑточник или пропуÑтить его?"
-#: editor_audio_import.cc:279 editor_videotimeline.cc:107
+#: editor_audio_import.cc:279 editor_videotimeline.cc:108
msgid "Cancel Import"
msgstr "Отменить импорт"
@@ -4424,7 +4432,7 @@ msgstr "Ðачало видеофайла"
#: editor_drag.cc:1702
msgid "Diff:"
-msgstr ""
+msgstr "Разница:"
#: editor_drag.cc:1722
msgid "Move Video"
@@ -4610,7 +4618,7 @@ msgid "end"
msgstr "Конец"
#: editor_markers.cc:646 editor_ops.cc:1744 editor_ops.cc:1764
-#: editor_ops.cc:1788 editor_ops.cc:1815 location_ui.cc:1005
+#: editor_ops.cc:1788 editor_ops.cc:1815 location_ui.cc:1017
msgid "add marker"
msgstr "добавка маркера"
@@ -4618,7 +4626,7 @@ msgstr "добавка маркера"
msgid "range"
msgstr "облаÑÑ‚ÑŒ"
-#: editor_markers.cc:713 location_ui.cc:840
+#: editor_markers.cc:713 location_ui.cc:852
msgid "remove marker"
msgstr "удаление маркера"
@@ -4695,7 +4703,7 @@ msgid "Rename Range"
msgstr "Переименовать выделение"
#: editor_markers.cc:1363 editor_mouse.cc:2510 processor_box.cc:1768
-#: processor_box.cc:2233 route_time_axis.cc:968 route_ui.cc:1535
+#: processor_box.cc:2222 route_time_axis.cc:982 route_ui.cc:1535
msgid "Rename"
msgstr "Переименовать"
@@ -5326,7 +5334,7 @@ msgstr ""
msgid "Length of region fade-out (units: secondary clock), () if dsisabled"
msgstr ""
-#: editor_regions.cc:118 mixer_strip.cc:1960 mono_panner.cc:179
+#: editor_regions.cc:118 mixer_strip.cc:1953 mono_panner.cc:179
#: stereo_panner.cc:217 stereo_panner.cc:240
msgid "L"
msgstr "Л"
@@ -5343,8 +5351,9 @@ msgstr ""
msgid "Region position glued to Bars|Beats time?"
msgstr ""
-#: editor_regions.cc:120 editor_routes.cc:207 gain_meter.cc:723
-#: mixer_strip.cc:1934 panner_ui.cc:554 stereo_panner.cc:237
+#: editor_regions.cc:120 editor_routes.cc:207 gain_meter.cc:755
+#: mixer_strip.cc:1930 meter_strip.cc:272 panner_ui.cc:554
+#: stereo_panner.cc:237
msgid "M"
msgstr "Ð’"
@@ -5413,7 +5422,8 @@ msgstr "Ðазвание дорожи/шины"
msgid "Track/Bus visible ?"
msgstr "Дорожка или шина видима?"
-#: editor_routes.cc:204 mixer_strip.cc:1951 route_time_axis.cc:2387
+#: editor_routes.cc:204 mixer_strip.cc:1944 meter_strip.cc:286
+#: route_time_axis.cc:2407
msgid "A"
msgstr "A"
@@ -5421,7 +5431,7 @@ msgstr "A"
msgid "Track/Bus active ?"
msgstr "Дорожка или шина активна?"
-#: editor_routes.cc:205 mixer_strip.cc:1935
+#: editor_routes.cc:205 mixer_strip.cc:1931
msgid "I"
msgstr "Ð’Ð¥"
@@ -5429,7 +5439,7 @@ msgstr "Ð’Ð¥"
msgid "MIDI input enabled"
msgstr "Вход MIDI включен"
-#: editor_routes.cc:206 mixer_strip.cc:1933 mono_panner.cc:198
+#: editor_routes.cc:206 mixer_strip.cc:1929 mono_panner.cc:198
#: stereo_panner.cc:215 stereo_panner.cc:242
msgid "R"
msgstr "П"
@@ -5442,7 +5452,7 @@ msgstr "ГотовноÑÑ‚ÑŒ к запиÑи"
msgid "Muted"
msgstr ""
-#: editor_routes.cc:208 mixer_strip.cc:1947
+#: editor_routes.cc:208 mixer_strip.cc:1940 meter_strip.cc:282
msgid "S"
msgstr "S"
@@ -5454,7 +5464,7 @@ msgstr "..."
msgid "SI"
msgstr ""
-#: editor_routes.cc:209 mixer_strip.cc:351 rc_option_editor.cc:1872
+#: editor_routes.cc:209 mixer_strip.cc:352 rc_option_editor.cc:1872
msgid "Solo Isolated"
msgstr "Изолирование Ñоло"
@@ -5736,7 +5746,7 @@ msgstr "192КГц"
#: engine_dialog.cc:127 engine_dialog.cc:132 engine_dialog.cc:169
#: engine_dialog.cc:552 midi_channel_selector.cc:163
#: midi_channel_selector.cc:402 midi_channel_selector.cc:438
-#: rc_option_editor.cc:1250 sfdb_ui.cc:542
+#: rc_option_editor.cc:1250 sfdb_ui.cc:541
msgid "None"
msgstr "Ðет"
@@ -5785,7 +5795,7 @@ msgstr "Драйвер:"
msgid "Audio Interface:"
msgstr "Звуковой интерфейÑ:"
-#: engine_dialog.cc:187 sfdb_ui.cc:148 sfdb_ui.cc:261 sfdb_ui.cc:266
+#: engine_dialog.cc:187 sfdb_ui.cc:149 sfdb_ui.cc:262 sfdb_ui.cc:267
msgid "Sample rate:"
msgstr "ЧаÑтота ÑÑмплированиÑ:"
@@ -5907,7 +5917,7 @@ msgstr "Значению AudioSetup Ð´Ð»Ñ %1 не хватает данных"
msgid "configuration files contain a JACK server path that doesn't exist (%1)"
msgstr ""
-#: export_channel_selector.cc:45 sfdb_ui.cc:146
+#: export_channel_selector.cc:45 sfdb_ui.cc:147
msgid "Channels:"
msgstr "Каналов:"
@@ -6184,6 +6194,10 @@ msgstr "Параметры FLAC"
msgid "Broadcast Wave options"
msgstr "Параметры Broadcast Wave"
+#: export_format_selector.cc:136
+msgid "Do you really want to remove the format?"
+msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот формат?"
+
#: export_preset_selector.cc:28
msgid "Preset"
msgstr "Профиль"
@@ -6194,6 +6208,10 @@ msgid ""
"Perhaps it references a format that has been removed?"
msgstr ""
+#: export_preset_selector.cc:156
+msgid "Do you really want to remove this preset?"
+msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот профиль?"
+
#: export_timespan_selector.cc:46
msgid "Show Times as:"
msgstr "Показать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº:"
@@ -6206,36 +6224,32 @@ msgstr " до "
msgid "Range"
msgstr "Диапазон"
-#: gain_meter.cc:109 gain_meter.cc:431 gain_meter.cc:820
+#: gain_meter.cc:105 gain_meter.cc:356 gain_meter.cc:461 gain_meter.cc:852
msgid "-inf"
msgstr "-inf"
-#: gain_meter.cc:115 gain_meter.cc:869
+#: gain_meter.cc:111 gain_meter.cc:909
msgid "Fader automation mode"
msgstr "Режим автоматизации фейдера"
-#: gain_meter.cc:116 gain_meter.cc:870
+#: gain_meter.cc:112 gain_meter.cc:910
msgid "Fader automation type"
msgstr "Тип автоматизации фейдера"
-#: gain_meter.cc:125 gain_meter.cc:759 panner_ui.cc:178 panner_ui.cc:590
+#: gain_meter.cc:121 gain_meter.cc:791 panner_ui.cc:178 panner_ui.cc:590
msgid "Abs"
msgstr "ÐбÑ"
-#: gain_meter.cc:334
-msgid "-Inf"
-msgstr "-Inf"
-
-#: gain_meter.cc:726 mixer_strip.cc:1954 panner_ui.cc:557
-#: route_time_axis.cc:2391
+#: gain_meter.cc:758 mixer_strip.cc:1947 meter_strip.cc:289 panner_ui.cc:557
+#: route_time_axis.cc:2411
msgid "P"
msgstr "P"
-#: gain_meter.cc:729 panner_ui.cc:560
+#: gain_meter.cc:761 panner_ui.cc:560
msgid "T"
msgstr "К"
-#: gain_meter.cc:732 panner_ui.cc:563
+#: gain_meter.cc:764 panner_ui.cc:563
msgid "W"
msgstr "З"
@@ -6247,7 +6261,7 @@ msgstr "<span size=\"large\">Профили</span>"
msgid "Switches"
msgstr "Переключатели"
-#: generic_pluginui.cc:242 generic_pluginui.cc:376 processor_box.cc:2210
+#: generic_pluginui.cc:242 generic_pluginui.cc:376 processor_box.cc:2199
msgid "Controls"
msgstr "Управление"
@@ -6275,7 +6289,7 @@ msgstr "Управление звуковыми ÑоединениÑми"
msgid "MIDI Connection Manager"
msgstr "Управление MIDI-ÑоединениÑми"
-#: global_port_matrix.cc:204 io_selector.cc:216
+#: global_port_matrix.cc:213 io_selector.cc:216
msgid "port"
msgstr "порт"
@@ -6427,11 +6441,11 @@ msgstr "ИмпортируетÑÑ Ñ„Ð°Ð¹Ð»: %1 из %2"
msgid "I/O selector"
msgstr "Выбор входов и выходов"
-#: io_selector.cc:266
+#: io_selector.cc:265
msgid "%1 input"
msgstr "%1 вход"
-#: io_selector.cc:268
+#: io_selector.cc:267
msgid "%1 output"
msgstr "%1 выход"
@@ -6507,7 +6521,7 @@ msgstr[2] "%1 ÑÑмплов"
msgid "Reset"
msgstr "СброÑить"
-#: latency_gui.cc:151 rhythm_ferret.cc:274 sfdb_ui.cc:1734
+#: latency_gui.cc:151 rhythm_ferret.cc:274 sfdb_ui.cc:1761
msgid "programming error: %1 (%2)"
msgstr "Ошибка в программе: %1 (%2)"
@@ -6535,63 +6549,63 @@ msgstr "Композитор:"
msgid "Pre-Emphasis"
msgstr ""
-#: location_ui.cc:310
+#: location_ui.cc:314
msgid "Remove this range"
msgstr "Удалить Ñту облаÑÑ‚ÑŒ"
-#: location_ui.cc:311
+#: location_ui.cc:315
msgid "Start time - middle click to locate here"
msgstr ""
-#: location_ui.cc:312
+#: location_ui.cc:316
msgid "End time - middle click to locate here"
msgstr ""
-#: location_ui.cc:315
+#: location_ui.cc:319
msgid "Set range start from playhead location"
msgstr "УÑтановить начало диапазона по указателю воÑпроизведениÑ"
-#: location_ui.cc:316
+#: location_ui.cc:320
msgid "Set range end from playhead location"
msgstr "УÑтановить конец диапазона по указателю воÑпроизведениÑ"
-#: location_ui.cc:320
+#: location_ui.cc:324
msgid "Remove this marker"
msgstr "Удалить Ñтот маркер"
-#: location_ui.cc:321
+#: location_ui.cc:325
msgid "Position - middle click to locate here"
msgstr ""
-#: location_ui.cc:323
+#: location_ui.cc:327
msgid "Set marker time from playhead location"
msgstr ""
-#: location_ui.cc:462
+#: location_ui.cc:494
msgid "You cannot put a CD marker at the start of the session"
msgstr "Размещение маркера CD в начале ÑеанÑа невозможно"
-#: location_ui.cc:708
+#: location_ui.cc:720
msgid "New Marker"
msgstr "Создать маркер"
-#: location_ui.cc:709
+#: location_ui.cc:721
msgid "New Range"
msgstr "Создать облаÑÑ‚ÑŒ"
-#: location_ui.cc:722
+#: location_ui.cc:734
msgid "<b>Loop/Punch Ranges</b>"
msgstr "<b>Диапазоны петель/врезок</b>"
-#: location_ui.cc:747
+#: location_ui.cc:759
msgid "<b>Markers (Including CD Index)</b>"
msgstr "<b>Маркеры (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸Ð½Ð´ÐµÐºÑ CD)</b>"
-#: location_ui.cc:782
+#: location_ui.cc:794
msgid "<b>Ranges (Including CD Track Ranges)</b>"
msgstr "<b>Диапазоны (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ‹ дорожек CD)</b>"
-#: location_ui.cc:1024
+#: location_ui.cc:1036
msgid "add range marker"
msgstr "добавка маркера выделениÑ"
@@ -7263,152 +7277,152 @@ msgstr ""
msgid "Could not find mixer.bindings in search path %1"
msgstr ""
-#: mixer_strip.cc:91 mixer_strip.cc:119 mixer_strip.cc:1720
+#: mixer_strip.cc:92 mixer_strip.cc:120 mixer_strip.cc:1720
msgid "pre"
msgstr "lj"
-#: mixer_strip.cc:93 mixer_strip.cc:121 mixer_strip.cc:352 mixer_strip.cc:1293
+#: mixer_strip.cc:94 mixer_strip.cc:122 mixer_strip.cc:353 mixer_strip.cc:1299
#: rc_option_editor.cc:1873
msgid "Comments"
msgstr "Комментарии"
-#: mixer_strip.cc:145
+#: mixer_strip.cc:146
msgid "Click to toggle the width of this mixer strip."
msgstr "Щёлкните Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ñ‹ полоÑки микшера"
-#: mixer_strip.cc:147
+#: mixer_strip.cc:148
msgid ""
"\n"
"%1-%2-click to toggle the width of all strips."
msgstr ""
-#: mixer_strip.cc:154
+#: mixer_strip.cc:155
msgid "Hide this mixer strip"
msgstr "Скрыть полоÑку микшера"
-#: mixer_strip.cc:165
+#: mixer_strip.cc:166
msgid "Click to select metering point"
msgstr "Щёлкните Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° точка замера"
-#: mixer_strip.cc:171
+#: mixer_strip.cc:172
msgid "tupni"
msgstr ""
-#: mixer_strip.cc:190
+#: mixer_strip.cc:191
msgid "Isolate Solo"
msgstr "Изолировать Ñоло"
-#: mixer_strip.cc:199
+#: mixer_strip.cc:200
msgid "Lock Solo Status"
msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ ÑолированиÑ"
-#: mixer_strip.cc:201 mixer_strip.cc:1929
+#: mixer_strip.cc:202 mixer_strip.cc:1925
msgid "lock"
msgstr "Блок"
-#: mixer_strip.cc:202 mixer_strip.cc:1928
+#: mixer_strip.cc:203 mixer_strip.cc:1924
msgid "iso"
msgstr "Изол"
-#: mixer_strip.cc:256
+#: mixer_strip.cc:257
msgid "Mix group"
msgstr "Группа микÑа"
-#: mixer_strip.cc:349 rc_option_editor.cc:1870
+#: mixer_strip.cc:350 rc_option_editor.cc:1870
msgid "Phase Invert"
msgstr "ИнверÑÐ¸Ñ Ñ„Ð°Ð·Ñ‹"
-#: mixer_strip.cc:350 rc_option_editor.cc:1871 route_ui.cc:1213
+#: mixer_strip.cc:351 rc_option_editor.cc:1871 route_ui.cc:1213
msgid "Solo Safe"
msgstr "Блокировка ÑолированиÑ"
-#: mixer_strip.cc:353 mixer_ui.cc:124 route_time_axis.cc:664
+#: mixer_strip.cc:354 mixer_ui.cc:124 route_time_axis.cc:673
msgid "Group"
msgstr "Группа"
-#: mixer_strip.cc:354 rc_option_editor.cc:1874
+#: mixer_strip.cc:355 rc_option_editor.cc:1874
msgid "Meter Point"
msgstr "Точка измерениÑ"
-#: mixer_strip.cc:466
+#: mixer_strip.cc:469
msgid "Enable/Disable MIDI input"
msgstr "Включить или выключить MIDI-вход"
-#: mixer_strip.cc:616
+#: mixer_strip.cc:621
msgid ""
"Aux\n"
"Sends"
msgstr ""
-#: mixer_strip.cc:640
+#: mixer_strip.cc:645
msgid "Snd"
msgstr "ПÑл"
-#: mixer_strip.cc:694 mixer_strip.cc:822 processor_box.cc:2152
+#: mixer_strip.cc:700 mixer_strip.cc:828 processor_box.cc:2141
msgid "Not connected to JACK - no I/O changes are possible"
msgstr "Ðет ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ JACK, любые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð°-выхода невозможны"
-#: mixer_strip.cc:1089
+#: mixer_strip.cc:1095
msgid "<b>INPUT</b> to %1"
msgstr "<b>ВХОД</b> в %1"
-#: mixer_strip.cc:1092
+#: mixer_strip.cc:1098
msgid "<b>OUTPUT</b> from %1"
msgstr "<b>ВЫХОД</b> из %1"
-#: mixer_strip.cc:1167
+#: mixer_strip.cc:1173
msgid "Disconnected"
msgstr "Ðет ÑоединениÑ"
-#: mixer_strip.cc:1296
+#: mixer_strip.cc:1302
msgid "*Comments*"
msgstr "*Кмт*"
-#: mixer_strip.cc:1303
+#: mixer_strip.cc:1309
msgid "Cmt"
msgstr "Кмт"
-#: mixer_strip.cc:1306
+#: mixer_strip.cc:1312
msgid "*Cmt*"
msgstr "*Кмт*"
-#: mixer_strip.cc:1312
+#: mixer_strip.cc:1318
msgid "Click to Add/Edit Comments"
msgstr "Ðажмите Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ/правки комментариев"
-#: mixer_strip.cc:1351
+#: mixer_strip.cc:1357
msgid ": comment editor"
msgstr ": редактор комментариев"
-#: mixer_strip.cc:1428
+#: mixer_strip.cc:1434
msgid "Grp"
msgstr "Грп"
-#: mixer_strip.cc:1431
+#: mixer_strip.cc:1437
msgid "~G"
msgstr "нГр"
-#: mixer_strip.cc:1460
+#: mixer_strip.cc:1466
msgid "Comments..."
msgstr "Комментарии..."
-#: mixer_strip.cc:1462
+#: mixer_strip.cc:1468
msgid "Save As Template..."
msgstr "Сохранить как шаблон..."
-#: mixer_strip.cc:1468 route_group_dialog.cc:39 route_time_axis.cc:687
+#: mixer_strip.cc:1474 route_group_dialog.cc:39 route_time_axis.cc:696
msgid "Active"
msgstr "ÐктивноÑÑ‚ÑŒ"
-#: mixer_strip.cc:1475
+#: mixer_strip.cc:1481
msgid "Adjust Latency..."
msgstr "Скорректировать задержку..."
-#: mixer_strip.cc:1478
+#: mixer_strip.cc:1484
msgid "Protect Against Denormals"
msgstr "Защищать от отклонений"
-#: mixer_strip.cc:1484 route_time_axis.cc:426
+#: mixer_strip.cc:1490 route_time_axis.cc:435
msgid "Remote Control ID..."
msgstr "ID Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ управлениÑ..."
@@ -7448,31 +7462,63 @@ msgstr ""
msgid "Disk"
msgstr "ДиÑк"
-#: mixer_strip.cc:1920 monitor_section.cc:63
+#: mixer_strip.cc:1917 monitor_section.cc:63
msgid "AFL"
msgstr "AFL"
-#: mixer_strip.cc:1923 monitor_section.cc:64
+#: mixer_strip.cc:1920 monitor_section.cc:64
msgid "PFL"
msgstr "PFL"
-#: mixer_strip.cc:1936
+#: mixer_strip.cc:1932
msgid "D"
msgstr ""
-#: mixer_strip.cc:1959
+#: mixer_strip.cc:1952
#, fuzzy
msgid "i"
msgstr "вх"
-#: mixer_strip.cc:2133
+#: mixer_strip.cc:2127
msgid "Pre-fader"
msgstr "До фейдера"
-#: mixer_strip.cc:2134
+#: mixer_strip.cc:2128
msgid "Post-fader"
msgstr "ПоÑле фейдера"
+#: mixer_strip.cc:2135 meter_strip.cc:575
+msgid "Peak"
+msgstr "Пиковое значение"
+
+#: mixer_strip.cc:2136 meter_strip.cc:576
+msgid "RMS + Peak"
+msgstr "Среднеквадратичное + пиковое значение"
+
+#: mixer_strip.cc:2155 meter_strip.cc:579
+msgid "Change all in Group to Peak"
+msgstr "ПоменÑÑ‚ÑŒ вÑе в группе на пиковое"
+
+#: mixer_strip.cc:2156 meter_strip.cc:580
+msgid "Change all in Group to RMS + Peak"
+msgstr "ПоменÑÑ‚ÑŒ вÑе в группе на Ñреднеквадратичное + пиковое"
+
+#: mixer_strip.cc:2157 meter_strip.cc:581
+msgid "Change all to Peak"
+msgstr "ПоменÑÑ‚ÑŒ вÑе на пиковое"
+
+#: mixer_strip.cc:2158 meter_strip.cc:582
+msgid "Change all to RMS + Peak"
+msgstr "ПоменÑÑ‚ÑŒ вÑе на Ñреднеквадратичное + пиковое"
+
+#: mixer_strip.cc:2159 meter_strip.cc:583
+msgid "Change same track-type to Peak"
+msgstr "ПоменÑÑ‚ÑŒ дорожки одного типа на пиковое"
+
+#: mixer_strip.cc:2160 meter_strip.cc:584
+msgid "Change same track-type to RMS + Peak"
+msgstr "ПоменÑÑ‚ÑŒ дорожки одного типа на Ñреднеквадратичное + пиковое"
+
#: mixer_ui.cc:1189
msgid "track display list item for renamed strip not found!"
msgstr ""
@@ -7481,7 +7527,7 @@ msgstr ""
msgid "-all-"
msgstr "-вÑе-"
-#: mixer_ui.cc:1792
+#: mixer_ui.cc:1794
msgid "Strips"
msgstr "Каналы"
@@ -7642,7 +7688,7 @@ msgstr "Левый:%3d, Правый:%3d"
#: mono_panner_editor.cc:33
msgid "Mono Panner"
-msgstr ""
+msgstr "Монопанорама"
#: mono_panner_editor.cc:44 mono_panner_editor.cc:49
#: stereo_panner_editor.cc:46 stereo_panner_editor.cc:51
@@ -7865,7 +7911,7 @@ msgstr ""
msgid "Panner (2D)"
msgstr "Панорамирование (2D)"
-#: panner2d.cc:783 panner_ui.cc:384 plugin_ui.cc:452
+#: panner2d.cc:783 panner_ui.cc:384 plugin_ui.cc:451
msgid "Bypass"
msgstr "Обход"
@@ -8038,7 +8084,7 @@ msgstr "По категории"
msgid "Eh? LADSPA plugins don't have editors!"
msgstr "Что? У Ñффектов LADSPA нет Ñвоих редакторов!"
-#: plugin_ui.cc:125 plugin_ui.cc:228
+#: plugin_ui.cc:125 plugin_ui.cc:227
msgid ""
"unknown type of editor-supplying plugin (note: no VST support in this "
"version of %1)"
@@ -8048,51 +8094,51 @@ msgstr ""
msgid "unknown type of editor-supplying plugin"
msgstr ""
-#: plugin_ui.cc:258
+#: plugin_ui.cc:257
msgid ""
"unknown type of editor-supplying plugin (note: no linuxVST support in this "
"version of %1)"
msgstr ""
-#: plugin_ui.cc:330
+#: plugin_ui.cc:329
msgid "create_lv2_editor called on non-LV2 plugin"
msgstr ""
-#: plugin_ui.cc:418
+#: plugin_ui.cc:417
msgid "Add"
msgstr "Добавить"
-#: plugin_ui.cc:422
+#: plugin_ui.cc:421
msgid "Description"
msgstr "ОпиÑание"
-#: plugin_ui.cc:423
+#: plugin_ui.cc:422
msgid "Plugin analysis"
msgstr "ЧаÑтотный анализ модулÑ"
-#: plugin_ui.cc:430
+#: plugin_ui.cc:429
msgid ""
"Presets (if any) for this plugin\n"
"(Both factory and user-created)"
msgstr "Ð’Ñе доÑтупные профили Ñтого модулÑ,как «заводÑкие», так и ÑобÑтвенные"
-#: plugin_ui.cc:431
+#: plugin_ui.cc:430
msgid "Save a new preset"
msgstr "Сохранить новый профиль"
-#: plugin_ui.cc:432
+#: plugin_ui.cc:431
msgid "Save the current preset"
msgstr "Сохранить текущий профиль"
-#: plugin_ui.cc:433
+#: plugin_ui.cc:432
msgid "Delete the current preset"
msgstr "Удалить текущий профиль"
-#: plugin_ui.cc:434
+#: plugin_ui.cc:433
msgid "Disable signal processing by the plugin"
msgstr "Выключить обработку Ñигнала Ñтим модулем"
-#: plugin_ui.cc:467 plugin_ui.cc:632
+#: plugin_ui.cc:466 plugin_ui.cc:662
msgid ""
"Click to allow the plugin to receive keyboard events that %1 would normally "
"use as a shortcut"
@@ -8100,30 +8146,42 @@ msgstr ""
"Щёлкните, чтобы разрешить Ñтому модулю получать клавиатурные ÑобытиÑ, "
"которые %1 обычно иÑпользует как горÑчие клавиши"
-#: plugin_ui.cc:468
+#: plugin_ui.cc:467
msgid "Click to enable/disable this plugin"
msgstr "Щелкните, чтобы включить или отключить Ñтот модуль"
-#: plugin_ui.cc:507
+#: plugin_ui.cc:506
msgid "latency (%1 sample)"
msgid_plural "latency (%1 samples)"
msgstr[0] "Задержка (%1 ÑÑмпл)"
msgstr[1] "Задержка (%1 ÑÑмпла)"
msgstr[2] "Задержка (%1 ÑÑмплов)"
-#: plugin_ui.cc:509
+#: plugin_ui.cc:508
msgid "latency (%1 ms)"
msgstr "Задержка (%1 мÑ)"
-#: plugin_ui.cc:520
+#: plugin_ui.cc:519
msgid "Edit Latency"
msgstr "Изменить задержку"
-#: plugin_ui.cc:559
+#: plugin_ui.cc:558
msgid "Plugin preset %1 not found"
msgstr "ПредуÑтановка Ð¼Ð¾Ð´ÑƒÐ»Ñ %1 не обнаружена"
-#: plugin_ui.cc:639
+#: plugin_ui.cc:595
+msgid ""
+"Plugin presets are not supported in this build of %1. Consider paying for a "
+"full version"
+msgstr ""
+
+#: plugin_ui.cc:615 plugin_ui.cc:630
+msgid ""
+"Plugin presets are not supported in this build of %1. Consider paying for a "
+"newer version"
+msgstr ""
+
+#: plugin_ui.cc:669
msgid "Click to allow normal use of %1 keyboard shortcuts"
msgstr ""
"Щёлкните, чтобы переключитьÑÑ Ð½Ð° обычное иÑпользование горÑчих клавиш %1"
@@ -8228,46 +8286,46 @@ msgstr "ВыполнÑетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ðµ..."
msgid "Port Insert "
msgstr "Ð’Ñтавка порта"
-#: port_matrix.cc:323 port_matrix.cc:342
+#: port_matrix.cc:325 port_matrix.cc:344
msgid "<b>Sources</b>"
msgstr "<b>ИÑточники</b>"
-#: port_matrix.cc:324 port_matrix.cc:343
+#: port_matrix.cc:326 port_matrix.cc:345
msgid "<b>Destinations</b>"
msgstr "<b>ÐазначениÑ</b>"
-#: port_matrix.cc:419 port_matrix.cc:427
+#: port_matrix.cc:421 port_matrix.cc:429
#, c-format
msgid "Add %s %s"
msgstr "Добавить %s %s"
-#: port_matrix.cc:435
+#: port_matrix.cc:437
#, c-format
msgid "Rename '%s'..."
msgstr "Переименовать '%s'..."
-#: port_matrix.cc:451
+#: port_matrix.cc:453
msgid "Remove all"
msgstr "Удалить вÑе"
-#: port_matrix.cc:471 port_matrix.cc:483
+#: port_matrix.cc:473 port_matrix.cc:485
#, c-format
msgid "%s all"
msgstr "%s вÑе"
-#: port_matrix.cc:506
+#: port_matrix.cc:508
msgid "Rescan"
msgstr "ПроÑканировать заново"
-#: port_matrix.cc:508
+#: port_matrix.cc:510
msgid "Show individual ports"
msgstr "Показывать порты раздельно"
-#: port_matrix.cc:514
+#: port_matrix.cc:516
msgid "Flip"
msgstr "Повернуть матрицу"
-#: port_matrix.cc:702
+#: port_matrix.cc:704
msgid ""
"It is not possible to add a port here, as the first processor in the track "
"or buss cannot support the new configuration."
@@ -8275,31 +8333,31 @@ msgstr ""
"Ðевозможно добавить Ñюда порт, поÑкольку первый обработчик дорожки или шины "
"не может поддерживать новую конфигурацию."
-#: port_matrix.cc:705
+#: port_matrix.cc:707
msgid "Cannot add port"
msgstr "Ðевозможно добавить порт"
-#: port_matrix.cc:727
+#: port_matrix.cc:729
msgid "Port removal not allowed"
msgstr "Удаление портов не разрешено"
-#: port_matrix.cc:728
+#: port_matrix.cc:730
msgid ""
"This port cannot be removed, as the first plugin in the track or buss cannot "
"accept the new number of inputs."
msgstr ""
-#: port_matrix.cc:945
+#: port_matrix.cc:947
#, c-format
msgid "Remove '%s'"
msgstr "Удалить '%s'"
-#: port_matrix.cc:960
+#: port_matrix.cc:962
#, c-format
msgid "%s all from '%s'"
msgstr "%s вÑе из '%s'"
-#: port_matrix.cc:1026
+#: port_matrix.cc:1028
msgid "channel"
msgstr "канал"
@@ -8317,12 +8375,17 @@ msgid ""
"Double-click to show GUI.\n"
"Alt+double-click to show generic GUI."
msgstr ""
+"<b>%1</b>\n"
+"Двойной щелчок вызывает ÑобÑтвенный диалог модулÑ.\n"
+"Alt+ двойной щелчок вызывает генерируемый хоÑтом диалог Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸."
#: processor_box.cc:258
msgid ""
"<b>%1</b>\n"
"Double-click to show generic GUI."
msgstr ""
+"<b>%1</b>\n"
+"Двойной щелчок вызывает генерируемый хоÑтом диалог Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸."
#: processor_box.cc:371
msgid "Show All Controls"
@@ -8479,51 +8542,51 @@ msgstr ""
"поÑлефейдерные обработчики из \"%1\" ?\n"
"(отмена невозможна)"
-#: processor_box.cc:2198
+#: processor_box.cc:2187
msgid "New Plugin"
msgstr "Добавить модуль"
-#: processor_box.cc:2201
+#: processor_box.cc:2190
msgid "New Insert"
msgstr "Добавить возврат"
-#: processor_box.cc:2204
+#: processor_box.cc:2193
msgid "New External Send ..."
msgstr "Добавить внешний поÑыл Ñ Ð¿Ð¾Ñ€Ñ‚Ð¾Ð¼ JACK..."
-#: processor_box.cc:2208
+#: processor_box.cc:2197
msgid "New Aux Send ..."
msgstr "Добавить внешний поÑыл без порта JACK..."
-#: processor_box.cc:2212
+#: processor_box.cc:2201
msgid "Clear (all)"
msgstr "ОчиÑтить (вÑÑ‘)"
-#: processor_box.cc:2214
+#: processor_box.cc:2203
msgid "Clear (pre-fader)"
msgstr "ОчиÑтить (до фейдера)"
-#: processor_box.cc:2216
+#: processor_box.cc:2205
msgid "Clear (post-fader)"
msgstr "ОчиÑтить (поÑле фейдера)"
-#: processor_box.cc:2242
+#: processor_box.cc:2231
msgid "Activate All"
msgstr "Ðктивировать вÑе"
-#: processor_box.cc:2244
+#: processor_box.cc:2233
msgid "Deactivate All"
msgstr "Деактивировать вÑе"
-#: processor_box.cc:2246
+#: processor_box.cc:2235
msgid "A/B Plugins"
msgstr "Отключить вÑе"
-#: processor_box.cc:2255
+#: processor_box.cc:2244
msgid "Edit with generic controls..."
msgstr "Изменить Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñом хоÑта..."
-#: processor_box.cc:2531
+#: processor_box.cc:2544
msgid "%1: %2 (by %3)"
msgstr "%1: %2 (автор — %3)"
@@ -8644,7 +8707,6 @@ msgid "Recording (seconds of buffering):"
msgstr "ЗапиÑÑŒ (в Ñекундах):"
#: rc_option_editor.cc:656
-#, fuzzy
msgid "Control Surface Protocol"
msgstr "УÑтройÑтва управлениÑ"
@@ -8660,11 +8722,11 @@ msgstr ""
#: rc_option_editor.cc:817
msgid "Show Video Export Info before export"
-msgstr ""
+msgstr "Показывать диалог Ñ Ð²Ð²Ð¾Ð´Ð½Ð¾Ð¹ информацией об ÑкÑпорте видео"
#: rc_option_editor.cc:818
msgid "Show Video Server Startup Dialog"
-msgstr ""
+msgstr "Показывать диалог Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ видеоÑервера"
#: rc_option_editor.cc:819
msgid "Advanced Setup (remote video server)"
@@ -8705,12 +8767,16 @@ msgid ""
"<b>When enabled</b> an information window with details is displayed before "
"the video-export dialog."
msgstr ""
+"<b>ЕÑли включено,</b> перед ÑкÑпортом видео показываетÑÑ Ð¾ÐºÐ½Ð¾ Ñо Ñправочной "
+"информацией"
#: rc_option_editor.cc:853
msgid ""
"<b>When enabled</b> the video server is never launched automatically without "
"confirmation"
msgstr ""
+"<b>ЕÑли включено,</b> видеоÑервер никогда автоматичеÑки не запуÑкаетÑÑ Ð±ÐµÐ· "
+"подтверждениÑ"
#: rc_option_editor.cc:993
msgid "%1 Preferences"
@@ -8772,7 +8838,7 @@ msgstr "МакÑимальное чиÑло недавних ÑеанÑов"
msgid "Click gain level"
msgstr "Уровень щелчка метронома"
-#: rc_option_editor.cc:1083 route_time_axis.cc:206 route_time_axis.cc:667
+#: rc_option_editor.cc:1083 route_time_axis.cc:215 route_time_axis.cc:676
msgid "Automation"
msgstr "ÐвтоматизациÑ"
@@ -9228,23 +9294,23 @@ msgstr "Солирование приоритетнее приглушениÑ"
#: rc_option_editor.cc:1665
msgid "Default track / bus muting options"
-msgstr "Параметры Ð¿Ñ€Ð¸Ð³Ð»ÑƒÑˆÐµÐ½Ð¸Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸/шины по умолчанию"
+msgstr "Приглушение дорожек и шин по умолчанию затрагивает"
#: rc_option_editor.cc:1670
msgid "Mute affects pre-fader sends"
-msgstr "Приглушение затрагивает предфейдерные поÑылы"
+msgstr "Предфейдерные поÑылы"
#: rc_option_editor.cc:1678
msgid "Mute affects post-fader sends"
-msgstr "Приглушение затрагивает поÑлефейдерные поÑылы"
+msgstr "ПоÑлефейдерные поÑылы"
#: rc_option_editor.cc:1686
msgid "Mute affects control outputs"
-msgstr "Приглушение затрагивает выходы мониторинга"
+msgstr "Выходы мониторинга"
#: rc_option_editor.cc:1694
msgid "Mute affects main outputs"
-msgstr "Приглушение затрагивает оÑновные выходы"
+msgstr "ОÑновные выходы"
#: rc_option_editor.cc:1710
msgid "Send MIDI Time Code"
@@ -9300,6 +9366,9 @@ msgid ""
" <i>(requires a restart of %1 to take effect)</i>\n"
" <i>(if available for your language preferences)</i>"
msgstr ""
+"ИÑпользовать перевод интерфейÑа %1\n"
+" <i>(вÑтупает в Ñилу поÑле перезапуÑка %1)</i>\n"
+" <i>(еÑли Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ñзыка доÑтупна)</i>"
#: rc_option_editor.cc:1812
msgid "Keyboard"
@@ -9323,7 +9392,8 @@ msgstr "Следуют порÑдку редактора"
#: rc_option_editor.cc:1838 rc_option_editor.cc:1846 rc_option_editor.cc:1856
#: rc_option_editor.cc:1877 rc_option_editor.cc:1886 rc_option_editor.cc:1894
-#: rc_option_editor.cc:1908 rc_option_editor.cc:1925
+#: rc_option_editor.cc:1908 rc_option_editor.cc:1927 rc_option_editor.cc:1943
+#: rc_option_editor.cc:1957
msgid "Preferences|GUI"
msgstr "ИнтерфейÑ"
@@ -9341,7 +9411,7 @@ msgstr "ИнтерфейÑ"
#: rc_option_editor.cc:1862
msgid "update transport clock display every 40ms instead of every 100ms"
-msgstr ""
+msgstr "ОбновлÑÑ‚ÑŒ Ñчётчик транÑпорта каждые 40Ð¼Ñ Ð²Ð¼ÐµÑто каждых 100мÑ"
#: rc_option_editor.cc:1879
msgid "Mixer Strip"
@@ -9352,14 +9422,14 @@ msgid "Use narrow strips in the mixer by default"
msgstr "ИÑпользовать тонкие полоÑки в микшере по умолчанию"
#: rc_option_editor.cc:1898
-msgid "Meter hold time"
-msgstr "Задержка индикатора"
+msgid "Peak hold time"
+msgstr "Удерживание пика"
#: rc_option_editor.cc:1904
msgid "short"
msgstr "Короткое"
-#: rc_option_editor.cc:1905 rc_option_editor.cc:1920
+#: rc_option_editor.cc:1905
msgid "medium"
msgstr "Среднее"
@@ -9368,28 +9438,74 @@ msgid "long"
msgstr "Долгое"
#: rc_option_editor.cc:1912
-msgid "Meter fall-off"
-msgstr "Спадание индикатора"
+msgid "DPM fall-off"
+msgstr "СкороÑÑ‚ÑŒ ÑпаданиÑ"
#: rc_option_editor.cc:1918
-msgid "slowest"
-msgstr "Самое медленное"
+msgid "slowest [6.6dB/sec]"
+msgstr "Самое медленное [6,6 Дб/Ñ]"
#: rc_option_editor.cc:1919
-msgid "slow"
-msgstr "Медленное"
+msgid "slow [8.6dB/sec] (BBC PPM, EBU PPM)"
+msgstr "Медленное [8,6 Дб/Ñ] (BBC PPM, EBU PPM)"
+
+#: rc_option_editor.cc:1920
+msgid "slowish [12.0dB/sec] (DIN)"
+msgstr "Ðеторопливое [12 Дб/Ñ] (DIN)"
#: rc_option_editor.cc:1921
-msgid "fast"
-msgstr "БыÑтрое"
+msgid "moderate [13.3dB/sec] (EBU Digi PPM, IRT Digi PPM)"
+msgstr "Умеренное [13,3 Дб/Ñ] (EBU Digi PPM, IRT Digi PPM)"
#: rc_option_editor.cc:1922
-msgid "faster"
-msgstr "Ещё более быÑтрее"
+msgid "medium [20dB/sec]"
+msgstr "Среднее [20 Дб/Ñ]"
#: rc_option_editor.cc:1923
-msgid "fastest"
-msgstr "Скорейшее"
+msgid "fast [32dB/sec]"
+msgstr "БыÑтрое [32 Дб/Ñ]"
+
+#: rc_option_editor.cc:1924
+msgid "faster [46dB/sec]"
+msgstr "Ещё быÑтрее [46 Дб/Ñ]"
+
+#: rc_option_editor.cc:1925
+msgid "fastest [70dB/sec]"
+msgstr "Самое быÑтрое [70 Дб/Ñ]"
+
+#: rc_option_editor.cc:1931
+msgid "Meter line-up level"
+msgstr "Уровень выравниваниÑ"
+
+#: rc_option_editor.cc:1936
+msgid "-24dB"
+msgstr "-24 Дб"
+
+#: rc_option_editor.cc:1937
+msgid "-20dB (SMPTE)"
+msgstr "-20 Дб (SMPTE)"
+
+#: rc_option_editor.cc:1938
+msgid "-18dB (EBU)"
+msgstr "-18 Дб (EBU)"
+
+#: rc_option_editor.cc:1939
+msgid "-15dB"
+msgstr "-15 Дб"
+
+#: rc_option_editor.cc:1941
+msgid "Configure meter-ticks and color-knee point."
+msgstr ""
+
+#: rc_option_editor.cc:1947
+msgid "Peak threshold [dBFS]"
+msgstr "Порог пика (dbFS)"
+
+#: rc_option_editor.cc:1955
+msgid ""
+"Specify the audio signal level in dbFS at and above which the meter-peak "
+"indicator will flash red."
+msgstr ""
#: region_editor.cc:79
msgid "audition this region"
@@ -9403,7 +9519,7 @@ msgstr "ПозициÑ:"
msgid "End:"
msgstr "Конец:"
-#: region_editor.cc:92 sfdb_ui.cc:140
+#: region_editor.cc:92 sfdb_ui.cc:141
msgid "Length:"
msgstr "ДлительноÑÑ‚ÑŒ:"
@@ -9427,23 +9543,23 @@ msgstr "ИÑточники:"
msgid "Source:"
msgstr "ИÑточник:"
-#: region_editor.cc:167
+#: region_editor.cc:166
msgid "Region '%1'"
msgstr "ОблаÑÑ‚ÑŒ %1"
-#: region_editor.cc:274
+#: region_editor.cc:273
msgid "change region start position"
msgstr "Ñмена позиции начала облаÑти"
-#: region_editor.cc:290
+#: region_editor.cc:289
msgid "change region end position"
msgstr "Ñмена позиции конца облаÑти"
-#: region_editor.cc:310
+#: region_editor.cc:309
msgid "change region length"
msgstr "Ñмена длительноÑти облаÑти"
-#: region_editor.cc:404 region_editor.cc:416
+#: region_editor.cc:403 region_editor.cc:415
msgid "change region sync point"
msgstr "Ñмена Ñинхронизатора облаÑтей"
@@ -9651,198 +9767,197 @@ msgstr "Выходы"
msgid "Plugins, Inserts & Sends"
msgstr "Модули, возвраты и поÑылы"
-#: route_params_ui.cc:211
+#: route_params_ui.cc:207
msgid "route display list item for renamed route not found!"
msgstr ""
-#: route_params_ui.cc:258 route_params_ui.cc:286
+#: route_params_ui.cc:254 route_params_ui.cc:282
#, c-format
msgid "Playback delay: %<PRId64> samples"
msgstr "Задержка воÑпроизведениÑ: %<PRId64> ÑÑмплов"
-#: route_params_ui.cc:478
+#: route_params_ui.cc:474
msgid "NO TRACK"
msgstr "ÐЕТ ДОРОЖЕК"
-#: route_params_ui.cc:611 route_params_ui.cc:612
+#: route_params_ui.cc:607 route_params_ui.cc:608
msgid "No Track or Bus Selected"
msgstr "Ðет выбранных дорожек или шин"
-#: route_time_axis.cc:96
+#: route_time_axis.cc:97
msgid "g"
msgstr "г"
-#: route_time_axis.cc:97
+#: route_time_axis.cc:98
msgid "p"
msgstr "Ñп"
-#: route_time_axis.cc:98
+#: route_time_axis.cc:99
msgid "a"
msgstr "а"
-#: route_time_axis.cc:168
+#: route_time_axis.cc:173
msgid "Record (Right-click for Step Edit)"
msgstr "ЗапиÑÑŒ (Ð¿Ñ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° мыши активирует пошаговый ввод)"
-#: route_time_axis.cc:171
+#: route_time_axis.cc:176
msgid "Record"
msgstr "ЗапиÑÑŒ"
-#: route_time_axis.cc:201
+#: route_time_axis.cc:210
msgid "Route Group"
msgstr "Группа маршрутизации"
-#: route_time_axis.cc:204
+#: route_time_axis.cc:213
msgid "MIDI Controllers and Automation"
msgstr "MIDI-контроллеры и автоматизациÑ"
-#: route_time_axis.cc:381
+#: route_time_axis.cc:390
msgid "Show All Automation"
msgstr "Показать вÑÑŽ автоматизацию"
-#: route_time_axis.cc:384
+#: route_time_axis.cc:393
msgid "Show Existing Automation"
msgstr "Показать ÑущеÑтвующую автоматизацию"
-#: route_time_axis.cc:387
+#: route_time_axis.cc:396
msgid "Hide All Automation"
msgstr "Скрыть вÑÑŽ автоматизацию"
-#: route_time_axis.cc:396
-#, fuzzy
+#: route_time_axis.cc:405
msgid "Processor automation"
-msgstr "ОчиÑтить автоматизацию"
+msgstr "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ°"
-#: route_time_axis.cc:415
+#: route_time_axis.cc:424
msgid "Color..."
msgstr "Цвет..."
-#: route_time_axis.cc:472
+#: route_time_axis.cc:481
msgid "Overlaid"
msgstr "Перекрывают друг друга"
-#: route_time_axis.cc:478
+#: route_time_axis.cc:487
msgid "Stacked"
msgstr "Ð’ Ñтопке"
-#: route_time_axis.cc:486
+#: route_time_axis.cc:495
msgid "Layers"
msgstr "Слои"
-#: route_time_axis.cc:555
+#: route_time_axis.cc:564
msgid "Automatic (based on I/O connections)"
msgstr "ÐвтоматичеÑкое (по ÑоединениÑм входа-выхода)"
-#: route_time_axis.cc:564
+#: route_time_axis.cc:573
msgid "(Currently: Existing Material)"
msgstr "(СейчаÑ: Ñ Ð·Ð°Ð¿Ð¸Ñанным материалом)"
-#: route_time_axis.cc:567
+#: route_time_axis.cc:576
msgid "(Currently: Capture Time)"
msgstr "(СейчаÑ: по времени захвата)"
-#: route_time_axis.cc:575
+#: route_time_axis.cc:584
msgid "Align With Existing Material"
msgstr "С запиÑанным материалом"
-#: route_time_axis.cc:580
+#: route_time_axis.cc:589
msgid "Align With Capture Time"
msgstr "По времени захвата"
-#: route_time_axis.cc:585
+#: route_time_axis.cc:594
msgid "Alignment"
msgstr "Выравнивание"
-#: route_time_axis.cc:620
+#: route_time_axis.cc:629
msgid "Normal Mode"
msgstr "Обычный режим"
-#: route_time_axis.cc:626
+#: route_time_axis.cc:635
msgid "Tape Mode"
msgstr "Плёночный режим"
-#: route_time_axis.cc:632
+#: route_time_axis.cc:641
msgid "Non-Layered Mode"
msgstr "БеÑÑлойный режим"
-#: route_time_axis.cc:645 route_time_axis.cc:1587
+#: route_time_axis.cc:654 route_time_axis.cc:1601
msgid "Playlist"
msgstr "СпиÑок"
-#: route_time_axis.cc:965
+#: route_time_axis.cc:979
msgid "Rename Playlist"
msgstr "Переименовать ÑпиÑок воÑпроизведениÑ"
-#: route_time_axis.cc:966
+#: route_time_axis.cc:980
msgid "New name for playlist:"
msgstr "Ðовое название ÑпиÑка воÑпроизведениÑ:"
-#: route_time_axis.cc:1051
+#: route_time_axis.cc:1065
msgid "New Copy Playlist"
msgstr "ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑпиÑка воÑпроизведениÑ"
-#: route_time_axis.cc:1052 route_time_axis.cc:1105
+#: route_time_axis.cc:1066 route_time_axis.cc:1119
msgid "Name for new playlist:"
msgstr "Ðазвание нового ÑпиÑка воÑпроизведениÑ:"
-#: route_time_axis.cc:1104
+#: route_time_axis.cc:1118
msgid "New Playlist"
msgstr "Ðовый ÑпиÑок воÑпроизведениÑ"
-#: route_time_axis.cc:1295
+#: route_time_axis.cc:1309
msgid "You cannot create a track with that name as it is reserved for %1"
msgstr ""
"Ð’Ñ‹ не можете добавить дорожку Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼, которое зарезервировано Ð´Ð»Ñ %1"
-#: route_time_axis.cc:1476
+#: route_time_axis.cc:1490
msgid "New Copy..."
msgstr "Создать копию..."
-#: route_time_axis.cc:1480
+#: route_time_axis.cc:1494
msgid "New Take"
msgstr "Ðовый дубль"
-#: route_time_axis.cc:1481
+#: route_time_axis.cc:1495
msgid "Copy Take"
msgstr "Скопировать дубль"
-#: route_time_axis.cc:1486
+#: route_time_axis.cc:1500
msgid "Clear Current"
msgstr "ОчиÑтить текущий"
-#: route_time_axis.cc:1489
+#: route_time_axis.cc:1503
msgid "Select From All..."
msgstr "Выбрать из вÑех..."
-#: route_time_axis.cc:1577
+#: route_time_axis.cc:1591
msgid "Take: %1.%2"
msgstr "Дубль: %1.%2"
-#: route_time_axis.cc:2267
+#: route_time_axis.cc:2291
msgid "Underlays"
msgstr ""
-#: route_time_axis.cc:2270
+#: route_time_axis.cc:2294
msgid "Remove \"%1\""
msgstr "Удалить «%1»"
-#: route_time_axis.cc:2320 route_time_axis.cc:2357
+#: route_time_axis.cc:2344 route_time_axis.cc:2381
msgid "programming error: underlay reference pointer pairs are inconsistent!"
msgstr ""
-#: route_time_axis.cc:2388
+#: route_time_axis.cc:2408
msgid "After-fade listen (AFL)"
msgstr "ПроÑлушивание поÑле фейдера (AFL)"
-#: route_time_axis.cc:2392
+#: route_time_axis.cc:2412
msgid "Pre-fade listen (PFL)"
msgstr "ПроÑлушивание до фейдера (PFL)"
-#: route_time_axis.cc:2396
+#: route_time_axis.cc:2416
msgid "s"
msgstr "Ñ"
-#: route_time_axis.cc:2400
+#: route_time_axis.cc:2419
msgid "m"
msgstr "м"
@@ -10397,6 +10512,7 @@ msgid ""
"Use Video File's FPS Instead of Timecode Value for Timeline and Video "
"Monitor."
msgstr ""
+"ИÑпользовать чаÑтоту кадров видео вмеÑто таймкода в проекте и видеомониторе"
#: session_option_editor.cc:91
msgid ""
@@ -10576,155 +10692,207 @@ msgstr "Приклеивать новые маркеры к тактам и до
msgid "Glue new regions to bars and beats"
msgstr "Приклеивать новые облаÑти к тактам и долÑм"
-#: sfdb_ui.cc:87 sfdb_ui.cc:107 sfdb_ui.cc:116
+#: session_option_editor.cc:275 session_option_editor.cc:277
+#: session_option_editor.cc:284 session_option_editor.cc:291
+#: session_option_editor.cc:298 session_option_editor.cc:300
+#: session_option_editor.cc:307 session_option_editor.cc:314
+#: session_option_editor.cc:321 session_option_editor.cc:323
+msgid "Meterbridge"
+msgstr "Панель индикаторов"
+
+#: session_option_editor.cc:275
+msgid "Route Display"
+msgstr "Показывать в маршрутизации"
+
+#: session_option_editor.cc:279
+msgid "Show Midi Tracks"
+msgstr "MIDI-дорожки"
+
+#: session_option_editor.cc:286
+msgid "Show Busses"
+msgstr "Шины"
+
+#: session_option_editor.cc:293
+msgid "Include Master Bus"
+msgstr "МаÑтер-шина"
+
+#: session_option_editor.cc:298
+msgid "Button Area"
+msgstr "Показывать в кнопках"
+
+#: session_option_editor.cc:302
+msgid "Rec-enable Button"
+msgstr "Переключатель запиÑываемоÑти"
+
+#: session_option_editor.cc:309
+msgid "Mute Button"
+msgstr "Переключатель приглушениÑ"
+
+#: session_option_editor.cc:316
+msgid "Solo Button"
+msgstr "Переключатель ÑолированиÑ"
+
+#: session_option_editor.cc:321
+msgid "Name Labels"
+msgstr "Показывать в метках имён"
+
+#: session_option_editor.cc:325
+msgid "Track Name"
+msgstr "Ðазвание дорожи"
+
+#: sfdb_ui.cc:88 sfdb_ui.cc:108 sfdb_ui.cc:117
msgid "as new tracks"
msgstr "как новые дорожки"
-#: sfdb_ui.cc:89 sfdb_ui.cc:109
+#: sfdb_ui.cc:90 sfdb_ui.cc:110
msgid "to selected tracks"
msgstr "в выделенные дорожки"
-#: sfdb_ui.cc:91 sfdb_ui.cc:111
+#: sfdb_ui.cc:92 sfdb_ui.cc:112
msgid "to region list"
msgstr "в ÑпиÑок облаÑтей"
-#: sfdb_ui.cc:93 sfdb_ui.cc:113
+#: sfdb_ui.cc:94 sfdb_ui.cc:114
msgid "as new tape tracks"
msgstr "как новые плёночные дорожки"
-#: sfdb_ui.cc:97
+#: sfdb_ui.cc:98
msgid "programming error: unknown import mode string %1"
msgstr "Ошибка в программе: неизвеÑÑ‚Ð½Ð°Ñ Ñтрока режима импорта %1"
-#: sfdb_ui.cc:124
+#: sfdb_ui.cc:125
msgid "Auto-play"
msgstr "ÐвтовоÑпр."
-#: sfdb_ui.cc:130 sfdb_ui.cc:237
+#: sfdb_ui.cc:131 sfdb_ui.cc:238
msgid "<b>Sound File Information</b>"
msgstr "<b>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ файле</b>"
-#: sfdb_ui.cc:142
+#: sfdb_ui.cc:143
msgid "Timestamp:"
msgstr "Отметка времени:"
-#: sfdb_ui.cc:144
+#: sfdb_ui.cc:145
msgid "Format:"
msgstr "Формат:"
-#: sfdb_ui.cc:183 sfdb_ui.cc:530
+#: sfdb_ui.cc:184 sfdb_ui.cc:529
msgid "Tags:"
msgstr "Метки:"
-#: sfdb_ui.cc:320
+#: sfdb_ui.cc:321
msgid "Auditioning of MIDI files is not yet supported"
msgstr "ПроÑлушивание файлов MIDI пока что не реализовано"
-#: sfdb_ui.cc:327
+#: sfdb_ui.cc:328
msgid "Could not read file: %1 (%2)."
msgstr "Ðе удалоÑÑŒ прочитать файл: %1 (%2)"
-#: sfdb_ui.cc:349
+#: sfdb_ui.cc:350
msgid "Could not access soundfile: "
msgstr "Файл недоÑтупен: "
-#: sfdb_ui.cc:403
+#: sfdb_ui.cc:404
msgid "SoundFileBox: Could not tokenize string: "
msgstr ""
-#: sfdb_ui.cc:423 sfdb_ui.cc:425
+#: sfdb_ui.cc:424 sfdb_ui.cc:426
msgid "Search"
msgstr "ИÑкать"
-#: sfdb_ui.cc:449
+#: sfdb_ui.cc:450
msgid "Audio and MIDI files"
msgstr "Звуковые и MIDI-файлы"
-#: sfdb_ui.cc:452
+#: sfdb_ui.cc:453
msgid "Audio files"
msgstr "Звуковые файлы"
-#: sfdb_ui.cc:455
+#: sfdb_ui.cc:456
msgid "MIDI files"
msgstr "Файлы MIDI"
-#: sfdb_ui.cc:458 add_video_dialog.cc:131
+#: sfdb_ui.cc:459 add_video_dialog.cc:131
msgid "All files"
msgstr "Ð’Ñе файлы"
-#: sfdb_ui.cc:477 add_video_dialog.cc:142
+#: sfdb_ui.cc:478 add_video_dialog.cc:142
msgid "Browse Files"
msgstr "Обзор файлов"
-#: sfdb_ui.cc:506
+#: sfdb_ui.cc:507
msgid "Paths"
msgstr "РаÑположениÑ"
-#: sfdb_ui.cc:517
+#: sfdb_ui.cc:516
msgid "Search Tags"
msgstr "ПоиÑк по меткам"
-#: sfdb_ui.cc:535
+#: sfdb_ui.cc:534
msgid "Sort:"
msgstr "Критерий Ñортировки:"
-#: sfdb_ui.cc:543
+#: sfdb_ui.cc:542
msgid "Longest"
msgstr "Более длинные"
-#: sfdb_ui.cc:544
+#: sfdb_ui.cc:543
msgid "Shortest"
msgstr "Более короткие"
-#: sfdb_ui.cc:545
+#: sfdb_ui.cc:544
msgid "Newest"
msgstr "Более новые"
-#: sfdb_ui.cc:546
+#: sfdb_ui.cc:545
msgid "Oldest"
msgstr "Более Ñтарые"
-#: sfdb_ui.cc:547
+#: sfdb_ui.cc:546
msgid "Most downloaded"
msgstr "Чаще Ñкачиваемые"
-#: sfdb_ui.cc:548
+#: sfdb_ui.cc:547
msgid "Least downloaded"
msgstr "Реже Ñкачиваемые"
-#: sfdb_ui.cc:549
+#: sfdb_ui.cc:548
msgid "Highest rated"
msgstr "Выше оценённые"
-#: sfdb_ui.cc:550
+#: sfdb_ui.cc:549
msgid "Lowest rated"
msgstr "Ðиже оценённые"
-#: sfdb_ui.cc:555
+#: sfdb_ui.cc:554
msgid "More"
msgstr ""
-#: sfdb_ui.cc:572
+#: sfdb_ui.cc:558
+msgid "Similar"
+msgstr ""
+
+#: sfdb_ui.cc:570
msgid "ID"
msgstr "ID"
-#: sfdb_ui.cc:573 add_video_dialog.cc:83
+#: sfdb_ui.cc:571 add_video_dialog.cc:83
msgid "Filename"
msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: sfdb_ui.cc:575
+#: sfdb_ui.cc:573
msgid "Duration"
msgstr "ДлительноÑÑ‚ÑŒ"
-#: sfdb_ui.cc:576
+#: sfdb_ui.cc:574
msgid "Size"
msgstr "Размер"
-#: sfdb_ui.cc:577
+#: sfdb_ui.cc:575
msgid "Samplerate"
msgstr "ЧаÑтота ÑÑмплированиÑ"
-#: sfdb_ui.cc:578
+#: sfdb_ui.cc:576
msgid "License"
msgstr "ЛицензиÑ"
@@ -10745,88 +10913,70 @@ msgstr ""
msgid "Press to close this window without importing any files"
msgstr "Ðажмите, чтобы закрыть Ñто окно, ничего не импортируÑ"
-#: sfdb_ui.cc:846
-msgid "found %1 match"
-msgid_plural "found %1 matches"
-msgstr[0] "Ðайдено %1 Ñовпадение"
-msgstr[1] "Ðайдено %1 ÑовпадениÑ"
-msgstr[2] "Ðайдено %1 Ñовпадений"
-
-#: sfdb_ui.cc:862
+#: sfdb_ui.cc:813
msgid "SoundFileBrowser: Could not tokenize string: "
msgstr ""
-#: sfdb_ui.cc:960
+#: sfdb_ui.cc:1013
msgid "%1 more page of 100 results available"
msgid_plural "%1 more pages of 100 results available"
msgstr[0] "Ещё %1 Ñтраница из 100 доÑтупных"
msgstr[1] "Ещё %1 Ñтраницы из 100 доÑтупных"
msgstr[2] "Ещё %1 Ñтраниц из 100 доÑтупных"
-#: sfdb_ui.cc:965
+#: sfdb_ui.cc:1018
msgid "No more results available"
msgstr "Больше результатов нет"
-#: sfdb_ui.cc:1029
+#: sfdb_ui.cc:1082
msgid "B"
msgstr "Б"
-#: sfdb_ui.cc:1031
+#: sfdb_ui.cc:1084
msgid "kB"
msgstr "КБ"
-#: sfdb_ui.cc:1033 sfdb_ui.cc:1035
+#: sfdb_ui.cc:1086 sfdb_ui.cc:1088
msgid "MB"
msgstr "МБ"
-#: sfdb_ui.cc:1037
+#: sfdb_ui.cc:1090
msgid "GB"
msgstr "ГБ"
-#: sfdb_ui.cc:1070
-msgid "Search returned no results."
-msgstr ""
-
-#: sfdb_ui.cc:1072
-msgid "Found %1 match"
-msgid_plural "Found %1 matches"
-msgstr[0] "Ðайдено %1 Ñовпадение"
-msgstr[1] "Ðайдено %1 ÑовпадениÑ"
-msgstr[2] "Ðайдено %1 Ñовпадений"
-
-#: sfdb_ui.cc:1277 sfdb_ui.cc:1585 sfdb_ui.cc:1635 sfdb_ui.cc:1653
+#: sfdb_ui.cc:1304 sfdb_ui.cc:1612 sfdb_ui.cc:1662 sfdb_ui.cc:1680
msgid "one track per file"
msgstr "Одна дорожка на файл"
-#: sfdb_ui.cc:1280 sfdb_ui.cc:1636 sfdb_ui.cc:1654
+#: sfdb_ui.cc:1307 sfdb_ui.cc:1663 sfdb_ui.cc:1681
msgid "one track per channel"
msgstr "Одна дорожка на канал"
-#: sfdb_ui.cc:1288 sfdb_ui.cc:1638 sfdb_ui.cc:1655
+#: sfdb_ui.cc:1315 sfdb_ui.cc:1665 sfdb_ui.cc:1682
msgid "sequence files"
msgstr ""
-#: sfdb_ui.cc:1291 sfdb_ui.cc:1643
+#: sfdb_ui.cc:1318 sfdb_ui.cc:1670
msgid "all files in one track"
msgstr "Ð’Ñе файлы в одну дорожку"
-#: sfdb_ui.cc:1292 sfdb_ui.cc:1637
+#: sfdb_ui.cc:1319 sfdb_ui.cc:1664
msgid "merge files"
msgstr "Объединить файлы"
-#: sfdb_ui.cc:1298 sfdb_ui.cc:1640
+#: sfdb_ui.cc:1325 sfdb_ui.cc:1667
msgid "one region per file"
msgstr "Одна облаÑÑ‚ÑŒ на файл"
-#: sfdb_ui.cc:1301 sfdb_ui.cc:1641
+#: sfdb_ui.cc:1328 sfdb_ui.cc:1668
msgid "one region per channel"
msgstr "Одна облаÑÑ‚ÑŒ на канал"
-#: sfdb_ui.cc:1306 sfdb_ui.cc:1642 sfdb_ui.cc:1656
+#: sfdb_ui.cc:1333 sfdb_ui.cc:1669 sfdb_ui.cc:1683
msgid "all files in one region"
msgstr "Ð’Ñе файлы в одной облаÑти"
-#: sfdb_ui.cc:1373
+#: sfdb_ui.cc:1400
msgid ""
"One or more of the selected files\n"
"cannot be used by %1"
@@ -10834,55 +10984,55 @@ msgstr ""
"Один или более выбранных файлов\n"
"не могут быть иÑпользованы в %1"
-#: sfdb_ui.cc:1513
+#: sfdb_ui.cc:1540
msgid "Copy files to session"
msgstr "Скопировать файлы в ÑеанÑ"
-#: sfdb_ui.cc:1530 sfdb_ui.cc:1693
+#: sfdb_ui.cc:1557 sfdb_ui.cc:1720
msgid "file timestamp"
msgstr "По отметке времени файла"
-#: sfdb_ui.cc:1531 sfdb_ui.cc:1695
+#: sfdb_ui.cc:1558 sfdb_ui.cc:1722
msgid "edit point"
msgstr "По курÑору редактора"
-#: sfdb_ui.cc:1532 sfdb_ui.cc:1697
+#: sfdb_ui.cc:1559 sfdb_ui.cc:1724
msgid "playhead"
msgstr "По указателю воÑпр."
-#: sfdb_ui.cc:1533
+#: sfdb_ui.cc:1560
msgid "session start"
msgstr "Ð’ начало ÑеанÑа"
-#: sfdb_ui.cc:1538
+#: sfdb_ui.cc:1565
msgid "<b>Add files as ...</b>"
msgstr "<b>Добавить файлы как...</b>"
-#: sfdb_ui.cc:1560
+#: sfdb_ui.cc:1587
msgid "<b>Insert at</b>"
msgstr "<b>Куда вÑтавить</b>"
-#: sfdb_ui.cc:1573
+#: sfdb_ui.cc:1600
msgid "<b>Mapping</b>"
msgstr "<b>СпоÑоб вÑтавки</b>"
-#: sfdb_ui.cc:1591
+#: sfdb_ui.cc:1618
msgid "<b>Conversion quality</b>"
msgstr "<b>КачеÑтво преобразованиÑ:</b>"
-#: sfdb_ui.cc:1603 sfdb_ui.cc:1709
+#: sfdb_ui.cc:1630 sfdb_ui.cc:1736
msgid "Best"
msgstr "Ðаилучшее"
-#: sfdb_ui.cc:1604 sfdb_ui.cc:1711
+#: sfdb_ui.cc:1631 sfdb_ui.cc:1738
msgid "Good"
msgstr "Хорошее"
-#: sfdb_ui.cc:1605 sfdb_ui.cc:1713
+#: sfdb_ui.cc:1632 sfdb_ui.cc:1740
msgid "Quick"
msgstr "БыÑтрое"
-#: sfdb_ui.cc:1607
+#: sfdb_ui.cc:1634
msgid "Fastest"
msgstr "БыÑтрее вÑего"
@@ -11148,10 +11298,6 @@ msgstr ""
msgid "Click to open the program website in your web browser"
msgstr ""
-#: startup.cc:594
-msgid "What would you like to do ?"
-msgstr "Что вы хотите Ñделать?"
-
#: startup.cc:729
msgid "Open"
msgstr "Открыть"
@@ -11764,7 +11910,7 @@ msgstr "РиÑовать кнопки плоÑкими"
#: theme_manager.cc:61
msgid "All floating windows are dialogs"
-msgstr ""
+msgstr "Ð’Ñе плавающие окна ÑвлÑÑŽÑ‚ÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð°Ð¼Ð¸"
#: theme_manager.cc:62
msgid "Draw waveforms with color gradient"
@@ -11977,7 +12123,7 @@ msgstr "Соотношение Ñторон:"
msgid " %1 fps"
msgstr " %1 к/Ñ"
-#: editor_videotimeline.cc:138
+#: editor_videotimeline.cc:146
msgid "Export Successful: %1"
msgstr "ЭкÑпорт уÑпешно завершён: %1"
@@ -12049,7 +12195,7 @@ msgstr "Файл вывода:"
#: transcode_video_dialog.cc:60 export_video_dialog.cc:72
msgid "Abort"
-msgstr ""
+msgstr "Прервать"
#: transcode_video_dialog.cc:62
msgid "Height = "
@@ -12061,7 +12207,7 @@ msgstr ""
#: transcode_video_dialog.cc:69
msgid "Debug Mode: Print ffmpeg Command and Output to stdout."
-msgstr ""
+msgstr "Режим отладки: вывод команд ffmpeg в stdout"
#: transcode_video_dialog.cc:106
msgid "<b>File Information</b>"
@@ -12097,9 +12243,8 @@ msgid "Geometry:"
msgstr "ГеометриÑ:"
#: transcode_video_dialog.cc:154
-#, fuzzy
msgid "??"
-msgstr "???"
+msgstr ""
#: transcode_video_dialog.cc:175
msgid "<b>Import Settings</b>"
@@ -12111,7 +12256,7 @@ msgstr "Ðе импортировать видео"
#: transcode_video_dialog.cc:181
msgid "Reference From Current Location"
-msgstr ""
+msgstr "ИÑпользовать иÑходный видеофайл"
#: transcode_video_dialog.cc:183
msgid "Import/Transcode Video to Session"
@@ -12143,7 +12288,7 @@ msgstr "Ðе удалоÑÑŒ извлечь звуковую дорожку."
#: transcode_video_dialog.cc:373
msgid "Transcoding Video.."
-msgstr ""
+msgstr "Перекодирование видео..."
#: transcode_video_dialog.cc:407
msgid "Transcoding Failed."
@@ -12162,9 +12307,8 @@ msgid "Server Executable:"
msgstr "ИÑполнÑемый файл Ñервера:"
#: video_server_dialog.cc:45
-#, fuzzy
msgid "Server Docroot:"
-msgstr "Сервер:"
+msgstr ""
#: video_server_dialog.cc:51
msgid "Don't show this dialog again. (Reset in Edit->Preferences)."
@@ -12223,14 +12367,12 @@ msgid "Confirm Overwrite"
msgstr "Подтвердите перезапиÑÑŒ"
#: utils_videotl.cc:63
-#, fuzzy
msgid "A file with the same name already exists. Do you want to overwrite it?"
msgstr "Снимок Ñ Ñ‚Ð°ÐºÐ¸Ð¼ названием уже еÑÑ‚ÑŒ. ПерезапиÑать его?"
#: utils_videotl.cc:73 utils_videotl.cc:89
-#, fuzzy
msgid "Cannot create video folder \"%1\" (%2)"
-msgstr "Ðе удалоÑÑŒ Ñоздать пользовательÑкую папку %3: %1 (%2)"
+msgstr "Ðе удалоÑÑŒ Ñоздать папку Ð´Ð»Ñ Ð²Ð¸Ð´ÐµÐ¾: \"%1\" (%2)"
#: export_video_dialog.cc:65
msgid "Export Video File "
@@ -12261,9 +12403,8 @@ msgid "Codec Optimizations:"
msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð´ÐµÐºÐ°:"
#: export_video_dialog.cc:83
-#, fuzzy
msgid "Deinterlace"
-msgstr "Указатель по центру"
+msgstr ""
#: export_video_dialog.cc:84
msgid "Use [2] B-frames (MPEG 2 or 4 only)"
@@ -12316,81 +12457,81 @@ msgstr "от 00:00:00:00 до конца видео"
msgid "from the video's start to the video's end"
msgstr "от начала до конца видео"
-#: export_video_dialog.cc:166
+#: export_video_dialog.cc:183
msgid "<b>Settings:</b>"
msgstr "<b>Параметры:</b>"
-#: export_video_dialog.cc:174
+#: export_video_dialog.cc:191
msgid "Range:"
msgstr "Диапазон:"
-#: export_video_dialog.cc:177
+#: export_video_dialog.cc:194
msgid "Preset:"
msgstr "Профиль:"
-#: export_video_dialog.cc:180
+#: export_video_dialog.cc:197
msgid "Video Codec:"
msgstr "Видеокодек:"
-#: export_video_dialog.cc:183
+#: export_video_dialog.cc:200
msgid "Video KBit/s:"
msgstr "СкороÑÑ‚ÑŒ видеопотока (Кбит/Ñ):"
-#: export_video_dialog.cc:186
+#: export_video_dialog.cc:203
msgid "Audio Codec:"
msgstr "Звуковой кодек:"
-#: export_video_dialog.cc:189
+#: export_video_dialog.cc:206
msgid "Audio KBit/s:"
msgstr "СкороÑÑ‚ÑŒ звукового потока (Кбит/Ñ):"
-#: export_video_dialog.cc:192
+#: export_video_dialog.cc:209
msgid "Audio Samplerate:"
msgstr "ЧаÑтота ÑÑÐ¼Ð¿Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð²ÑƒÐºÐ°:"
-#: export_video_dialog.cc:369
+#: export_video_dialog.cc:386
msgid "Normalizing audio"
msgstr "ВыполнÑетÑÑ Ð½Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²ÐºÐ° звука"
-#: export_video_dialog.cc:373
+#: export_video_dialog.cc:390
msgid "Exporting audio"
-msgstr ""
+msgstr "ЭкÑпорт звука"
-#: export_video_dialog.cc:419
+#: export_video_dialog.cc:436
msgid "Exporting Audio..."
msgstr "ЭкÑпортируетÑÑ Ð·Ð²ÑƒÐº..."
-#: export_video_dialog.cc:476
+#: export_video_dialog.cc:493
msgid ""
"Export Video: Cannot query duration of video-file, using duration from "
"timeline instead."
msgstr ""
-#: export_video_dialog.cc:505
+#: export_video_dialog.cc:522
msgid "Export Video: No Master Out Ports to Connect for Audio Export"
msgstr ""
-#: export_video_dialog.cc:544
+#: export_video_dialog.cc:561
msgid "Encoding Video..."
msgstr "КодируетÑÑ Ð²Ð¸Ð´ÐµÐ¾..."
-#: export_video_dialog.cc:563
+#: export_video_dialog.cc:580
msgid "Export Video: Video input file cannot be read."
msgstr ""
-#: export_video_dialog.cc:661
+#: export_video_dialog.cc:678
msgid "Encoding Video.. Pass 1/2"
msgstr "ВыполнÑетÑÑ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ видео. Проход 1/2."
-#: export_video_dialog.cc:673
+#: export_video_dialog.cc:690
msgid "Encoding Video.. Pass 2/2"
msgstr "ВыполнÑетÑÑ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ видео. Проход 2/2."
-#: export_video_dialog.cc:761
+#: export_video_dialog.cc:778
msgid "Transcoding failed."
msgstr "Ðе удалоÑÑŒ выполнить перекодировку."
-#: export_video_dialog.cc:930 export_video_dialog.cc:950
+#: export_video_dialog.cc:947 export_video_dialog.cc:967
msgid "Save Exported Video File"
msgstr "Сохранить ÑкÑпортированный видеофайл"
@@ -12404,35 +12545,50 @@ msgstr ""
#: export_video_infobox.cc:43
msgid "<b>Video Export Info</b>"
-msgstr ""
+msgstr "<b>Справка по ÑкÑпорту видео</b>"
-#: export_video_infobox.cc:46
+#: export_video_infobox.cc:48
msgid ""
-"Ardour video export is not recommended for mastering!\n"
-"While 'ffmpeg' (which is used by ardour) can produce high-quality files, "
-"this export lacks the possibility to tweak many settings. We recommend to "
-"use 'winff', 'devede' or 'dvdauthor' to mux & master. Nevertheless this "
-"video-export comes in handy to do quick snapshots, intermediates, dailies or "
-"online videos.\n"
-"\n"
-"The soundtrack is created from the master-bus of the current Ardour "
-"session.\n"
+"Video encoding is a non-trivial task with many details.\n"
"\n"
-"The video soure defaults to the file used in the video timeline, which may "
-"not the best quality to start with, you should the original video file.\n"
+"Please see the manual at %1/video-timeline/operations/#export.\n"
"\n"
-"If the export-range is longer than the original video, black video frames "
-"are prefixed and/or appended. This process may fail with non-standard pixel-"
-"aspect-ratios.\n"
-"\n"
-"The file-format is determined by the extension that you choose for the "
-"output file (.avi, .mov, .flv, .ogv,...)\n"
-"Note: not all combinations of format+codec+settings produce files which are "
-"according so spec. e.g. flv files require sample-rates of 22.1kHz or "
-"44.1kHz, mpeg containers can not be used with ac3 audio-codec, etc. If in "
-"doubt, use one of the built-in presets."
+"Open Manual in Browser? "
msgstr ""
+#~ msgid "-Inf"
+#~ msgstr "-Inf"
+
+#~ msgid "slowest"
+#~ msgstr "Самое медленное"
+
+#~ msgid "slow"
+#~ msgstr "Медленное"
+
+#~ msgid "fast"
+#~ msgstr "БыÑтрое"
+
+#~ msgid "faster"
+#~ msgstr "Ещё более быÑтрее"
+
+#~ msgid "fastest"
+#~ msgstr "Скорейшее"
+
+#~ msgid "found %1 match"
+#~ msgid_plural "found %1 matches"
+#~ msgstr[0] "Ðайдено %1 Ñовпадение"
+#~ msgstr[1] "Ðайдено %1 ÑовпадениÑ"
+#~ msgstr[2] "Ðайдено %1 Ñовпадений"
+
+#~ msgid "Found %1 match"
+#~ msgid_plural "Found %1 matches"
+#~ msgstr[0] "Ðайдено %1 Ñовпадение"
+#~ msgstr[1] "Ðайдено %1 ÑовпадениÑ"
+#~ msgstr[2] "Ðайдено %1 Ñовпадений"
+
+#~ msgid "What would you like to do ?"
+#~ msgstr "Что вы хотите Ñделать?"
+
#~ msgid "Control surfaces"
#~ msgstr "УÑтройÑтва управлениÑ"
@@ -14227,9 +14383,6 @@ msgstr ""
#~ msgid "solo change"
#~ msgstr "Ñмена ÑолированиÑ"
-#~ msgid "rec-enable change"
-#~ msgstr "Ñмена запиÑываемоÑти"
-
#~ msgid "Solo Lock"
#~ msgstr "Запереть Ñолирование"
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index c119a1d824..5e8be81074 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -655,10 +655,14 @@ PluginInsertProcessorEntry::SplittingIcon::on_expose_event (GdkEventExpose* ev)
{
cairo_t* cr = gdk_cairo_create (get_window()->gobj());
+ cairo_rectangle (cr, ev->area.x, ev->area.y, ev->area.width, ev->area.height);
+ cairo_clip (cr);
+
cairo_set_line_width (cr, 1);
- double const width = ev->area.width;
- double const height = ev->area.height;
+ Gtk::Allocation a = get_allocation();
+ double const width = a.get_width();
+ double const height = a.get_height();
Gdk::Color const bg = get_style()->get_bg (STATE_NORMAL);
cairo_set_source_rgb (cr, bg.get_red_p (), bg.get_green_p (), bg.get_blue_p ());
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index ca598ba949..0ec79667ab 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -189,33 +189,33 @@ ArdourStartup::ready_without_display () const
void
ArdourStartup::setup_prerelease_page ()
{
- VBox* vbox = manage (new VBox);
- Label* label = manage (new Label);
- label->set_markup (_("<b>Welcome to this BETA release of Ardour 3.0</b>\n\n\
-Ardour 3.0 has been released for Linux but because of the lack of testers,\n\
+ VBox* vbox = manage (new VBox);
+ Label* label = manage (new Label);
+ label->set_markup (string_compose (_("<b>Welcome to this BETA release of Ardour %1</b>\n\n\
+Ardour %1 has been released for Linux but because of the lack of testers,\n\
it is still at the beta stage on OS X. So, a few guidelines:\n\
\n\
1) Please do <b>NOT</b> use this software with the expectation that it is stable or reliable\n\
though it may be so, depending on your workflow.\n\
-3) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
-4) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
- making sure to note the product version number as 3.0-beta.\n\
-5) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
-6) Please <b>DO</b> join us on IRC for real time discussions about ardour3. You\n\
+2) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
+3) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
+ making sure to note the product version number as %1-beta.\n\
+4) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
+5) Please <b>DO</b> join us on IRC for real time discussions about ardour3. You\n\
can get there directly from Ardour via the Help->Chat menu option.\n\
\n\
Full information on all the above can be found on the support page at\n\
\n\
http://ardour.org/support\n\
-"));
-
- vbox->set_border_width (12);
- vbox->pack_start (*label, false, false, 12);
- vbox->show_all ();
+"), VERSIONSTRING));
- append_page (*vbox);
- set_page_type (*vbox, ASSISTANT_PAGE_CONTENT);
- set_page_title (*vbox, _("This is a BETA RELEASE"));
+ vbox->set_border_width (12);
+ vbox->pack_start (*label, false, false, 12);
+ vbox->show_all ();
+
+ append_page (*vbox);
+ set_page_type (*vbox, ASSISTANT_PAGE_CONTENT);
+ set_page_title (*vbox, _("This is a BETA RELEASE"));
set_page_complete (*vbox, true);
}
@@ -917,6 +917,7 @@ ArdourStartup::setup_new_session_page ()
if (more_new_session_options_button.get_active()) {
set_page_type (session_vbox, ASSISTANT_PAGE_CONTENT);
}
+ session_hbox.show_all();
}
void
@@ -1092,6 +1093,7 @@ ArdourStartup::setup_existing_session_page ()
set_page_title (session_vbox, _("Select a session"));
set_page_type (session_vbox, ASSISTANT_PAGE_CONFIRM);
+ session_hbox.show_all();
}
void
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc
index fdb9782236..2cc2adf761 100644
--- a/gtk2_ardour/time_axis_view.cc
+++ b/gtk2_ardour/time_axis_view.cc
@@ -410,6 +410,7 @@ TimeAxisView::controls_ebox_motion (GdkEventMotion* ev)
maybe_set_cursor (ev->y);
}
+ gdk_event_request_motions(ev);
return true;
}
diff --git a/gtk2_ardour/transcode_ffmpeg.cc b/gtk2_ardour/transcode_ffmpeg.cc
index 657b79ffba..9499c6c184 100644
--- a/gtk2_ardour/transcode_ffmpeg.cc
+++ b/gtk2_ardour/transcode_ffmpeg.cc
@@ -261,10 +261,10 @@ TranscodeFfmpeg::probe ()
return true;
}
-FFSettings
+TranscodeFfmpeg::FFSettings
TranscodeFfmpeg::default_encoder_settings ()
{
- FFSettings ffs;
+ TranscodeFfmpeg::FFSettings ffs;
ffs.clear();
ffs["-vcodec"] = "mpeg4";
ffs["-acodec"] = "ac3";
@@ -273,10 +273,10 @@ TranscodeFfmpeg::default_encoder_settings ()
return ffs;
}
-FFSettings
+TranscodeFfmpeg::FFSettings
TranscodeFfmpeg::default_meta_data ()
{
- FFSettings ffm;
+ TranscodeFfmpeg::FFSettings ffm;
ffm.clear();
ffm["comment"] = "Created with ardour";
return ffm;
@@ -308,7 +308,7 @@ TranscodeFfmpeg::format_metadata (std::string key, std::string value)
}
bool
-TranscodeFfmpeg::encode (std::string outfile, std::string inf_a, std::string inf_v, FFSettings ffs, FFSettings meta, bool map)
+TranscodeFfmpeg::encode (std::string outfile, std::string inf_a, std::string inf_v, TranscodeFfmpeg::FFSettings ffs, TranscodeFfmpeg::FFSettings meta, bool map)
{
#define MAX_FFMPEG_ENCODER_ARGS (100)
char **argp;
@@ -327,11 +327,11 @@ TranscodeFfmpeg::encode (std::string outfile, std::string inf_a, std::string inf
argp[a++] = strdup("-i");
argp[a++] = strdup(inf_a.c_str());
- for(FFSettings::const_iterator it = ffs.begin(); it != ffs.end(); ++it) {
+ for(TranscodeFfmpeg::FFSettings::const_iterator it = ffs.begin(); it != ffs.end(); ++it) {
argp[a++] = strdup(it->first.c_str());
argp[a++] = strdup(it->second.c_str());
}
- for(FFSettings::const_iterator it = meta.begin(); it != meta.end(); ++it) {
+ for(TranscodeFfmpeg::FFSettings::const_iterator it = meta.begin(); it != meta.end(); ++it) {
argp[a++] = strdup("-metadata");
argp[a++] = format_metadata(it->first.c_str(), it->second.c_str());
}
diff --git a/gtk2_ardour/transcode_ffmpeg.h b/gtk2_ardour/transcode_ffmpeg.h
index d1f445bf48..61267ac853 100644
--- a/gtk2_ardour/transcode_ffmpeg.h
+++ b/gtk2_ardour/transcode_ffmpeg.h
@@ -24,14 +24,6 @@
#include "ardour/types.h"
#include "system_exec.h"
-/* TODO: use a namespace here ? */
-struct FFAudioStream {
- std::string name;
- std::string stream_id;
- uint32_t channels;
-};
-typedef std::vector<FFAudioStream> AudioStreams;
-typedef std::map<std::string,std::string> FFSettings;
/** @class TranscodeFfmpeg
* @brief wrapper around ffmpeg and ffprobe command-line utils
@@ -46,6 +38,15 @@ class TranscodeFfmpeg : public sigc::trackable
{
public:
+ struct FFAudioStream {
+ std::string name;
+ std::string stream_id;
+ uint32_t channels;
+ };
+ typedef std::vector<FFAudioStream> FFAudioStreams;
+ typedef std::map<std::string,std::string> FFSettings;
+
+
/** instantiate a new transcoder. If a file-name is given, the file's
* attributes (fps, duration, geometry etc) are read.
*
@@ -110,7 +111,7 @@ class TranscodeFfmpeg : public sigc::trackable
ARDOUR::framecnt_t get_duration() { return m_duration; }
std::string get_codec() { return m_codec; }
- AudioStreams get_audio() { return m_audio; }
+ FFAudioStreams get_audio() { return m_audio; }
/** override file duration used with the \ref Progress signal.
* @param d duration in video-frames = length_in_seconds * get_fps()
@@ -145,7 +146,7 @@ class TranscodeFfmpeg : public sigc::trackable
bool ffexecok;
bool probeok;
- AudioStreams m_audio;
+ FFAudioStreams m_audio;
char *format_metadata (std::string, std::string);
void ffmpegparse_v (std::string d, size_t s);
diff --git a/gtk2_ardour/transcode_video_dialog.cc b/gtk2_ardour/transcode_video_dialog.cc
index 4d8b9b9f11..92265284c6 100644
--- a/gtk2_ardour/transcode_video_dialog.cc
+++ b/gtk2_ardour/transcode_video_dialog.cc
@@ -90,7 +90,7 @@ TranscodeVideoDialog::TranscodeVideoDialog (Session* s, std::string infile)
int w = 0, h = 0;
m_aspect = 4.0/3.0;
- AudioStreams as; as.clear();
+ TranscodeFfmpeg::FFAudioStreams as; as.clear();
path_hbox->pack_start (path_label, false, false, 3);
path_hbox->pack_start (path_entry, true, true, 3);
@@ -229,7 +229,7 @@ TranscodeVideoDialog::TranscodeVideoDialog (Session* s, std::string infile)
t->attach (audio_combo, 1, 4, 2, 3);
audio_combo.append_text("No audio");
if (as.size() > 0) {
- for (AudioStreams::iterator it = as.begin(); it < as.end(); ++it) {
+ for (TranscodeFfmpeg::FFAudioStreams::iterator it = as.begin(); it < as.end(); ++it) {
audio_combo.append_text((*it).name);
}
}
diff --git a/gtk2_ardour/window_manager.h b/gtk2_ardour/window_manager.h
index 3a80840891..ca33b30234 100644
--- a/gtk2_ardour/window_manager.h
+++ b/gtk2_ardour/window_manager.h
@@ -151,7 +151,7 @@ class ProxyWithConstructor: public ProxyBase {
: ProxyBase (name, menu_name) , creator (c) {}
ProxyWithConstructor (const std::string& name, const std::string& menu_name, const boost::function<T*()>& c, const XMLNode* node)
- : ProxyBase (name, menu_name, node) , creator (c) {}
+ : ProxyBase (name, menu_name, *node) , creator (c) {}
Gtk::Window* get (bool create = false) {
if (!_window) {
@@ -198,7 +198,7 @@ class Proxy : public ProxyBase {
: ProxyBase (name, menu_name) {}
Proxy (const std::string& name, const std::string& menu_name, const XMLNode* node)
- : ProxyBase (name, menu_name, node) {}
+ : ProxyBase (name, menu_name, *node) {}
Gtk::Window* get (bool create = false) {
if (!_window) {
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index 3b75c0a51b..9c1d21a3e4 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -20,6 +20,8 @@
#ifndef __ardour_midi_track_h__
#define __ardour_midi_track_h__
+#include "pbd/ffs.h"
+
#include "ardour/track.h"
#include "ardour/midi_ring_buffer.h"
@@ -183,7 +185,7 @@ private:
/* if mode is ForceChannel, force mask to the lowest set channel or 1 if no
* channels are set.
*/
-#define force_mask(mode,mask) (((mode) == ForceChannel) ? (((mask) ? (1<<(ffs((mask))-1)) : 1)) : mask)
+#define force_mask(mode,mask) (((mode) == ForceChannel) ? (((mask) ? (1<<(PBD::ffs((mask))-1)) : 1)) : mask)
void _set_playback_channel_mode(ChannelMode mode, uint16_t mask) {
mask = force_mask (mode, mask);
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc
index b4ca9e2df8..4b33bbd4c6 100644
--- a/libs/ardour/audio_track.cc
+++ b/libs/ardour/audio_track.cc
@@ -325,6 +325,9 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}
@@ -354,7 +357,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
fill_buffers_with_input (bufs, _input, nframes);
- if (_meter_point == MeterInput) {
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
_meter->run (bufs, start_frame, end_frame, nframes, true);
}
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index ea2e93c5a0..9c86b87415 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -1717,6 +1717,7 @@ AUPlugin::set_state(const XMLNode& node, int version)
return -1;
}
+#ifndef NO_PLUGIN_STATE
if (node.children().empty()) {
return -1;
}
@@ -1752,6 +1753,7 @@ AUPlugin::set_state(const XMLNode& node, int version)
}
CFRelease (propertyList);
}
+#endif
Plugin::set_state (node, version);
return ret;
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index a69e98283e..583ed1ae82 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -1568,7 +1568,7 @@ AudioEngine::stop_process_thread (jack_native_thread_t thread)
* Jack 2 _jack arg is not used so it should be OK
*/
-#ifdef USING_JACK2_EXPANSION_OF_JACK_API
+#if defined(USING_JACK2_EXPANSION_OF_JACK_API) || defined(WIN32)
if (jack_client_stop_thread (_jack, thread) != 0) {
error << "AudioEngine: cannot stop process thread" << endmsg;
return false;
diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc
index 4e080b06d8..1349d49a0c 100644
--- a/libs/ardour/io.cc
+++ b/libs/ardour/io.cc
@@ -1645,7 +1645,9 @@ IO::process_input (boost::shared_ptr<Processor> proc, framepos_t start_frame, fr
}
_buffers.get_jack_port_addresses (_ports, nframes);
- proc->run (_buffers, start_frame, end_frame, nframes, true);
+ if (proc) {
+ proc->run (_buffers, start_frame, end_frame, nframes, true);
+ }
}
void
diff --git a/libs/ardour/kmeterdsp.cc b/libs/ardour/kmeterdsp.cc
index 77d1a87a81..afd0f71719 100644
--- a/libs/ardour/kmeterdsp.cc
+++ b/libs/ardour/kmeterdsp.cc
@@ -46,12 +46,6 @@ void Kmeterdsp::process (float *p, int n)
float s, t, z1, z2;
- if (_flag) // Display thread has read the rms value.
- {
- _rms = 0;
- _flag = false;
- }
-
// Get filter state.
z1 = _z1;
z2 = _z2;
@@ -88,9 +82,18 @@ void Kmeterdsp::process (float *p, int n)
_z1 = z1 + 1e-20f;
_z2 = z2 + 1e-20f;
- // Adjust RMS value and update maximum since last read().
s = sqrtf (2 * z2);
- if (s > _rms) _rms = s;
+
+ if (_flag) // Display thread has read the rms value.
+ {
+ _rms = s;
+ _flag = false;
+ }
+ else
+ {
+ // Adjust RMS value and update maximum since last read().
+ if (s > _rms) _rms = s;
+ }
}
diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc
index 6ee810f6b1..82bf97264f 100644
--- a/libs/ardour/ladspa_plugin.cc
+++ b/libs/ardour/ladspa_plugin.cc
@@ -40,6 +40,7 @@
#include "pbd/compose.h"
#include "pbd/error.h"
#include "pbd/xml++.h"
+#include "pbd/stacktrace.h"
#include "midi++/manager.h"
@@ -372,6 +373,7 @@ LadspaPlugin::set_state (const XMLNode& node, int version)
return set_state_2X (node, version);
}
+#ifndef NO_PLUGIN_STATE
XMLNodeList nodes;
XMLProperty *prop;
XMLNodeConstIterator iter;
@@ -379,6 +381,7 @@ LadspaPlugin::set_state (const XMLNode& node, int version)
const char *port;
const char *data;
uint32_t port_id;
+#endif
LocaleGuard lg (X_("POSIX"));
if (node.name() != state_node_name()) {
@@ -386,6 +389,8 @@ LadspaPlugin::set_state (const XMLNode& node, int version)
return -1;
}
+#ifndef NO_PLUGIN_STATE
+
nodes = node.children ("Port");
for (iter = nodes.begin(); iter != nodes.end(); ++iter) {
@@ -408,6 +413,7 @@ LadspaPlugin::set_state (const XMLNode& node, int version)
sscanf (port, "%" PRIu32, &port_id);
set_parameter (port_id, atof(data));
}
+#endif
latency_compute_run ();
@@ -417,6 +423,7 @@ LadspaPlugin::set_state (const XMLNode& node, int version)
int
LadspaPlugin::set_state_2X (const XMLNode& node, int /* version */)
{
+#ifndef NO_PLUGIN_STATE
XMLNodeList nodes;
XMLProperty *prop;
XMLNodeConstIterator iter;
@@ -424,6 +431,7 @@ LadspaPlugin::set_state_2X (const XMLNode& node, int /* version */)
const char *port;
const char *data;
uint32_t port_id;
+#endif
LocaleGuard lg (X_("POSIX"));
if (node.name() != state_node_name()) {
@@ -431,6 +439,7 @@ LadspaPlugin::set_state_2X (const XMLNode& node, int /* version */)
return -1;
}
+#ifndef NO_PLUGIN_STATE
nodes = node.children ("port");
for(iter = nodes.begin(); iter != nodes.end(); ++iter){
@@ -455,6 +464,7 @@ LadspaPlugin::set_state_2X (const XMLNode& node, int /* version */)
}
latency_compute_run ();
+#endif
return 0;
}
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index c5a02575fd..2f46db75a6 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -113,6 +113,8 @@ public:
LV2World ();
~LV2World ();
+ void load_bundled_plugins();
+
LilvWorld* world;
LilvNode* atom_AtomPort;
@@ -141,6 +143,9 @@ public:
LilvNode* time_Position;
LilvNode* ui_GtkUI;
LilvNode* ui_external;
+
+private:
+ bool _bundle_checked;
};
static LV2World _world;
@@ -1229,6 +1234,8 @@ LV2Plugin::set_state(const XMLNode& node, int version)
return -1;
}
+#ifndef NO_PLUGIN_STATE
+
if (version < 3000) {
nodes = node.children("port");
} else {
@@ -1284,6 +1291,7 @@ LV2Plugin::set_state(const XMLNode& node, int version)
}
latency_compute_run();
+#endif
return Plugin::set_state(node, version);
}
@@ -1904,27 +1912,10 @@ static bool lv2_filter (const string& str, void *arg)
LV2World::LV2World()
: world(lilv_world_new())
+ , _bundle_checked(false)
{
lilv_world_load_all(world);
- cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
- PathScanner scanner;
- vector<string *> *plugin_objects = scanner (ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true);
- if (plugin_objects) {
- for ( vector<string *>::iterator x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
-#ifdef WINDOWS
- string uri = "file:///" + **x + "/";
-#else
- string uri = "file://" + **x + "/";
-#endif
- LilvNode *node = lilv_new_uri(world, uri.c_str());
- lilv_world_load_bundle(world, node);
- lilv_node_free(node);
- }
- }
- delete (plugin_objects);
-
-
atom_AtomPort = lilv_new_uri(world, LV2_ATOM__AtomPort);
atom_Chunk = lilv_new_uri(world, LV2_ATOM__Chunk);
atom_Sequence = lilv_new_uri(world, LV2_ATOM__Sequence);
@@ -1983,6 +1974,31 @@ LV2World::~LV2World()
lilv_node_free(atom_AtomPort);
}
+void
+LV2World::load_bundled_plugins()
+{
+ if (!_bundle_checked) {
+ cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
+ PathScanner scanner;
+ vector<string *> *plugin_objects = scanner (ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true);
+ if (plugin_objects) {
+ for ( vector<string *>::iterator x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
+#ifdef WINDOWS
+ string uri = "file:///" + **x + "/";
+#else
+ string uri = "file://" + **x + "/";
+#endif
+ LilvNode *node = lilv_new_uri(world, uri.c_str());
+ lilv_world_load_bundle(world, node);
+ lilv_node_free(node);
+ }
+ }
+ delete (plugin_objects);
+
+ _bundle_checked = true;
+ }
+}
+
LV2PluginInfo::LV2PluginInfo (const void* c_plugin)
: _c_plugin(c_plugin)
{
@@ -2014,6 +2030,8 @@ LV2PluginInfo::load(Session& session)
PluginInfoList*
LV2PluginInfo::discover()
{
+ _world.load_bundled_plugins();
+
PluginInfoList* plugs = new PluginInfoList;
const LilvPlugins* plugins = lilv_world_get_all_plugins(_world.world);
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index 304bffe5c9..3d1ab61bbc 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -116,6 +116,10 @@ PeakMeter::reset ()
for (size_t i = 0; i < _peak_signal.size(); ++i) {
_peak_signal[i] = 0.0f;
}
+
+ for (size_t n = 0; n < _kmeter.size(); ++n) {
+ _kmeter[n]->reset();
+ }
}
void
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc
index a21f3fb6f4..d27c2fa9c7 100644
--- a/libs/ardour/midi_diskstream.cc
+++ b/libs/ardour/midi_diskstream.cc
@@ -26,10 +26,10 @@
#include <fcntl.h>
#include <cstdlib>
#include <ctime>
-#include <strings.h> // for ffs(3)
#include <sys/stat.h>
#include "pbd/error.h"
+#include "pbd/ffs.h"
#include "pbd/basename.h"
#include <glibmm/threads.h>
#include "pbd/xml++.h"
@@ -438,7 +438,7 @@ MidiDiskstream::process (BufferSet& bufs, framepos_t transport_frame, pframes_t
break;
case ForceChannel:
if (ev.is_channel_event()) {
- ev.set_channel (ffs(mask) - 1);
+ ev.set_channel (PBD::ffs(mask) - 1);
}
_capture_buf->write(transport_frame + loop_offset + ev.time(),
ev.type(), ev.size(), ev.buffer());
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index f7f9ff7a59..7c4ae24a2a 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -17,8 +17,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <strings.h> // for ffs(3)
-
+#include "pbd/ffs.h"
#include "pbd/enumwriter.h"
#include "pbd/convert.h"
#include "evoral/midi_util.h"
@@ -330,6 +329,9 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}
@@ -354,7 +356,7 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
fill_buffers_with_input (bufs, _input, nframes);
- if (_meter_point == MeterInput) {
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
_meter->run (bufs, start_frame, end_frame, nframes, true);
}
@@ -504,7 +506,7 @@ MidiTrack::filter_channels (BufferSet& bufs, ChannelMode mode, uint32_t mask)
}
break;
case ForceChannel:
- ev.set_channel (ffs (mask) - 1);
+ ev.set_channel (PBD::ffs (mask) - 1);
++e;
break;
case AllChannels:
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc
index ec9e333285..5e0e020bd1 100644
--- a/libs/ardour/plugin.cc
+++ b/libs/ardour/plugin.cc
@@ -397,7 +397,7 @@ Plugin::get_state ()
add_state (root);
#else
if (!seen_get_state_message) {
- info << string_compose (_("Saving AudioUnit settings is not supported in this build of %1. Consider paying for a newer version"),
+ info << string_compose (_("Saving plugin settings is not supported in this build of %1. Consider paying for the full version"),
PROGRAM_NAME)
<< endmsg;
seen_get_state_message = true;
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 23cebf4276..998a03e3aa 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -882,7 +882,12 @@ PluginInsert::set_control_ids (const XMLNode& node, int version)
if ((prop = (*iter)->property (X_("parameter"))) != 0) {
uint32_t p = atoi (prop->value());
+
+ /* this may create the new controllable */
+
boost::shared_ptr<Evoral::Control> c = control (Evoral::Parameter (PluginAutomation, 0, p));
+
+#ifndef NO_PLUGIN_STATE
if (!c) {
continue;
}
@@ -890,6 +895,7 @@ PluginInsert::set_control_ids (const XMLNode& node, int version)
if (ac) {
ac->set_state (**iter, version);
}
+#endif
}
}
}
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index c6f588a79c..797481b7b8 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -2562,21 +2562,10 @@ Route::set_processor_state (const XMLNode& node)
continue;
}
-#ifndef NO_PLUGIN_STATE
if (processor->set_state (**niter, Stateful::current_state_version) != 0) {
/* This processor could not be configured. Turn it into a UnknownProcessor */
processor.reset (new UnknownProcessor (_session, **niter));
}
-#else
- if (boost::dynamic_pointer_cast<PluginInsert>(processor)) {
- if (processor->set_state (**niter, Stateful::current_state_version) != 0) {
- /* This processor could not be configured. Turn it into a UnknownProcessor */
- processor.reset (new UnknownProcessor (_session, **niter));
- }
- } else {
- /* plugin, but ::set_state() not * allowed no message here - things will get too verbose */
- }
-#endif
/* we have to note the monitor send here, otherwise a new one will be created
and the state of this one will be lost.
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 6d153e1cbf..c6a348ddfb 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -347,6 +347,9 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}
@@ -405,8 +408,39 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
if (be_silent) {
if (_meter_point == MeterInput) {
- /* still need input monitoring */
- _input->process_input (_meter, start_frame, end_frame, nframes);
+ /* still need input monitoring and metering */
+
+ bool const track_rec = _diskstream->record_enabled ();
+ bool const auto_input = _session.config.get_auto_input ();
+ bool const software_monitor = Config->get_monitoring_model() == SoftwareMonitoring;
+ bool const tape_machine_mode = Config->get_tape_machine_mode ();
+ bool no_meter = false;
+
+ /* this needs a proper K-map
+ * and should be separated into a function similar to monitoring_state()
+ * that also handles roll() states in audio_track.cc, midi_track.cc and route.cc
+ *
+ * see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV3.pdf
+ */
+ if (!auto_input && !track_rec) {
+ no_meter=true;
+ }
+ else if (tape_machine_mode && !track_rec && auto_input) {
+ no_meter=true;
+ }
+ else if (!software_monitor && tape_machine_mode && !track_rec) {
+ no_meter=true;
+ }
+ else if (!software_monitor && !tape_machine_mode && !track_rec && !auto_input) {
+ no_meter=true;
+ }
+
+ if (no_meter) {
+ _meter->reset();
+ _input->process_input (boost::shared_ptr<Processor>(), start_frame, end_frame, nframes);
+ } else {
+ _input->process_input (_meter, start_frame, end_frame, nframes);
+ }
}
passthru_silence (start_frame, end_frame, nframes, 0);
@@ -945,6 +979,14 @@ Track::set_monitoring (MonitorChoice mc)
MeterState
Track::metering_state () const
{
- return (_diskstream->record_enabled() || _meter_point == MeterInput) ? MeteringInput : MeteringRoute;
+ bool rv;
+ if (_session.transport_rolling ()) {
+ // audio_track.cc || midi_track.cc roll() runs meter IFF:
+ rv = _meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled());
+ } else {
+ // track no_roll() always metering if
+ rv = _meter_point == MeterInput;
+ }
+ return rv ? MeteringInput : MeteringRoute;
}
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index c385e71a5a..b80a594495 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -197,14 +197,15 @@ int
VSTPlugin::set_state (const XMLNode& node, int version)
{
LocaleGuard lg (X_("POSIX"));
+ int ret = -1;
if (node.name() != state_node_name()) {
error << _("Bad node sent to VSTPlugin::set_state") << endmsg;
return 0;
}
+#ifndef NO_PLUGIN_STATE
XMLNode* child;
- int ret = -1;
if ((child = find_named_node (node, X_("chunk"))) != 0) {
@@ -237,6 +238,7 @@ VSTPlugin::set_state (const XMLNode& node, int version)
ret = 0;
}
+#endif
Plugin::set_state (node, version);
return ret;
diff --git a/libs/audiographer/audiographer/debug_utils.h b/libs/audiographer/audiographer/debug_utils.h
index 7b9e50124a..693c50064c 100644
--- a/libs/audiographer/audiographer/debug_utils.h
+++ b/libs/audiographer/audiographer/debug_utils.h
@@ -3,6 +3,7 @@
#include "flag_field.h"
+#include <cstdlib>
#include <string>
#ifdef __GNUC__
@@ -25,7 +26,7 @@ struct DebugUtils
char * res = abi::__cxa_demangle (typeid(obj).name(), 0, 0, &status);
if (status == 0) {
std::string s(res);
- free (res);
+ std::free (res);
return s;
}
#endif
diff --git a/libs/evoral/evoral/PatchChange.hpp b/libs/evoral/evoral/PatchChange.hpp
index b1a42c6f2e..53b50a3383 100644
--- a/libs/evoral/evoral/PatchChange.hpp
+++ b/libs/evoral/evoral/PatchChange.hpp
@@ -123,7 +123,7 @@ public:
return time() < o.time();
}
- if (bank != o.bank()) {
+ if (bank() != o.bank()) {
return bank() < o.bank();
}
diff --git a/libs/evoral/src/Sequence.cpp b/libs/evoral/src/Sequence.cpp
index b56c234d75..204ef58f33 100644
--- a/libs/evoral/src/Sequence.cpp
+++ b/libs/evoral/src/Sequence.cpp
@@ -24,6 +24,10 @@
#include <stdint.h>
#include <cstdio>
+#if __clang__
+#include "evoral/Note.hpp"
+#endif
+
#include "pbd/compose.h"
#include "pbd/error.h"
diff --git a/libs/gtkmm2ext/fastmeter.cc b/libs/gtkmm2ext/fastmeter.cc
index c0bcb05af5..6ea1a6dd4b 100644
--- a/libs/gtkmm2ext/fastmeter.cc
+++ b/libs/gtkmm2ext/fastmeter.cc
@@ -23,6 +23,8 @@
#include <algorithm>
#include <cstring>
+#include <stdlib.h>
+
#include <gdkmm/rectangle.h>
#include <gtkmm2ext/fastmeter.h>
#include <gtkmm2ext/utils.h>
@@ -37,6 +39,7 @@ using namespace std;
int FastMeter::min_pattern_metric_size = 16;
int FastMeter::max_pattern_metric_size = 1024;
+bool FastMeter::no_rgba_overlay = false;
FastMeter::Pattern10Map FastMeter::vm_pattern_cache;
FastMeter::PatternBgMap FastMeter::vb_pattern_cache;
@@ -61,6 +64,7 @@ FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len,
last_peak_rect.height = 0;
highlight = false;
+ no_rgba_overlay = ! Glib::getenv("NO_METER_SHADE").empty();
_clr[0] = clr0;
_clr[1] = clr1;
@@ -173,7 +177,7 @@ FastMeter::generate_meter_pattern (
cairo_pattern_add_color_stop_rgb (pat, 1.0,
r/255.0, g/255.0, b/255.0);
- if (shade) {
+ if (shade && !no_rgba_overlay) {
cairo_pattern_t* shade_pattern = cairo_pattern_create_linear (0.0, 0.0, width, 0.0);
cairo_pattern_add_color_stop_rgba (shade_pattern, 0, 1.0, 1.0, 1.0, 0.2);
cairo_pattern_add_color_stop_rgba (shade_pattern, 1, 0.0, 0.0, 0.0, 0.3);
@@ -221,7 +225,7 @@ FastMeter::generate_meter_background (
cairo_pattern_add_color_stop_rgb (pat, 1.0,
r0/255.0, g0/255.0, b0/255.0);
- if (shade) {
+ if (shade && !no_rgba_overlay) {
cairo_pattern_t* shade_pattern = cairo_pattern_create_linear (0.0, 0.0, width, 0.0);
cairo_pattern_add_color_stop_rgba (shade_pattern, 0.0, 1.0, 1.0, 1.0, 0.15);
cairo_pattern_add_color_stop_rgba (shade_pattern, 0.6, 0.0, 0.0, 0.0, 0.10);
@@ -417,7 +421,8 @@ FastMeter::vertical_expose (GdkEventExpose* ev)
cairo_set_source (cr, fgpattern->cobj());
cairo_rectangle (cr, 1, last_peak_rect.y, pixwidth, last_peak_rect.height);
- if (bright_hold) {
+
+ if (bright_hold && !no_rgba_overlay) {
cairo_fill_preserve (cr);
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.3);
}
diff --git a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h
index f065020a57..15c962deb4 100644
--- a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h
+++ b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h
@@ -96,6 +96,8 @@ private:
bool vertical_expose (GdkEventExpose*);
void queue_vertical_redraw (const Glib::RefPtr<Gdk::Window>&, float);
+ static bool no_rgba_overlay;
+
static Cairo::RefPtr<Cairo::Pattern> generate_meter_pattern (
int w, int h, int *clr, float *stp, bool shade);
static Cairo::RefPtr<Cairo::Pattern> request_vertical_meter (
diff --git a/libs/gtkmm2ext/persistent_tooltip.cc b/libs/gtkmm2ext/persistent_tooltip.cc
index ea0ffd63e9..77a8d94c0f 100644
--- a/libs/gtkmm2ext/persistent_tooltip.cc
+++ b/libs/gtkmm2ext/persistent_tooltip.cc
@@ -48,6 +48,9 @@ PersistentTooltip::~PersistentTooltip ()
bool
PersistentTooltip::enter (GdkEventCrossing *)
{
+ if (_timeout.connected()) {
+ leave(NULL);
+ }
_timeout = Glib::signal_timeout().connect (sigc::mem_fun (*this, &PersistentTooltip::timeout), 500);
return false;
}
diff --git a/libs/pbd/ffs.cc b/libs/pbd/ffs.cc
new file mode 100644
index 0000000000..8f7ecdb502
--- /dev/null
+++ b/libs/pbd/ffs.cc
@@ -0,0 +1,35 @@
+/*
+ Copyright (C) 2013 Tim Mayberry
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "pbd/ffs.h"
+
+#include <strings.h>
+
+namespace PBD {
+int
+ffs (int x)
+{
+#if defined(WIN32) && defined(__GNUC__)
+ return __builtin_ffs(x);
+#else
+ return ffs(x);
+#endif
+}
+
+}
diff --git a/libs/pbd/pathexpand.cc b/libs/pbd/pathexpand.cc
index ae3bed4599..3f1f1cf670 100644
--- a/libs/pbd/pathexpand.cc
+++ b/libs/pbd/pathexpand.cc
@@ -38,7 +38,7 @@ PBD::canonical_path (const std::string& path)
{
#ifdef COMPILER_MINGW
return path;
-#endif
+#else
char buf[PATH_MAX+1];
if (!realpath (path.c_str(), buf) && (errno != ENOENT)) {
@@ -46,6 +46,7 @@ PBD::canonical_path (const std::string& path)
}
return string (buf);
+#endif
}
string
diff --git a/libs/pbd/pbd/ffs.h b/libs/pbd/pbd/ffs.h
new file mode 100644
index 0000000000..3a2eadfae7
--- /dev/null
+++ b/libs/pbd/pbd/ffs.h
@@ -0,0 +1,27 @@
+/*
+ Copyright (C) 2013 Tim Mayberry
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __libpbd_ffs_h__
+#define __libpbd_ffs_h__
+
+namespace PBD {
+ int ffs(int x);
+}
+
+#endif /* __libpbd_ffs_h__ */
diff --git a/libs/pbd/pbd/stl_delete.h b/libs/pbd/pbd/stl_delete.h
index 66fb027387..ac2161560c 100644
--- a/libs/pbd/pbd/stl_delete.h
+++ b/libs/pbd/pbd/stl_delete.h
@@ -20,11 +20,19 @@
#ifndef __libmisc_stl_delete_h__
#define __libmisc_stl_delete_h__
+
+#if __clang__ && __APPLE__ && __cplusplus >= 201103L
+#include <vector>
+#ifndef _CPP_VECTOR
+#define _CPP_VECTOR
+#endif
+#endif
+
/* To actually use any of these deletion functions, you need to
first include the revelant container type header.
*/
#if defined(_CPP_VECTOR) || defined(_GLIBCXX_VECTOR) || defined(__SGI_STL_VECTOR)
-template<class T> void vector_delete (std::vector<T *> *vec)
+template<class T> void vector_delete (std::vector<T *> *vec)
{
typename std::vector<T *>::iterator i;
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index 91d9b2c50b..e26b96ca11 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -45,6 +45,7 @@ libpbd_sources = [
'enums.cc',
'epa.cc',
'error.cc',
+ 'ffs.cc',
'file_manager.cc',
'file_utils.cc',
'fpu.cc',
diff --git a/msvc_extra_headers/je-test.h b/msvc_extra_headers/je-test.h
new file mode 100644
index 0000000000..6653041d8a
--- /dev/null
+++ b/msvc_extra_headers/je-test.h
@@ -0,0 +1,66 @@
+#ifndef _TARGETSXS_H_
+#define _TARGETSXS_H_
+
+#pragma warning( disable : 4996 )
+
+#ifndef HAVE_LV2
+#define HAVE_SUIL
+#define HAVE_LV2
+/* Comment out the above lines to build Mixbus without LV2 support */
+#endif
+
+#ifndef VST_SUPPORT
+#define VST_SUPPORT
+/* Comment out the above line to build Mixbus without VST support */
+#endif
+
+#ifndef JACK_32_64
+#define JACK_32_64
+/* Shouldn't really be needed but make sure that any structs we
+ obtain from libjack will have 1-byte packing alignment where
+ necessary (belt & braces approach to be on the safe side) */
+#endif
+
+#ifdef _DEBUG
+#define _SECURE_SCL 1
+#define _HAS_ITERATOR_DEBUGGING 1
+/* #define to zero for a more conventional Debug build */
+#endif
+
+#ifndef __midl
+#if defined(_DEBUG) || defined (DEBUG)
+/* Experimental - link to the lowest DebugCRT so we can run on another system */
+#define _SXS_ASSEMBLY_VERSION "8.0.50727.42"
+#else
+#define _SXS_ASSEMBLY_VERSION "8.0.50727.6195"
+#endif
+#define _CRT_ASSEMBLY_VERSION _SXS_ASSEMBLY_VERSION
+#define _MFC_ASSEMBLY_VERSION _SXS_ASSEMBLY_VERSION
+#define _ATL_ASSEMBLY_VERSION _SXS_ASSEMBLY_VERSION
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+__declspec(selectany) int _forceCRTManifest;
+__declspec(selectany) int _forceMFCManifest;
+__declspec(selectany) int _forceAtlDllManifest;
+__declspec(selectany) int _forceCRTManifestRTM;
+__declspec(selectany) int _forceMFCManifestRTM;
+__declspec(selectany) int _forceAtlDllManifestRTM;
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+/* 'stdint.h' conflicts with various other libraries so
+ let's #include stdint.h first to ensure one consistent
+ implementation for commonly used integer types. */
+#include <stdint.h>
+
+#if (BUILDING_ARDOUR)
+#if defined(_MSC_VER) && !defined(__MINGW__) && !defined(__MINGW32__)
+#include <ardourext/misc.h>
+#endif
+#endif
+
+#endif /*_TARGETSXS_H_*/
diff --git a/wscript b/wscript
index 148b843a61..3088319def 100644
--- a/wscript
+++ b/wscript
@@ -8,7 +8,7 @@ import subprocess
import sys
MAJOR = '3'
-MINOR = '2'
+MINOR = '3'
VERSION = MAJOR + '.' + MINOR
APPNAME = 'Ardour' + MAJOR
@@ -109,6 +109,22 @@ def set_compiler_flags (conf,opt):
# waf adds -O0 -g itself. thanks waf!
is_clang = conf.env['CXX'][0].endswith('clang++')
+
+ if conf.options.cxx11:
+ conf.check_cxx(cxxflags=["-std=c++11"])
+ conf.env.append_unique('CXXFLAGS', ['-std=c++11'])
+ if platform == "darwin":
+ conf.env.append_unique('CXXFLAGS', ['-stdlib=libc++'])
+ conf.env.append_unique('LINKFLAGS', ['-lc++'])
+ # Prevents visibility issues in standard headers
+ conf.define("_DARWIN_C_SOURCE", 1)
+
+ if is_clang and platform == "darwin":
+ # Silence warnings about the non-existing osx clang compiler flags
+ # -compatibility_version and -current_version. These are Waf
+ # generated and not needed with clang
+ conf.env.append_unique ("CXXFLAGS", ["-Qunused-arguments"])
+
if opt.gprofile:
debug_flags = [ '-pg' ]
@@ -453,6 +469,8 @@ def options(opt):
help='directory where Wine\'s Windows header files can be found')
opt.add_option('--noconfirm', action='store_true', default=False, dest='noconfirm',
help='Do not ask questions that require confirmation during the build')
+ opt.add_option('--cxx11', action='store_true', default=False, dest='cxx11',
+ help='Turn on c++11 compiler flags (-std=c++11)')
for i in children:
opt.recurse(i)