mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
region list patch #2 from chris g, slightly reworked by me; sv_se po changes, possibly borked
git-svn-id: svn://localhost/ardour2/branches/3.0@3820 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
3b424fd8b5
commit
e11b3f90c2
4 changed files with 295 additions and 781 deletions
|
|
@ -652,9 +652,17 @@ Editor::Editor ()
|
||||||
region_list_display.append_column (_("Start"), region_list_columns.start);
|
region_list_display.append_column (_("Start"), region_list_columns.start);
|
||||||
region_list_display.append_column (_("End"), region_list_columns.end);
|
region_list_display.append_column (_("End"), region_list_columns.end);
|
||||||
region_list_display.append_column (_("Length"), region_list_columns.length);
|
region_list_display.append_column (_("Length"), region_list_columns.length);
|
||||||
|
region_list_display.append_column (_("Sync"), region_list_columns.sync);
|
||||||
|
region_list_display.append_column (_("Fade In"), region_list_columns.fadein);
|
||||||
|
region_list_display.append_column (_("Fade Out"), region_list_columns.fadeout);
|
||||||
|
region_list_display.append_column (_("L"), region_list_columns.locked);
|
||||||
|
region_list_display.append_column (_("G"), region_list_columns.glued);
|
||||||
|
region_list_display.append_column (_("M"), region_list_columns.muted);
|
||||||
|
region_list_display.append_column (_("O"), region_list_columns.opaque);
|
||||||
region_list_display.append_column (_("Used"), region_list_columns.used);
|
region_list_display.append_column (_("Used"), region_list_columns.used);
|
||||||
region_list_display.append_column (_("Path to parent file"), region_list_columns.path);
|
region_list_display.append_column (_("Path to parent file"), region_list_columns.path);
|
||||||
region_list_display.set_headers_visible (true);
|
region_list_display.set_headers_visible (true);
|
||||||
|
region_list_display.set_grid_lines (TREE_VIEW_GRID_LINES_BOTH);
|
||||||
|
|
||||||
CellRendererText* region_name_cell = dynamic_cast<CellRendererText*>(region_list_display.get_column_cell_renderer (0));
|
CellRendererText* region_name_cell = dynamic_cast<CellRendererText*>(region_list_display.get_column_cell_renderer (0));
|
||||||
region_name_cell->property_editable() = true;
|
region_name_cell->property_editable() = true;
|
||||||
|
|
|
||||||
|
|
@ -933,16 +933,30 @@ class Editor : public PublicEditor
|
||||||
add (start);
|
add (start);
|
||||||
add (end);
|
add (end);
|
||||||
add (length);
|
add (length);
|
||||||
|
add (sync);
|
||||||
|
add (fadein);
|
||||||
|
add (fadeout);
|
||||||
|
add (locked);
|
||||||
|
add (glued);
|
||||||
|
add (muted);
|
||||||
|
add (opaque);
|
||||||
add (used);
|
add (used);
|
||||||
add (path);
|
add (path);
|
||||||
}
|
}
|
||||||
Gtk::TreeModelColumn<Glib::ustring> name;
|
Gtk::TreeModelColumn<Glib::ustring> name;
|
||||||
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region;
|
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region;
|
||||||
Gtk::TreeModelColumn<Gdk::Color> color_;
|
Gtk::TreeModelColumn<Gdk::Color> color_;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> start;
|
Gtk::TreeModelColumn<Glib::ustring> start;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> end;
|
Gtk::TreeModelColumn<Glib::ustring> end;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> length;
|
Gtk::TreeModelColumn<Glib::ustring> length;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> used;
|
Gtk::TreeModelColumn<Glib::ustring> sync;
|
||||||
|
Gtk::TreeModelColumn<Glib::ustring> fadein;
|
||||||
|
Gtk::TreeModelColumn<Glib::ustring> fadeout;
|
||||||
|
Gtk::TreeModelColumn<bool> locked;
|
||||||
|
Gtk::TreeModelColumn<bool> glued;
|
||||||
|
Gtk::TreeModelColumn<bool> muted;
|
||||||
|
Gtk::TreeModelColumn<bool> opaque;
|
||||||
|
Gtk::TreeModelColumn<Glib::ustring> used;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> path;
|
Gtk::TreeModelColumn<Glib::ustring> path;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1091,7 +1105,9 @@ class Editor : public PublicEditor
|
||||||
void add_regions_to_region_display (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
|
void add_regions_to_region_display (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
|
||||||
void region_hidden (boost::shared_ptr<ARDOUR::Region>);
|
void region_hidden (boost::shared_ptr<ARDOUR::Region>);
|
||||||
void redisplay_regions ();
|
void redisplay_regions ();
|
||||||
|
void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &);
|
||||||
void update_region_row (boost::shared_ptr<ARDOUR::Region>);
|
void update_region_row (boost::shared_ptr<ARDOUR::Region>);
|
||||||
|
bool update_region_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int);
|
||||||
bool no_region_list_redisplay;
|
bool no_region_list_redisplay;
|
||||||
void insert_into_tmp_regionlist(boost::shared_ptr<ARDOUR::Region>);
|
void insert_into_tmp_regionlist(boost::shared_ptr<ARDOUR::Region>);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,6 @@ void
|
||||||
Editor::region_hidden (boost::shared_ptr<Region> r)
|
Editor::region_hidden (boost::shared_ptr<Region> r)
|
||||||
{
|
{
|
||||||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::region_hidden), r));
|
ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::region_hidden), r));
|
||||||
|
|
||||||
redisplay_regions ();
|
redisplay_regions ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,32 +77,28 @@ void
|
||||||
Editor::add_regions_to_region_display (vector<boost::weak_ptr<Region> >& regions)
|
Editor::add_regions_to_region_display (vector<boost::weak_ptr<Region> >& regions)
|
||||||
{
|
{
|
||||||
region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
|
region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
|
||||||
|
|
||||||
for (vector<boost::weak_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) {
|
for (vector<boost::weak_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) {
|
||||||
boost::shared_ptr<Region> region ((*x).lock());
|
boost::shared_ptr<Region> region ((*x).lock());
|
||||||
if (region) {
|
if (region) {
|
||||||
add_region_to_region_display (region);
|
add_region_to_region_display (region);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
region_list_display.set_model (region_list_model);
|
region_list_display.set_model (region_list_model);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
|
Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
|
||||||
{
|
{
|
||||||
|
if (!region || !session) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string str;
|
string str;
|
||||||
char start_str[16];
|
|
||||||
char end_str[16];
|
|
||||||
char length_str[16];
|
|
||||||
char used_str[8];
|
|
||||||
int used;
|
|
||||||
TreeModel::Row row;
|
TreeModel::Row row;
|
||||||
Gdk::Color c;
|
Gdk::Color c;
|
||||||
bool missing_source;
|
bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
|
||||||
BBT_Time bbt; // FIXME Why do these have to be declared here ?
|
|
||||||
SMPTE::Time smpte; // FIXME I would like them declared in the case statment where they are used.
|
|
||||||
|
|
||||||
|
|
||||||
missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
|
|
||||||
|
|
||||||
if (!show_automatic_regions_in_region_list && region->automatic()) {
|
if (!show_automatic_regions_in_region_list && region->automatic()) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -128,7 +123,6 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
|
||||||
boost::shared_ptr<Region> proxy = parent[region_list_columns.region];
|
boost::shared_ptr<Region> proxy = parent[region_list_columns.region];
|
||||||
proxy.reset ();
|
proxy.reset ();
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
parent = *iter;
|
parent = *iter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -186,17 +180,19 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
|
||||||
str += ']';
|
str += ']';
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (missing_source) {
|
|
||||||
// str += _(" (MISSING)");
|
|
||||||
//}
|
|
||||||
|
|
||||||
row[region_list_columns.name] = str;
|
row[region_list_columns.name] = str;
|
||||||
row[region_list_columns.region] = region;
|
row[region_list_columns.region] = region;
|
||||||
|
|
||||||
|
if (missing_source) {
|
||||||
|
row[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.path] = region->source()->name();
|
||||||
|
}
|
||||||
|
|
||||||
if (region->automatic()) {
|
if (region->automatic()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* find parent node, add as new child */
|
/* find parent node, add as new child */
|
||||||
|
|
@ -234,96 +230,9 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
used = get_regionview_count_from_region_list(region);
|
|
||||||
sprintf (used_str, "%4d" , used);
|
|
||||||
|
|
||||||
switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
|
|
||||||
case AudioClock::SMPTE:
|
|
||||||
case AudioClock::Off: /* If the secondary clock is off, default to SMPTE */
|
|
||||||
session->smpte_time (region->position(), smpte);
|
|
||||||
sprintf (start_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
|
||||||
|
|
||||||
session->smpte_time (region->position() + region->length() - 1, smpte);
|
|
||||||
sprintf (end_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
|
||||||
|
|
||||||
session->smpte_time (region->length(), smpte);
|
|
||||||
sprintf (length_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AudioClock::BBT:
|
|
||||||
session->tempo_map().bbt_time (region->position(), bbt);
|
|
||||||
sprintf (start_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
|
||||||
session->tempo_map().bbt_time (region->position() + region->length() - 1, bbt);
|
|
||||||
sprintf (end_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
|
||||||
session->tempo_map().bbt_time (region->length(), bbt);
|
|
||||||
sprintf (length_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AudioClock::MinSec:
|
|
||||||
nframes_t left;
|
|
||||||
int hrs;
|
|
||||||
int mins;
|
|
||||||
float secs;
|
|
||||||
|
|
||||||
left = region->position();
|
|
||||||
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
|
||||||
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
|
||||||
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
|
||||||
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
|
||||||
secs = left / (float) session->frame_rate();
|
|
||||||
sprintf (start_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
|
||||||
|
|
||||||
left = region->position() + region->length() - 1;
|
|
||||||
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
|
||||||
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
|
||||||
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
|
||||||
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
|
||||||
secs = left / (float) session->frame_rate();
|
|
||||||
sprintf (end_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
|
||||||
|
|
||||||
left = region->length();
|
|
||||||
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
|
||||||
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
|
||||||
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
|
||||||
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
|
||||||
secs = left / (float) session->frame_rate();
|
|
||||||
sprintf (length_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AudioClock::Frames:
|
|
||||||
snprintf (start_str, sizeof (start_str), "%u", region->position());
|
|
||||||
snprintf (end_str, sizeof (end_str), "%u", (region->position() + region->length() - 1));
|
|
||||||
snprintf (length_str, sizeof (length_str), "%u", region->length());
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
row[region_list_columns.region] = region;
|
row[region_list_columns.region] = region;
|
||||||
|
|
||||||
if (used > 1) {
|
populate_row(region, row);
|
||||||
row[region_list_columns.start] = "Multiple";
|
|
||||||
row[region_list_columns.end] = "Multiple";
|
|
||||||
} else {
|
|
||||||
row[region_list_columns.start] = start_str;
|
|
||||||
row[region_list_columns.end] = end_str;
|
|
||||||
}
|
|
||||||
|
|
||||||
row[region_list_columns.length] = length_str;
|
|
||||||
row[region_list_columns.used] = used_str;
|
|
||||||
|
|
||||||
if (missing_source) {
|
|
||||||
row[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
|
|
||||||
} else {
|
|
||||||
row[region_list_columns.path] = region->source()->name();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (region->n_channels() > 1) {
|
|
||||||
row[region_list_columns.name] = string_compose("%1 [%2]", region->name(), region->n_channels());
|
|
||||||
} else {
|
|
||||||
row[region_list_columns.name] = region->name();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -367,33 +276,34 @@ Editor::region_list_region_changed (Change what_changed, boost::weak_ptr<Region>
|
||||||
void
|
void
|
||||||
Editor::region_list_selection_changed()
|
Editor::region_list_selection_changed()
|
||||||
{
|
{
|
||||||
bool selected;
|
bool selected = false;
|
||||||
|
|
||||||
if (region_list_display.get_selection()->count_selected_rows() > 0) {
|
if (region_list_display.get_selection()->count_selected_rows() > 0) {
|
||||||
selected = true;
|
selected = true;
|
||||||
} else {
|
|
||||||
selected = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selected) {
|
if (selected) {
|
||||||
TreeView::Selection::ListHandle_Path rows = region_list_display.get_selection()->get_selected_rows ();
|
TreeView::Selection::ListHandle_Path rows = region_list_display.get_selection()->get_selected_rows ();
|
||||||
TreeView::Selection::ListHandle_Path::iterator i = rows.begin();
|
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
|
|
||||||
if ((iter = region_list_model->get_iter (*i))) {
|
for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) {
|
||||||
boost::shared_ptr<Region> r = (*iter)[region_list_columns.region];
|
|
||||||
|
|
||||||
/* they could have clicked on a row that is just a placeholder, like "Hidden" */
|
if (iter = region_list_model->get_iter (*i)) {
|
||||||
|
boost::shared_ptr<Region> r = (*iter)[region_list_columns.region];
|
||||||
if (r) {
|
|
||||||
|
|
||||||
/* just set the first selected region (in fact, the selection model might be SINGLE, which
|
/* they could have clicked on a row that is just a placeholder, like "Hidden" */
|
||||||
means there can only be one.
|
|
||||||
*/
|
|
||||||
|
|
||||||
set_selected_regionview_from_region_list (r, Selection::Set);
|
if (r) {
|
||||||
|
|
||||||
|
/* just set the first selected region (in fact, the selection model might be SINGLE, which
|
||||||
|
means there can only be one.
|
||||||
|
*/
|
||||||
|
|
||||||
|
set_selected_regionview_from_region_list (r, Selection::Set);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -411,125 +321,149 @@ Editor::insert_into_tmp_regionlist(boost::shared_ptr<Region> region)
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::redisplay_regions ()
|
Editor::redisplay_regions ()
|
||||||
{
|
{
|
||||||
if (no_region_list_redisplay) {
|
if (no_region_list_redisplay || !session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session) {
|
bool tree_expanded = false;
|
||||||
|
|
||||||
|
if (toggle_full_region_list_action && toggle_full_region_list_action->get_active()) { //If the list was expanded prior to rebuilding,
|
||||||
|
tree_expanded = true; //expand it again afterwards
|
||||||
|
}
|
||||||
|
|
||||||
|
region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
|
||||||
|
region_list_model->clear ();
|
||||||
|
|
||||||
region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0));
|
/* now add everything we have, via a temporary list used to help with
|
||||||
region_list_model->clear ();
|
sorting.
|
||||||
|
*/
|
||||||
|
|
||||||
|
tmp_region_list.clear();
|
||||||
|
session->foreach_region (this, &Editor::insert_into_tmp_regionlist);
|
||||||
|
|
||||||
/* now add everything we have, via a temporary list used to help with
|
for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) {
|
||||||
sorting.
|
add_region_to_region_display (*r);
|
||||||
*/
|
}
|
||||||
|
tmp_region_list.clear();
|
||||||
tmp_region_list.clear();
|
|
||||||
session->foreach_region (this, &Editor::insert_into_tmp_regionlist);
|
region_list_display.set_model (region_list_model);
|
||||||
|
|
||||||
for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) {
|
if (tree_expanded) {
|
||||||
add_region_to_region_display (*r);
|
region_list_display.expand_all();
|
||||||
}
|
|
||||||
tmp_region_list.clear();
|
|
||||||
|
|
||||||
region_list_display.set_model (region_list_model);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::update_region_row (boost::shared_ptr<Region> region)
|
Editor::update_region_row (boost::shared_ptr<Region> region)
|
||||||
{
|
{
|
||||||
if (!region || !session) {
|
if (!region || !session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
TreeModel::iterator i;
|
||||||
|
TreeModel::Children rows = region_list_model->children();
|
||||||
|
|
||||||
|
for (i = rows.begin(); i != rows.end(); ++i) {
|
||||||
|
|
||||||
|
cerr << "Level 1: Compare " << region->name() << " with parent " << (*i)[region_list_columns.name] << "\n";
|
||||||
|
|
||||||
|
boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
|
||||||
|
|
||||||
|
if (region == compared_region) {
|
||||||
|
cerr << "Matched\n";
|
||||||
|
populate_row(region, (*i));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(*i).children().empty()) {
|
||||||
|
if (update_region_subrows(region, (*i), 2)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cerr << "Returning - No match\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Editor::update_region_subrows (boost::shared_ptr<Region> region, TreeModel::Row const &parent_row, int level)
|
||||||
|
{
|
||||||
|
TreeModel::iterator i;
|
||||||
|
TreeModel::Children subrows = (*parent_row).children();
|
||||||
|
|
||||||
|
for (i = subrows.begin(); i != subrows.end(); ++i) {
|
||||||
|
|
||||||
|
cerr << "Level " << level << ": Compare " << region->name() << " with child " << (*i)[region_list_columns.name] << "\n";
|
||||||
|
|
||||||
|
boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
|
||||||
|
|
||||||
|
if (region == compared_region) {
|
||||||
|
populate_row(region, (*i));
|
||||||
|
cerr << "Matched\n";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(*i).children().empty()) {
|
||||||
|
|
||||||
|
if (update_region_subrows(region, (*i), level + 1)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Editor::populate_row (boost::shared_ptr<Region> region, TreeModel::Row const &row)
|
||||||
|
{
|
||||||
char start_str[16];
|
char start_str[16];
|
||||||
char end_str[16];
|
char end_str[16];
|
||||||
char length_str[16];
|
char length_str[16];
|
||||||
|
char sync_str[16];
|
||||||
|
char fadein_str[16];
|
||||||
|
char fadeout_str[16];
|
||||||
char used_str[8];
|
char used_str[8];
|
||||||
int used;
|
int used;
|
||||||
bool missing_source;
|
BBT_Time bbt; // FIXME Why do these have to be declared here ?
|
||||||
bool matched_region = false;
|
SMPTE::Time smpte; // FIXME I would like them declared in the case statment where they are used.
|
||||||
BBT_Time bbt;
|
|
||||||
SMPTE::Time smpte;
|
|
||||||
|
|
||||||
missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
|
bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source());
|
||||||
|
|
||||||
TreeModel::iterator found_region;
|
boost::shared_ptr<AudioRegion> audioRegion = boost::dynamic_pointer_cast<AudioRegion>(region);
|
||||||
|
|
||||||
if (show_automatic_regions_in_region_list) {
|
bool fades_in_seconds = false;
|
||||||
|
|
||||||
TreeModel::iterator i;
|
|
||||||
TreeModel::iterator ii;
|
|
||||||
TreeModel::Children rows = region_list_model->children();
|
|
||||||
|
|
||||||
for (i = rows.begin(); i != rows.end(); ++i) {
|
|
||||||
|
|
||||||
cerr << "Parent " << (*i)[region_list_columns.name] << "\n";
|
|
||||||
|
|
||||||
TreeModel::Children subrows = (*i).children();
|
start_str[0] = '\0';
|
||||||
|
end_str[0] = '\0';
|
||||||
for (ii = subrows.begin(); ii != subrows.end(); ++ii) {
|
length_str[0] = '\0';
|
||||||
|
sync_str[0] = '\0';
|
||||||
cerr << "Compare " << region->name() << " with child " << (*ii)[region_list_columns.name] << "\n";
|
fadein_str[0] = '\0';
|
||||||
|
fadeout_str[0] = '\0';
|
||||||
boost::shared_ptr<Region> compared_region = (*ii)[region_list_columns.region];
|
used_str[0] = '\0';
|
||||||
|
|
||||||
if (region == compared_region) {
|
|
||||||
cerr << "Matched\n";
|
|
||||||
matched_region = true;
|
|
||||||
found_region = ii;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (matched_region) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
TreeModel::iterator i;
|
|
||||||
TreeModel::Children rows = region_list_model->children();
|
|
||||||
|
|
||||||
for (i = rows.begin(); i != rows.end(); ++i) {
|
|
||||||
|
|
||||||
cerr << "Compare " << region->name() << " with " << (*i)[region_list_columns.name] << "\n";
|
|
||||||
|
|
||||||
boost::shared_ptr<Region> compared_region = (*i)[region_list_columns.region];
|
|
||||||
|
|
||||||
if (region == compared_region) {
|
|
||||||
cerr << "Matched\n";
|
|
||||||
matched_region = true;
|
|
||||||
found_region = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!matched_region) {
|
|
||||||
cerr << "Returning - No match\n\n";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
used = get_regionview_count_from_region_list(region);
|
used = get_regionview_count_from_region_list(region);
|
||||||
sprintf (used_str, "%4d" , used);
|
sprintf (used_str, "%4d" , used);
|
||||||
|
|
||||||
switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
|
switch (ARDOUR_UI::instance()->secondary_clock.mode ()) {
|
||||||
case AudioClock::SMPTE:
|
case AudioClock::SMPTE:
|
||||||
case AudioClock::Off: // If the secondary clock is off, default to SMPTE
|
case AudioClock::Off: /* If the secondary clock is off, default to SMPTE */
|
||||||
session->smpte_time (region->position(), smpte);
|
session->smpte_time (region->position(), smpte);
|
||||||
sprintf (start_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
sprintf (start_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
|
||||||
session->smpte_time (region->position() + region->length() - 1, smpte);
|
session->smpte_time (region->position() + region->length() - 1, smpte);
|
||||||
sprintf (end_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
sprintf (end_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
|
||||||
session->smpte_time (region->length(), smpte);
|
session->smpte_time (region->length(), smpte);
|
||||||
sprintf (length_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
sprintf (length_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
session->smpte_time (region->sync_position() + region->position(), smpte);
|
||||||
|
sprintf (sync_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
|
||||||
|
if (audioRegion && !fades_in_seconds) {
|
||||||
|
session->smpte_time (audioRegion->fade_in()->back()->when, smpte);
|
||||||
|
sprintf (fadein_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
session->smpte_time (audioRegion->fade_out()->back()->when, smpte);
|
||||||
|
sprintf (fadeout_str, "%02d:%02d:%02d:%02d", smpte.hours, smpte.minutes, smpte.seconds, smpte.frames);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AudioClock::BBT:
|
case AudioClock::BBT:
|
||||||
|
|
@ -539,6 +473,15 @@ Editor::update_region_row (boost::shared_ptr<Region> region)
|
||||||
sprintf (end_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
sprintf (end_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
||||||
session->tempo_map().bbt_time (region->length(), bbt);
|
session->tempo_map().bbt_time (region->length(), bbt);
|
||||||
sprintf (length_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
sprintf (length_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
||||||
|
session->tempo_map().bbt_time (region->sync_position() + region->position(), bbt);
|
||||||
|
sprintf (sync_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
||||||
|
|
||||||
|
if (audioRegion && !fades_in_seconds) {
|
||||||
|
session->tempo_map().bbt_time (audioRegion->fade_in()->back()->when, bbt);
|
||||||
|
sprintf (fadein_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
||||||
|
session->tempo_map().bbt_time (audioRegion->fade_out()->back()->when, bbt);
|
||||||
|
sprintf (fadeout_str, "%03d|%02d|%04d" , bbt.bars, bbt.beats, bbt.ticks);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AudioClock::MinSec:
|
case AudioClock::MinSec:
|
||||||
|
|
@ -570,45 +513,149 @@ Editor::update_region_row (boost::shared_ptr<Region> region)
|
||||||
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
secs = left / (float) session->frame_rate();
|
secs = left / (float) session->frame_rate();
|
||||||
sprintf (length_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
sprintf (length_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
||||||
|
|
||||||
|
left = region->sync_position() + region->position();
|
||||||
|
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
||||||
|
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
||||||
|
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
||||||
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
|
secs = left / (float) session->frame_rate();
|
||||||
|
sprintf (sync_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
||||||
|
|
||||||
|
if (audioRegion && !fades_in_seconds) {
|
||||||
|
left = audioRegion->fade_in()->back()->when;
|
||||||
|
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
||||||
|
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
||||||
|
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
||||||
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
|
secs = left / (float) session->frame_rate();
|
||||||
|
sprintf (fadein_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
||||||
|
|
||||||
|
left = audioRegion->fade_out()->back()->when;
|
||||||
|
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
|
||||||
|
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
|
||||||
|
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
||||||
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
|
secs = left / (float) session->frame_rate();
|
||||||
|
sprintf (fadeout_str, "%02d:%02d:%06.3f", hrs, mins, secs);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AudioClock::Frames:
|
case AudioClock::Frames:
|
||||||
snprintf (start_str, sizeof (start_str), "%u", region->position());
|
snprintf (start_str, sizeof (start_str), "%u", region->position());
|
||||||
snprintf (end_str, sizeof (end_str), "%u", (region->position() + region->length() - 1));
|
snprintf (end_str, sizeof (end_str), "%u", (region->position() + region->length() - 1));
|
||||||
snprintf (length_str, sizeof (length_str), "%u", region->length());
|
snprintf (length_str, sizeof (length_str), "%u", region->length());
|
||||||
|
snprintf (sync_str, sizeof (sync_str), "%u", region->sync_position() + region->position());
|
||||||
|
|
||||||
|
if (audioRegion && !fades_in_seconds) {
|
||||||
|
snprintf (fadein_str, sizeof (fadein_str), "%u", uint (audioRegion->fade_in()->back()->when));
|
||||||
|
snprintf (fadeout_str, sizeof (fadeout_str), "%u", uint (audioRegion->fade_out()->back()->when));
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
cerr << "Updating " << (*found_region)[region_list_columns.name] << "\n";
|
if (audioRegion && fades_in_seconds) {
|
||||||
|
|
||||||
if (used > 1) {
|
nframes_t left;
|
||||||
(*found_region)[region_list_columns.start] = "Multiple";
|
int mins;
|
||||||
(*found_region)[region_list_columns.end] = "Multiple";
|
int millisecs;
|
||||||
} else {
|
|
||||||
(*found_region)[region_list_columns.start] = start_str;
|
left = audioRegion->fade_in()->back()->when;
|
||||||
(*found_region)[region_list_columns.end] = end_str;
|
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
||||||
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
|
millisecs = (int) floor ((left * 1000.0f) / session->frame_rate());
|
||||||
|
|
||||||
|
if (audioRegion->fade_in()->back()->when >= session->frame_rate()) {
|
||||||
|
sprintf (fadein_str, "%01dM %01dmS", mins, millisecs);
|
||||||
|
} else {
|
||||||
|
sprintf (fadein_str, "%01dmS", millisecs);
|
||||||
|
}
|
||||||
|
|
||||||
|
left = audioRegion->fade_out()->back()->when;
|
||||||
|
mins = (int) floor (left / (session->frame_rate() * 60.0f));
|
||||||
|
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
|
||||||
|
millisecs = (int) floor ((left * 1000.0f) / session->frame_rate());
|
||||||
|
|
||||||
|
if (audioRegion->fade_out()->back()->when >= session->frame_rate()) {
|
||||||
|
sprintf (fadeout_str, "%01dM %01dmS", mins, millisecs);
|
||||||
|
} else {
|
||||||
|
sprintf (fadeout_str, "%01dmS", millisecs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
(*found_region)[region_list_columns.length] = length_str;
|
if (used > 1) {
|
||||||
(*found_region)[region_list_columns.used] = used_str;
|
row[region_list_columns.start] = _("Multiple");
|
||||||
|
row[region_list_columns.end] = _("Multiple");
|
||||||
|
row[region_list_columns.sync] = _("Multiple");
|
||||||
|
row[region_list_columns.fadein] = _("Multiple");
|
||||||
|
row[region_list_columns.fadeout] = _("Multiple");
|
||||||
|
row[region_list_columns.locked] = _(" ");
|
||||||
|
row[region_list_columns.glued] = _(" ");
|
||||||
|
row[region_list_columns.muted] = _(" ");
|
||||||
|
row[region_list_columns.opaque] = _(" ");
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.start] = start_str;
|
||||||
|
row[region_list_columns.end] = end_str;
|
||||||
|
|
||||||
|
if (region->sync_position() == region->position()) {
|
||||||
|
row[region_list_columns.sync] = _("Start");
|
||||||
|
} else if (region->sync_position() == (region->position() + region->length() - 1)) {
|
||||||
|
row[region_list_columns.sync] = _("End");
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.sync] = sync_str;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (audioRegion) {
|
||||||
|
if (audioRegion->fade_in_active()) {
|
||||||
|
row[region_list_columns.fadein] = string_compose("%1%2%3", " ", fadein_str, " ");
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.fadein] = string_compose("%1%2%3", "(", fadein_str, ")");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.fadein] = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (audioRegion) {
|
||||||
|
if (audioRegion->fade_out_active()) {
|
||||||
|
row[region_list_columns.fadeout] = string_compose("%1%2%3", " ", fadeout_str, " ");
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.fadeout] = string_compose("%1%2%3", "(", fadeout_str, ")");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.fadeout] = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
row[region_list_columns.locked] = region->locked();
|
||||||
|
|
||||||
|
if (region->positional_lock_style() == Region::MusicTime) {
|
||||||
|
row[region_list_columns.glued] = true;
|
||||||
|
} else {
|
||||||
|
row[region_list_columns.glued] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
row[region_list_columns.muted] = region->muted();
|
||||||
|
row[region_list_columns.opaque] = region->opaque();
|
||||||
|
}
|
||||||
|
|
||||||
|
row[region_list_columns.length] = length_str;
|
||||||
|
row[region_list_columns.used] = used_str;
|
||||||
|
|
||||||
if (missing_source) {
|
if (missing_source) {
|
||||||
(*found_region)[region_list_columns.path] = _("(MISSING) ") + region->source()->name();
|
row[region_list_columns.path] = _("MISSING ") + region->source()->name();
|
||||||
} else {
|
} else {
|
||||||
(*found_region)[region_list_columns.path] = region->source()->name();
|
row[region_list_columns.path] = region->source()->name();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (region->n_channels() > 1) {
|
if (region->n_channels() > 1) {
|
||||||
(*found_region)[region_list_columns.name] = string_compose("%1 [%2]", region->name(), region->n_channels());
|
row[region_list_columns.name] = string_compose("%1 [%2]", region->name(), region->n_channels());
|
||||||
} else {
|
} else {
|
||||||
(*found_region)[region_list_columns.name] = region->name();
|
row[region_list_columns.name] = region->name();
|
||||||
}
|
}
|
||||||
|
|
||||||
cerr << "Returning after updating\n\n";
|
|
||||||
//return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"Project-Id-Version: ardour-gtk 1.0.2\n"
|
"Project-Id-Version: ardour-gtk 1.0.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2006-06-12 22:09+0200\n"
|
"POT-Creation-Date: 2006-06-12 22:09+0200\n"
|
||||||
"PO-Revision-Date: 2006-06-26 23:57+GMT+1\n"
|
"PO-Revision-Date: 2008-09-22 20:33+0200\n"
|
||||||
"Last-Translator: Petter Sundlöf <petter.sundlof@findus.dhs.org>\n"
|
"Last-Translator: Petter Sundlöf <petter.sundlof@findus.dhs.org>\n"
|
||||||
"Language-Team: Svenska <sv@li.org>\n"
|
"Language-Team: Svenska <sv@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|
@ -7093,8 +7093,6 @@ msgstr "EJ tonhöjdsändrat soloslagverk"
|
||||||
#: gtk2_ardour/editor_timefx.cc:73
|
#: gtk2_ardour/editor_timefx.cc:73
|
||||||
msgid "Contents:"
|
msgid "Contents:"
|
||||||
msgstr "Innehåll"
|
msgstr "Innehåll"
|
||||||
<<<<<<< .working
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:359
|
#: gtk2_ardour/editor_actions.cc:359
|
||||||
msgid "Playhead to Mouse"
|
msgid "Playhead to Mouse"
|
||||||
|
|
@ -7434,558 +7432,3 @@ msgstr "FFT-analysfönster"
|
||||||
#: gtk2_ardour/analysis_window.cc:135
|
#: gtk2_ardour/analysis_window.cc:135
|
||||||
msgid "Re-analyze data"
|
msgid "Re-analyze data"
|
||||||
msgstr "Återanalysera data"
|
msgstr "Återanalysera data"
|
||||||
=======
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:359
|
|
||||||
msgid "Playhead to Mouse"
|
|
||||||
msgstr "Startmarkören till mus"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:277
|
|
||||||
msgid "Playhead To Active Mark"
|
|
||||||
msgstr "Startmarkören till aktiv markör"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:231
|
|
||||||
msgid "Nudge Playhead Forward"
|
|
||||||
msgstr "Knuffa startmarkören framåt"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:233
|
|
||||||
msgid "Nudge Playhead Backward"
|
|
||||||
msgstr "Knuffa startmarkören bakåt"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:475
|
|
||||||
msgid "Move Forward to Transient"
|
|
||||||
msgstr "Gå framåt till transient"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:477
|
|
||||||
msgid "Move Backwards to Transient"
|
|
||||||
msgstr "Gå bakåt till transient"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:235
|
|
||||||
msgid "Forward To Grid"
|
|
||||||
msgstr "Framåt till rutnät"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:237
|
|
||||||
msgid "Backward To Grid"
|
|
||||||
msgstr "Bakåt till rutnät"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:66 gtk2_ardour/editor.cc:151
|
|
||||||
#: gtk2_ardour/editor.cc:3446
|
|
||||||
msgid "Active Mark"
|
|
||||||
msgstr "Aktiv markör"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:137
|
|
||||||
msgid "to Next Region Boundary"
|
|
||||||
msgstr "till nästa regionsgränsen"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:139
|
|
||||||
msgid "to Previous Region Boundary"
|
|
||||||
msgstr "till förra regionsgränsen"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:279
|
|
||||||
msgid "Active Mark To Playhead"
|
|
||||||
msgstr "Aktiv markör till startmarkören"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:361
|
|
||||||
msgid "Active Marker to Mouse"
|
|
||||||
msgstr "Aktiv markör till musen"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:61 gtk2_ardour/editor_actions.cc:613
|
|
||||||
msgid "Markers"
|
|
||||||
msgstr "Markörer"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:333
|
|
||||||
msgid "Punch In/Out"
|
|
||||||
msgstr "Inslag/utslag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:177
|
|
||||||
msgid "Select All Overlapping Edit Range"
|
|
||||||
msgstr "Välj allt som överlappar redigeringsomfånget"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:179
|
|
||||||
msgid "Select All Inside Edit Range"
|
|
||||||
msgstr "Välj allt inom redigeringsomfånget"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:182
|
|
||||||
msgid "Select Edit Range"
|
|
||||||
msgstr "Välj redigeringsomfång"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:444
|
|
||||||
msgid "Separate Using Punch Range"
|
|
||||||
msgstr "Separera utifrån in-/utslagsomfånget"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:447
|
|
||||||
msgid "Separate Using Loop Range"
|
|
||||||
msgstr "Separera utifrån loopomfånget"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:469
|
|
||||||
msgid "Split Regions At Percussion Onsets"
|
|
||||||
msgstr "Dela regioner vid perkussiva anslag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:282
|
|
||||||
msgid "Trim Start At Edit Point"
|
|
||||||
msgstr "Beskär början vid redigeringspunkten"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:285
|
|
||||||
msgid "Trim End At Edit Point"
|
|
||||||
msgstr "Beskär slutet vid redigeringspunkten"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:95
|
|
||||||
msgid "Misc. Shortcuts"
|
|
||||||
msgstr "Diverse kortkommandon"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:385
|
|
||||||
msgid "Boost Region Gain"
|
|
||||||
msgstr "Öka regionens volym"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:388
|
|
||||||
msgid "Cut Region Gain"
|
|
||||||
msgstr "Sänk regionens volym"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:99
|
|
||||||
msgid "Break drag"
|
|
||||||
msgstr "Avbryt dragning"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:400
|
|
||||||
msgid "Raise Region"
|
|
||||||
msgstr "Höj regionen"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:403
|
|
||||||
msgid "Lower Region"
|
|
||||||
msgstr "Sänk regionen"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:415
|
|
||||||
msgid "Move To Original Position"
|
|
||||||
msgstr "Flytta till ursprunglig position"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:409
|
|
||||||
msgid "Lock Region"
|
|
||||||
msgstr "Lås region"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:397
|
|
||||||
msgid "Remove Region Sync"
|
|
||||||
msgstr "Ta bort regionsynk.-punkt"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:505 gtk2_ardour/editor_ops.cc:5651
|
|
||||||
msgid "Insert Time"
|
|
||||||
msgstr "Infoga tid"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:93
|
|
||||||
msgid "Waveforms"
|
|
||||||
msgstr "Vågformer"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:509
|
|
||||||
msgid "Toggle Active"
|
|
||||||
msgstr "Växla aktiv"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:547
|
|
||||||
msgid "Zoom Focus Mouse"
|
|
||||||
msgstr "Zoomfokus: mus"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:582
|
|
||||||
msgid "Next Snap Mode"
|
|
||||||
msgstr "Nästa fästläge"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:583
|
|
||||||
msgid "Next Snap Choice"
|
|
||||||
msgstr "Nästa fästlägealternativ"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:70
|
|
||||||
msgid "Primary Clock"
|
|
||||||
msgstr "Primär klocka"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:77
|
|
||||||
msgid "Secondary Clock"
|
|
||||||
msgstr "Sekundär klocka"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:309 gtk2_ardour/ardour_ui_ed.cc:318
|
|
||||||
#: gtk2_ardour/editor_actions.cc:616
|
|
||||||
msgid "Bars & Beats"
|
|
||||||
msgstr "Takter & slag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:311 gtk2_ardour/ardour_ui_ed.cc:320
|
|
||||||
msgid "Minutes & Seconds"
|
|
||||||
msgstr "Minuter & sekunder"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:75
|
|
||||||
msgid "Rulers"
|
|
||||||
msgstr "Tidslinjevisning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:619
|
|
||||||
msgid "Min:Sec"
|
|
||||||
msgstr "Min:sek"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:615
|
|
||||||
msgid "Loop/Punch"
|
|
||||||
msgstr "Loop-/inslagsmarkörer"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:76
|
|
||||||
msgid "Scroll"
|
|
||||||
msgstr "Skrollning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:40
|
|
||||||
msgid "Analysis"
|
|
||||||
msgstr "Analys"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:30
|
|
||||||
msgid "Percussive Onset"
|
|
||||||
msgstr "Perkussivt anslag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:31
|
|
||||||
msgid "Note Onset"
|
|
||||||
msgstr "Notanslag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:48
|
|
||||||
msgid "Threshold"
|
|
||||||
msgstr "Tröskel"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:51
|
|
||||||
msgid "Sensitivity"
|
|
||||||
msgstr "Känslighet"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:52
|
|
||||||
msgid "Analyze"
|
|
||||||
msgstr "Analysera"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:55
|
|
||||||
msgid "Trigger gap (msecs)"
|
|
||||||
msgstr "Utlösningsmellanrum (msek)"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:43
|
|
||||||
msgid "Set Tempo Map"
|
|
||||||
msgstr "Sätt tempokarta"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:44
|
|
||||||
msgid "Conform Region"
|
|
||||||
msgstr "Anpassa region"
|
|
||||||
|
|
||||||
#: gtk2_ardour/rhythm_ferret.cc:39
|
|
||||||
msgid "Selection"
|
|
||||||
msgstr "Markering"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:463
|
|
||||||
msgid "Set Tempo from Region=Bar"
|
|
||||||
msgstr "Sätt tempo från region=takt"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:466
|
|
||||||
msgid "Set Tempo from Edit Range=Bar"
|
|
||||||
msgstr "Sätt tempo från redigeringsomfång=takt"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:548
|
|
||||||
msgid "JACK does monitoring"
|
|
||||||
msgstr "JACK sköter medhörning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:552
|
|
||||||
msgid "Ardour does monitoring"
|
|
||||||
msgstr "Ardour sköter medhörning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:553
|
|
||||||
msgid "Audio Hardware does monitoring"
|
|
||||||
msgstr "Ljudhårdvaran sköter medhörning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:438
|
|
||||||
msgid "Tape Machine mode"
|
|
||||||
msgstr "Bandmaskinläge"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:64
|
|
||||||
msgid "Misc Options"
|
|
||||||
msgstr "Diverse inställningar"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:446
|
|
||||||
msgid "Create marker at xrun location"
|
|
||||||
msgstr "Skapa markör vid xrun-förekomst"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:455
|
|
||||||
msgid "Rubberbanding Snaps to Grid"
|
|
||||||
msgstr "Gummibandning fäster mot rutnätet"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:456
|
|
||||||
msgid "Auto-analyse new audio"
|
|
||||||
msgstr "Autoanalysera nya ljud"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:689
|
|
||||||
msgid "Import to Region List"
|
|
||||||
msgstr "Importera till regionslistan"
|
|
||||||
|
|
||||||
#: gtk2_ardour/mixer_strip.cc:984
|
|
||||||
msgid "Protect against denormals"
|
|
||||||
msgstr "Skydda mot denormals"
|
|
||||||
|
|
||||||
#: gtk2_ardour/option_editor.cc:1242
|
|
||||||
msgid "Keyboard layout"
|
|
||||||
msgstr "Tangentbordslayout"
|
|
||||||
|
|
||||||
#: gtk2_ardour/option_editor.cc:275
|
|
||||||
msgid "Font Scaling"
|
|
||||||
msgstr "Typsnittsskalning"
|
|
||||||
|
|
||||||
#: gtk2_ardour/option_editor.cc:97
|
|
||||||
msgid "Add new MIDI port"
|
|
||||||
msgstr "Lägg till ny MIDI-port"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor.cc:1779 gtk2_ardour/editor.cc:1948
|
|
||||||
msgid "Spectral Analysis"
|
|
||||||
msgstr "Spektralanalys"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor.cc:1793
|
|
||||||
msgid "Glue to Bars&Beats"
|
|
||||||
msgstr "Klistra mot takt&slag"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:46
|
|
||||||
msgid "Signal source"
|
|
||||||
msgstr "Signalkälla"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:47
|
|
||||||
msgid "Selected ranges"
|
|
||||||
msgstr "Valda omfång"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:48
|
|
||||||
msgid "Selected regions"
|
|
||||||
msgstr "Valda regioner"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:50
|
|
||||||
msgid "Display model"
|
|
||||||
msgstr "Visningsmodell"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:51
|
|
||||||
msgid "Composite graphs for each track"
|
|
||||||
msgstr "Sammansatt graf för varje spår"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:52
|
|
||||||
msgid "Composite graph of all tracks"
|
|
||||||
msgstr "Sammansatt graf för alla spår"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:54
|
|
||||||
msgid "Show frequency power range"
|
|
||||||
msgstr "Visa frekvenskraftsomfång"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:55
|
|
||||||
msgid "Normalize values"
|
|
||||||
msgstr "Normalisera värden"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:59 gtk2_ardour/analysis_window.cc:60
|
|
||||||
msgid "FFT analysis window"
|
|
||||||
msgstr "FFT-analysfönster"
|
|
||||||
|
|
||||||
#: gtk2_ardour/analysis_window.cc:135
|
|
||||||
msgid "Re-analyze data"
|
|
||||||
msgstr "Återanalysera data"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:195
|
|
||||||
msgid "Window"
|
|
||||||
msgstr "Fönster"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_dependents.cc:74
|
|
||||||
msgid "Setup Editor"
|
|
||||||
msgstr "Förbereder redigeraren..."
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_dependents.cc:76
|
|
||||||
msgid "Setup Mixer"
|
|
||||||
msgstr "Förbereder mixern..."
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_dependents.cc:81
|
|
||||||
msgid "Reload Session History"
|
|
||||||
msgstr "Laddar sessionshistoriken..."
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor.cc:4571
|
|
||||||
msgid "Please wait while Ardour loads visual data"
|
|
||||||
msgstr "Vänta medan Ardour laddar visuell data..."
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:368
|
|
||||||
msgid "Toggle Opaque"
|
|
||||||
msgstr "Växla genomskinligt"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:570
|
|
||||||
msgid "Fit Selected Tracks"
|
|
||||||
msgstr "Rym valda spår"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:299
|
|
||||||
msgid "Zoom to Region (W&H)"
|
|
||||||
msgstr "Zooma till region (bredd & höjd)"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:76
|
|
||||||
msgid "Views"
|
|
||||||
msgstr "Visningslägen"
|
|
||||||
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:196
|
|
||||||
msgid "Save View 1"
|
|
||||||
msgstr "Spara läge 1"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:198
|
|
||||||
msgid "Goto View 1"
|
|
||||||
msgstr "Använd läge 1"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:200
|
|
||||||
msgid "Save View 2"
|
|
||||||
msgstr "Spara läge 2"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:202
|
|
||||||
msgid "Goto View 2"
|
|
||||||
msgstr "Använd läge 2 "
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:204
|
|
||||||
msgid "Save View 3"
|
|
||||||
msgstr "Spara läge 3"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:206
|
|
||||||
msgid "Goto View 3"
|
|
||||||
msgstr "Använd läge 3"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:208
|
|
||||||
msgid "Save View 4"
|
|
||||||
msgstr "Spara läge 4"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:210
|
|
||||||
msgid "Goto View 4"
|
|
||||||
msgstr "Använd läge 4"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:212
|
|
||||||
msgid "Save View 5"
|
|
||||||
msgstr "Spara läge 5"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:214
|
|
||||||
msgid "Goto View 5"
|
|
||||||
msgstr "Använd läge 5"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:216
|
|
||||||
msgid "Save View 6"
|
|
||||||
msgstr "Spara läge 6"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:218
|
|
||||||
msgid "Goto View 6"
|
|
||||||
msgstr "Använd läge 6"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:220
|
|
||||||
msgid "Save View 7"
|
|
||||||
msgstr "Spara läge 7"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:222
|
|
||||||
msgid "Goto View 7"
|
|
||||||
msgstr "Använd läge 7"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:224
|
|
||||||
msgid "Save View 8"
|
|
||||||
msgstr "Spara läge 8"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:226
|
|
||||||
msgid "Goto View 8"
|
|
||||||
msgstr "Använd läge 8"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:228
|
|
||||||
msgid "Save View 9"
|
|
||||||
msgstr "Spara läge 9"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:230
|
|
||||||
msgid "Goto View 9"
|
|
||||||
msgstr "Använd läge 9"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:232
|
|
||||||
msgid "Save View 10"
|
|
||||||
msgstr "Spara läge 10"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:234
|
|
||||||
msgid "Goto View 10"
|
|
||||||
msgstr "Använd läge 10"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:236
|
|
||||||
msgid "Save View 11"
|
|
||||||
msgstr "Spara läge 11"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:238
|
|
||||||
msgid "Goto View 11"
|
|
||||||
msgstr "Använd läge 11"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:240
|
|
||||||
msgid "Save View 12"
|
|
||||||
msgstr "Spara läge 12"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_actions.cc:242
|
|
||||||
msgid "Goto View 12"
|
|
||||||
msgstr "Använd läge 12"
|
|
||||||
|
|
||||||
#: gtk2_ardour/ardour_ui_ed.cc:462
|
|
||||||
msgid "Name New Markers"
|
|
||||||
msgstr "Namnge nya markörer"
|
|
||||||
|
|
||||||
#: gtk2_ardour/editor_ops.cc:1900
|
|
||||||
msgid "Name New Location Marker"
|
|
||||||
msgstr "Namnge ny platsmarkör"
|
|
||||||
|
|
||||||
#: gtk2_ardour/sfdb_ui.cc:513
|
|
||||||
msgid "Search Freesound"
|
|
||||||
msgstr "Sök i Freesound"
|
|
||||||
|
|
||||||
#: gtk2_ardour/sfdb_ui.cc:480
|
|
||||||
msgid "User:"
|
|
||||||
msgstr "Användarnamn:"
|
|
||||||
|
|
||||||
#: gtk2_ardour/sfdb_ui.cc:484
|
|
||||||
msgid "Password:"
|
|
||||||
msgstr "Lösenord:"
|
|
||||||
|
|
||||||
#: gtk2_ardour/sfdb_ui.cc:400 gtk2_ardour/sfdb_ui.cc:789
|
|
||||||
msgid "Start Downloading"
|
|
||||||
msgstr "Ladda ner"
|
|
||||||
|
|
||||||
#: gtk2_ardour/redirect_box.cc:1190
|
|
||||||
msgid "New Plugin"
|
|
||||||
msgstr "Nytt insticksprogram"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:100
|
|
||||||
msgid "Plugins to be connected"
|
|
||||||
msgstr "Insticksprogram att ansluta"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:156
|
|
||||||
msgid "Insert Plugin(s)"
|
|
||||||
msgstr "Infoga"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:501
|
|
||||||
msgid "Favorites"
|
|
||||||
msgstr "Favoriter"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:502
|
|
||||||
msgid "Plugin Manager"
|
|
||||||
msgstr "Insticksprogram"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:77
|
|
||||||
msgid "Fav"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:78
|
|
||||||
msgid "Available Plugins"
|
|
||||||
msgstr "Tillgängliga insticksprogram"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:80
|
|
||||||
msgid "Category"
|
|
||||||
msgstr "Kategori"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:81
|
|
||||||
msgid "Creator"
|
|
||||||
msgstr "Upphovsperson"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:51 gtk2_ardour/plugin_selector.cc:209
|
|
||||||
msgid "Name contains"
|
|
||||||
msgstr "Namn innehåller"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:52 gtk2_ardour/plugin_selector.cc:211
|
|
||||||
msgid "Type contains"
|
|
||||||
msgstr "Typ innehåller"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:53 gtk2_ardour/plugin_selector.cc:213
|
|
||||||
msgid "Author contains"
|
|
||||||
msgstr "Upphovsperson innehåller"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:54 gtk2_ardour/plugin_selector.cc:215
|
|
||||||
msgid "Library contains"
|
|
||||||
msgstr "Bibliotek innehåller"
|
|
||||||
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:55 gtk2_ardour/plugin_selector.cc:203
|
|
||||||
#: gtk2_ardour/plugin_selector.cc:451
|
|
||||||
msgid "Favorites only"
|
|
||||||
msgstr "Endast favoriter"
|
|
||||||
>>>>>>> .merge-right.r3622
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue