diff options
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\">>24 hrs</span>" msgstr "Ðа диÑке: <span foreground=\"green\">>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_*/ @@ -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) |