better fix for duplicate regions, fix nasty side-effects from recent directory struct...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 18 Sep 2006 15:16:29 +0000 (15:16 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 18 Sep 2006 15:16:29 +0000 (15:16 +0000)
git-svn-id: svn://localhost/ardour2/trunk@919 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/actions.cc
gtk2_ardour/audio_streamview.cc
gtk2_ardour/editor_canvas.cc
libs/ardour/audio_diskstream.cc
libs/ardour/session.cc
libs/ardour/sndfilesource.cc
libs/gtkmm2ext/dndtreeview.cc

index 2197d4dc005174b19d41d78727c2ca0699bfacd5..b2408620a5e7d18e9562e89e2fd14085da2f1a4e 100644 (file)
@@ -73,13 +73,13 @@ ActionManager::init ()
                ui_manager->add_ui_from_file (ui_file);
                loaded = true;
        } catch (Glib::MarkupError& err) {
-               error << "badly formatted UI definition file" << endmsg;
+               error << _("badly formatted UI definition file") << endmsg;
        } catch (...) {
-               error << "Ardour menu definition file not found" << endmsg;
+               error << _("Ardour menu definition file not found") << endmsg;
        }
 
        if (!loaded) {
-               error << "ardour will not work without a valid ardour.menus file" << endmsg;
+               error << _("ardour will not work without a valid ardour.menus file") << endmsg;
                exit(1);
        }
 }
@@ -277,7 +277,7 @@ ActionManager::uncheck_toggleaction (const char * name)
                RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
                        tact->set_active (false);
        } else {
-               error << "Unknown action name: " << name << endmsg;
+               error << string_compose (_("Unknown action name: %1"),  name) << endmsg;
        }
 
        delete [] group_name;
index 9a6f1f25a2335a2733f5c42ee9020865103ea23d..f4adc6f04f56e521894172d5b3a49d73b9b9adc8 100644 (file)
@@ -504,9 +504,14 @@ AudioStreamView::setup_rec_box ()
                        
                        /* remove temp regions */
                        
-                       for (list<boost::shared_ptr<ARDOUR::Region> >::iterator i = rec_regions.begin(); i != rec_regions.end(); ++i) {
-                               (*i)->drop_references();
+                       for (list<boost::shared_ptr<Region> >::iterator iter = rec_regions.begin(); iter != rec_regions.end();) {
+                               list<boost::shared_ptr<Region> >::iterator tmp;
+                               tmp = iter;
+                               ++tmp;
+                               (*iter)->drop_references ();
+                               iter = tmp;
                        }
+                               
                        rec_regions.clear();
 
                        // cerr << "\tclear " << rec_rects.size() << " rec rects\n";
index 0c3436ec403573047a07dd550283d3d2eff9c32f..6798242642dee4a9cf2c673a16ac157c8f2d96b4 100644 (file)
@@ -417,6 +417,8 @@ Editor::track_canvas_drag_data_received (const RefPtr<Gdk::DragContext>& context
                                         const SelectionData& data,
                                         guint info, guint time)
 {
+       cerr << "dropping, target = " << data.get_target() << endl;
+
        if (data.get_target() == "regions") {
                drop_regions (context, x, y, data, info, time);
        } else {
index 037ffdb30a6e5c910181df559f66f892aa2d1678..f0ea938ca61e8b008453907efc719a21952442f0 100644 (file)
@@ -1581,7 +1581,7 @@ AudioDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_ca
                        string region_name;
                        _session.region_name (region_name, channels[0].write_source->name(), false);
                        
-                       cerr << _name << ": based on ci of " << (*ci)->start << " for " << (*ci)->frames << " add region " << region_name << endl;
+                       // cerr << _name << ": based on ci of " << (*ci)->start << " for " << (*ci)->frames << " add region " << region_name << endl;
                        
                        try {
                                boost::shared_ptr<Region> rx (RegionFactory::create (srcs, buffer_position, (*ci)->frames, region_name));
index c7e349d14e3dab69b0896504bef229f4512b2357..6f7935e9b6799792feccac516abee46ba2a04644 100644 (file)
@@ -2950,7 +2950,7 @@ Session::audio_path_from_name (string name, uint32_t nchan, uint32_t chan, bool
 
                        spath = (*i).path;
 
-                       spath += sound_dir_name;
+                       spath += sound_dir (false);
 
                        if (destructive) {
                                if (nchan < 2) {
@@ -2986,9 +2986,10 @@ Session::audio_path_from_name (string name, uint32_t nchan, uint32_t chan, bool
                                }
                        }
 
-                       if (access (buf, F_OK) == 0) {
+                       if (g_file_test (buf, G_FILE_TEST_EXISTS)) {
                                existing++;
-                       }
+                       } 
+
                }
 
                if (existing == 0) {
index 61ebb153f7e67defea12365de2b9433d8470fbde..fa3a882aa49e6463d7a3497005353b8dc4a5d6f6 100644 (file)
@@ -226,7 +226,6 @@ SndFileSource::open ()
 
        _length = _info.frames;
 
-
        _broadcast_info = new SF_BROADCAST_INFO;
        memset (_broadcast_info, 0, sizeof (*_broadcast_info));
        
index d7ee5a7b27c096e01cc22d506a637d34d9991c95..83955861cfec9e1364a66e64a0bd743e9f31b274 100644 (file)
@@ -48,6 +48,8 @@ DnDTreeView::serialize_pointers (RefPtr<TreeModel> model, TreeSelection::ListHan
        uint32_t cnt = selection->size();
        uint32_t sz = (sizeof (void*) * cnt) + sizeof (SerializedObjectPointers);
 
+       cerr << "lets plan to serialize " << cnt << " from selection\n";
+
        char* buf = new char[sz];
        SerializedObjectPointers* sr = new (buf) SerializedObjectPointers;
        
@@ -59,10 +61,12 @@ DnDTreeView::serialize_pointers (RefPtr<TreeModel> model, TreeSelection::ListHan
        cnt = 0;
 
        for (TreeSelection::ListHandle_Path::iterator x = selection->begin(); x != selection->end(); ++x, ++cnt) {
+               cerr << "getting next item\n";
                TreeModel::Row row = *(model->get_iter (*x));
                row.get_value (data_column, sr->ptr[cnt]);
        }
-       
+
+       cerr << "returning an SR with size = " << sr->size << endl;
        return sr;
 }
 
@@ -79,6 +83,7 @@ DnDTreeView::on_drag_data_get(const RefPtr<DragContext>& context, SelectionData&
                SerializedObjectPointers* sr = serialize_pointers (get_model(), &selection, selection_data.get_target());
                selection_data.set (8, (guchar*)sr, sr->size);
                
+               cerr << "selection data set to contain " << sr->size << endl;
        }
 }