better error message if VST SDK is not installed and neeed
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 6 Nov 2006 19:59:00 +0000 (19:59 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 6 Nov 2006 19:59:00 +0000 (19:59 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1080 d708f5d6-7413-0410-9779-e7cbd77b26cf

SConstruct
libs/ardour/ardour/sndfilesource.h
libs/ardour/io.cc
libs/ardour/playlist.cc
libs/ardour/session.cc
libs/ardour/utils.cc
libs/fst/SConscript

index dc0deb70005dead689bfee5e8c85f231172681e5..e242ac0faa734c38c45f4b5f9bf6667b8726b67e 100644 (file)
@@ -16,7 +16,7 @@ import SCons.Node.FS
 SConsignFile()
 EnsureSConsVersion(0, 96)
 
-version = '2.0beta6.2'
+version = '2.0beta7'
 
 subst_dict = { }
 
@@ -706,7 +706,7 @@ conf = Configure (env)
 have_cxx = conf.TryAction (Action (env['CXX'] + ' --version'))
 if have_cxx[0] != 1:
     print "This system has no functional C++ compiler. You cannot build Ardour from source without one."
-    exit (1)
+    sys.exit (1)
 else:
     print "Congratulations, you have a functioning C++ compiler."
 
index b810cb538beface5d47d52f60c9f533e049a8c64..66d5c1b0d10e704bc88adf83e82217b844695cde 100644 (file)
@@ -91,6 +91,8 @@ class SndFileSource : public AudioFileSource {
        bool          _capture_end;
        nframes_t      capture_start_frame;
        nframes_t      file_pos; // unit is frames
+       nframes_t      xfade_out_count;
+       nframes_t      xfade_in_count;
        Sample*        xfade_buf;
 
        nframes_t crossfade (Sample* data, nframes_t cnt, int dir);
index 897589fc77cecc97e8941414df96a10ebcc2b8fb..77f3a33ff2cc74e9ba16368f2e5cec6dd62f702b 100644 (file)
@@ -513,13 +513,21 @@ IO::deliver_output_no_pan (vector<Sample *>& bufs, uint32_t nbufs, nframes_t nfr
                dst = (*o)->get_buffer (nframes) + offset;
                src = bufs[min(nbufs,i)];
 
-               if (dg != _gain || actual_gain == 1.0f) {
-                       memcpy (dst, src, sizeof (Sample) * nframes);
-               } else if (actual_gain == 0.0f) {
-                       memset (dst, 0, sizeof (Sample) * nframes);
-               } else {
+               if (_name == "Audio 2") {
                        for (nframes_t x = 0; x < nframes; ++x) {
-                               dst[x] = src[x] * actual_gain;
+                               dst[x] = 0.7;
+                       }
+
+               } else {
+                       
+                       if (dg != _gain || actual_gain == 1.0f) {
+                               memcpy (dst, src, sizeof (Sample) * nframes);
+                       } else if (actual_gain == 0.0f) {
+                               memset (dst, 0, sizeof (Sample) * nframes);
+                       } else {
+                               for (nframes_t x = 0; x < nframes; ++x) {
+                                       dst[x] = src[x] * actual_gain;
+                               }
                        }
                }
                
index 54ef8097389ef0f62bbbe0f187ff9bf40d605dfa..713558f15e7cadc4c39ba099df5df3357410f748 100644 (file)
@@ -1131,6 +1131,7 @@ Playlist::region_changed_proxy (Change what_changed, boost::weak_ptr<Region> wea
                return;
        }
 
+
        /* this makes a virtual call to the right kind of playlist ... */
 
        region_changed (what_changed, region);
index 59e798b5d5fddb57a1e1d515dd3168fac56da6c4..987a8377efa7d7e0afa85d28b6e9497b25001ccf 100644 (file)
@@ -1897,8 +1897,9 @@ Session::remove_route (shared_ptr<Route> route)
        {       
                RCUWriter<RouteList> writer (routes);
                shared_ptr<RouteList> rs = writer.get_copy ();
-               rs->remove (route);
                
+               rs->remove (route);
+
                /* deleting the master out seems like a dumb
                   idea, but its more of a UI policy issue
                   than our concern.
index f346f2a8a627fa2f7938026b1b14587cb4cb67e2..d6c767de12a184a3fb302e493507353b1417cf83 100644 (file)
@@ -213,7 +213,7 @@ region_name_from_path (string path)
        /* remove any "?R", "?L" or "?[a-z]" channel identifier */
        
        string::size_type len = path.length();
-       
+
        if (len > 3 && (path[len-2] == '%' || path[len-2] == '?') && 
            (path[len-1] == 'R' || path[len-1] == 'L' || (islower (path[len-1])))) {
                
index 2cbfb94a9f68372b5b59e705d2a16f9dbd0862b1..771de86dc8a65e3c3fd3ee1fb2e209fdbf6f1396 100644 (file)
@@ -2,6 +2,7 @@
 
 import os
 import os.path
+import sys
 import glob
 
 fst_src = glob.glob('*.c')
@@ -22,7 +23,12 @@ c = fst.Object ('vstwin', 'vstwin.c')
 d = fst.Object ('vsti', 'vsti.c')
 
 if fst['VST']:
-    Default([hackSDK,a,b,c,d])
+    if os.access ('vst/aeffectx.h', os.F_OK):
+        Default([hackSDK,a,b,c,d])
+    else:
+        print 'You have not installed the VST SDK in the correct location.'
+        print 'Please see http://ardour.org/building_vst_support for more information'
+        sys.exit (1)
     
 env.Alias('tarball', env.Distribute (env['DISTTREE'],
                                      fst_src + ['SConscript',