diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-28 19:47:45 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-28 19:47:45 +0000 |
commit | e11b3f90c2d02735a071d526d67cfd0de90cbac3 (patch) | |
tree | 3e6364da6cc3acd5d3eff4d518e1a8dcba164709 /gtk2_ardour | |
parent | 3b424fd8b55ee68f229463ccf3408de81a5c56d9 (diff) |
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
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 20 | ||||
-rw-r--r-- | gtk2_ardour/editor_region_list.cc | 477 | ||||
-rw-r--r-- | gtk2_ardour/po/sv_SE.po | 559 |
4 files changed, 289 insertions, 775 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index c53a762df9..dc791996cd 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -652,9 +652,17 @@ Editor::Editor () 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 (_("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 (_("Path to parent file"), region_list_columns.path); 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)); region_name_cell->property_editable() = true; diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 6374b29d06..eb51fb5beb 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -933,16 +933,30 @@ class Editor : public PublicEditor add (start); add (end); add (length); + add (sync); + add (fadein); + add (fadeout); + add (locked); + add (glued); + add (muted); + add (opaque); add (used); add (path); } - Gtk::TreeModelColumn<Glib::ustring> name; + Gtk::TreeModelColumn<Glib::ustring> name; Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region; Gtk::TreeModelColumn<Gdk::Color> color_; Gtk::TreeModelColumn<Glib::ustring> start; Gtk::TreeModelColumn<Glib::ustring> end; 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; }; @@ -1091,7 +1105,9 @@ class Editor : public PublicEditor void add_regions_to_region_display (std::vector<boost::weak_ptr<ARDOUR::Region> > & ); void region_hidden (boost::shared_ptr<ARDOUR::Region>); void redisplay_regions (); + void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &); 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; void insert_into_tmp_regionlist(boost::shared_ptr<ARDOUR::Region>); diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc index c37540e2b1..767fc4ec71 100644 --- a/gtk2_ardour/editor_region_list.cc +++ b/gtk2_ardour/editor_region_list.cc @@ -70,7 +70,6 @@ void Editor::region_hidden (boost::shared_ptr<Region> r) { ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::region_hidden), r)); - redisplay_regions (); } @@ -78,32 +77,28 @@ void Editor::add_regions_to_region_display (vector<boost::weak_ptr<Region> >& regions) { region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0)); + for (vector<boost::weak_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) { boost::shared_ptr<Region> region ((*x).lock()); if (region) { add_region_to_region_display (region); } } + region_list_display.set_model (region_list_model); } void Editor::add_region_to_region_display (boost::shared_ptr<Region> region) { + if (!region || !session) { + return; + } + string str; - char start_str[16]; - char end_str[16]; - char length_str[16]; - char used_str[8]; - int used; TreeModel::Row row; Gdk::Color c; - bool missing_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()); + bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source()); if (!show_automatic_regions_in_region_list && region->automatic()) { 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]; proxy.reset (); } else { - parent = *iter; } } @@ -186,17 +180,19 @@ Editor::add_region_to_region_display (boost::shared_ptr<Region> region) str += ']'; } - //if (missing_source) { - // str += _(" (MISSING)"); - //} - row[region_list_columns.name] = str; 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()) { return; } - + } else { /* 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; - if (used > 1) { - 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(); - } + populate_row(region, row); } @@ -367,33 +276,34 @@ Editor::region_list_region_changed (Change what_changed, boost::weak_ptr<Region> void Editor::region_list_selection_changed() { - bool selected; + bool selected = false; if (region_list_display.get_selection()->count_selected_rows() > 0) { selected = true; - } else { - selected = false; } if (selected) { TreeView::Selection::ListHandle_Path rows = region_list_display.get_selection()->get_selected_rows (); - TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); TreeIter iter; - if ((iter = region_list_model->get_iter (*i))) { - boost::shared_ptr<Region> r = (*iter)[region_list_columns.region]; + for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) { - /* they could have clicked on a row that is just a placeholder, like "Hidden" */ - - if (r) { + if (iter = region_list_model->get_iter (*i)) { + boost::shared_ptr<Region> r = (*iter)[region_list_columns.region]; - /* just set the first selected region (in fact, the selection model might be SINGLE, which - means there can only be one. - */ + /* they could have clicked on a row that is just a placeholder, like "Hidden" */ - 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 Editor::redisplay_regions () -{ - if (no_region_list_redisplay) { +{ + if (no_region_list_redisplay || !session) { return; } - if (session) { - - region_list_display.set_model (Glib::RefPtr<Gtk::TreeStore>(0)); - region_list_model->clear (); + 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 (); - /* now add everything we have, via a temporary list used to help with - 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 + sorting. + */ + + tmp_region_list.clear(); + session->foreach_region (this, &Editor::insert_into_tmp_regionlist); - for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) { - add_region_to_region_display (*r); - } - tmp_region_list.clear(); - - 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) { + add_region_to_region_display (*r); + } + tmp_region_list.clear(); + + region_list_display.set_model (region_list_model); + + if (tree_expanded) { + region_list_display.expand_all(); } } - void Editor::update_region_row (boost::shared_ptr<Region> region) { if (!region || !session) { return; } + TreeModel::iterator i; + TreeModel::Children rows = region_list_model->children(); - char start_str[16]; - char end_str[16]; - char length_str[16]; - char used_str[8]; - int used; - bool missing_source; - bool matched_region = false; - BBT_Time bbt; - SMPTE::Time smpte; - - missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source()); - - TreeModel::iterator found_region; - - if (show_automatic_regions_in_region_list) { + for (i = rows.begin(); i != rows.end(); ++i) { - TreeModel::iterator i; - TreeModel::iterator ii; - TreeModel::Children rows = region_list_model->children(); + cerr << "Level 1: Compare " << region->name() << " with parent " << (*i)[region_list_columns.name] << "\n"; - for (i = rows.begin(); i != rows.end(); ++i) { - - cerr << "Parent " << (*i)[region_list_columns.name] << "\n"; - - TreeModel::Children subrows = (*i).children(); - - for (ii = subrows.begin(); ii != subrows.end(); ++ii) { - - cerr << "Compare " << region->name() << " with child " << (*ii)[region_list_columns.name] << "\n"; - - boost::shared_ptr<Region> compared_region = (*ii)[region_list_columns.region]; - - if (region == compared_region) { - cerr << "Matched\n"; - matched_region = true; - found_region = ii; - break; - } - } - - if (matched_region) { - break; + 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(); - } else { + for (i = subrows.begin(); i != subrows.end(); ++i) { - TreeModel::iterator i; - TreeModel::Children rows = region_list_model->children(); + cerr << "Level " << level << ": Compare " << region->name() << " with child " << (*i)[region_list_columns.name] << "\n"; - 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]; + 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 (region == compared_region) { - cerr << "Matched\n"; - matched_region = true; - found_region = i; - break; + if (update_region_subrows(region, (*i), level + 1)) { + return true; } - + } } + return false; +} - if (!matched_region) { - cerr << "Returning - No match\n\n"; - return; - } + +void +Editor::populate_row (boost::shared_ptr<Region> region, TreeModel::Row const &row) +{ + char start_str[16]; + char end_str[16]; + char length_str[16]; + char sync_str[16]; + char fadein_str[16]; + char fadeout_str[16]; + char used_str[8]; + int used; + 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. + bool missing_source = boost::dynamic_pointer_cast<SilentFileSource>(region->source()); + + boost::shared_ptr<AudioRegion> audioRegion = boost::dynamic_pointer_cast<AudioRegion>(region); + + bool fades_in_seconds = false; + + start_str[0] = '\0'; + end_str[0] = '\0'; + length_str[0] = '\0'; + sync_str[0] = '\0'; + fadein_str[0] = '\0'; + fadeout_str[0] = '\0'; + used_str[0] = '\0'; + 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 + 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); + 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; 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); session->tempo_map().bbt_time (region->length(), bbt); 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; 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); secs = left / (float) session->frame_rate(); 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; 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()); + 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; default: break; } - cerr << "Updating " << (*found_region)[region_list_columns.name] << "\n"; + if (audioRegion && fades_in_seconds) { + + nframes_t left; + int mins; + int millisecs; + + left = audioRegion->fade_in()->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_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); + } + } if (used > 1) { - (*found_region)[region_list_columns.start] = "Multiple"; - (*found_region)[region_list_columns.end] = "Multiple"; + 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 { - (*found_region)[region_list_columns.start] = start_str; - (*found_region)[region_list_columns.end] = end_str; + 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(); } - (*found_region)[region_list_columns.length] = length_str; - (*found_region)[region_list_columns.used] = used_str; + row[region_list_columns.length] = length_str; + row[region_list_columns.used] = used_str; if (missing_source) { - (*found_region)[region_list_columns.path] = _("(MISSING) ") + region->source()->name(); + row[region_list_columns.path] = _("MISSING ") + region->source()->name(); } else { - (*found_region)[region_list_columns.path] = region->source()->name(); + row[region_list_columns.path] = region->source()->name(); } 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 { - (*found_region)[region_list_columns.name] = region->name(); + row[region_list_columns.name] = region->name(); } - - cerr << "Returning after updating\n\n"; - //return; } void diff --git a/gtk2_ardour/po/sv_SE.po b/gtk2_ardour/po/sv_SE.po index 158b1c4cec..317bf986dc 100644 --- a/gtk2_ardour/po/sv_SE.po +++ b/gtk2_ardour/po/sv_SE.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: ardour-gtk 1.0.2\n" "Report-Msgid-Bugs-To: \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" "Language-Team: Svenska <sv@li.org>\n" "MIME-Version: 1.0\n" @@ -7093,8 +7093,6 @@ msgstr "EJ tonhöjdsändrat soloslagverk" #: gtk2_ardour/editor_timefx.cc:73 msgid "Contents:" msgstr "Innehåll" -<<<<<<< .working - #: gtk2_ardour/editor_actions.cc:359 msgid "Playhead to Mouse" @@ -7434,558 +7432,3 @@ msgstr "FFT-analysfönster" #: gtk2_ardour/analysis_window.cc:135 msgid "Re-analyze 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 |