summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-04-27 09:04:24 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-04-27 09:04:24 +0000
commit982d639d44f23ac46aa19ddb08055fa8cec9b0fd (patch)
tree2acfb1920e1bf4b8eb0390a34db131302c85a71e /libs/ardour
parentd2ff9e40e3d1990eba4024b945bdf0a6bb1625cf (diff)
"The In-Flight Hack, 2006"
a) measure lines extend the full height of the canvas b) region name color bars and text positioning now adjusted to match font size for different display resolutions c) vertical scrollbar limited to cover visible tracks only git-svn-id: svn://localhost/trunk/ardour2@486 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/audioregion.h2
-rw-r--r--libs/ardour/ardour/coreaudio_source.h1
-rw-r--r--libs/ardour/ardour/filesource.h7
-rw-r--r--libs/ardour/ardour/sndfilesource.h4
-rw-r--r--libs/ardour/ardour/source.h2
-rw-r--r--libs/ardour/audioregion.cc13
-rw-r--r--libs/ardour/coreaudio_source.cc7
-rw-r--r--libs/ardour/filesource.cc14
-rw-r--r--libs/ardour/sndfilesource.cc6
9 files changed, 47 insertions, 9 deletions
diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h
index c716bf9707..a146a20417 100644
--- a/libs/ardour/ardour/audioregion.h
+++ b/libs/ardour/ardour/audioregion.h
@@ -80,6 +80,8 @@ class AudioRegion : public Region
bool equivalent (const AudioRegion&);
bool size_equivalent (const AudioRegion&);
+ bool speed_mismatch (float) const;
+
void lock_sources ();
void unlock_sources ();
Source& source (uint32_t n=0) const { if (n < sources.size()) return *sources[n]; else return *sources[0]; }
diff --git a/libs/ardour/ardour/coreaudio_source.h b/libs/ardour/ardour/coreaudio_source.h
index 6ae74b7304..4193623006 100644
--- a/libs/ardour/ardour/coreaudio_source.h
+++ b/libs/ardour/ardour/coreaudio_source.h
@@ -32,6 +32,7 @@ class CoreAudioSource : public ExternalSource {
~CoreAudioSource ();
jack_nframes_t read (Sample *dst, jack_nframes_t start, jack_nframes_t cnt, char * workbuf) const;
+ float sample_rate() const;
private:
ExtAudioFileRef af;
diff --git a/libs/ardour/ardour/filesource.h b/libs/ardour/ardour/filesource.h
index df9cc46b91..28a01f0a78 100644
--- a/libs/ardour/ardour/filesource.h
+++ b/libs/ardour/ardour/filesource.h
@@ -58,6 +58,7 @@ class FileSource : public Source {
void mark_for_remove();
string peak_path(string audio_path);
string path() const { return _path; }
+ float sample_rate () const;
virtual int seek (jack_nframes_t frame) {return 0; }
virtual jack_nframes_t last_capture_start_frame() const { return 0; }
@@ -129,9 +130,9 @@ class FileSource : public Source {
};
struct ChunkInfo {
- string name;
- uint32_t size;
- off64_t offset;
+ std::string name;
+ uint32_t size;
+ off64_t offset;
ChunkInfo (string s, uint32_t sz, off64_t o)
: name (s), size (sz), offset (o) {}
diff --git a/libs/ardour/ardour/sndfilesource.h b/libs/ardour/ardour/sndfilesource.h
index 37167e6a9a..2bd6042ec2 100644
--- a/libs/ardour/ardour/sndfilesource.h
+++ b/libs/ardour/ardour/sndfilesource.h
@@ -33,9 +33,9 @@ class SndFileSource : public ExternalSource {
SndFileSource (const XMLNode&);
~SndFileSource ();
- jack_nframes_t length() const { return _info.frames; }
-
+ jack_nframes_t length() const { return _info.frames; }
jack_nframes_t read (Sample *dst, jack_nframes_t start, jack_nframes_t cnt, char * workbuf) const;
+ float sample_rate () const;
private:
SNDFILE *sf;
diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h
index 88a478a420..2eee7a7634 100644
--- a/libs/ardour/ardour/source.h
+++ b/libs/ardour/ardour/source.h
@@ -75,6 +75,8 @@ class Source : public Stateful, public sigc::trackable
return 0;
}
+ virtual float sample_rate () const { return 0; }
+
uint32_t use_cnt() const { return _use_cnt; }
void use ();
void release ();
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index c63c231f86..95201ab6f7 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -1392,6 +1392,19 @@ AudioRegion::resume_fade_out ()
}
}
+bool
+AudioRegion::speed_mismatch (float sr) const
+{
+ if (sources.empty()) {
+ /* impossible, but ... */
+ return false;
+ }
+
+ float fsr = sources.front()->sample_rate();
+
+ return fsr == sr;
+}
+
extern "C" {
int region_read_peaks_from_c (void *arg, uint32_t npeaks, uint32_t start, uint32_t cnt, intptr_t data, uint32_t n_chan, double samples_per_unit)
diff --git a/libs/ardour/coreaudio_source.cc b/libs/ardour/coreaudio_source.cc
index 3f786a2b14..d81630d6b7 100644
--- a/libs/ardour/coreaudio_source.cc
+++ b/libs/ardour/coreaudio_source.cc
@@ -204,3 +204,10 @@ CoreAudioSource::read (Sample *dst, jack_nframes_t start, jack_nframes_t cnt, ch
return real_cnt;
}
+float
+CoreAudioSource::sample_rate() const
+{
+ /* XXX taybin fill me in please */
+
+ return 44100.0f;
+}
diff --git a/libs/ardour/filesource.cc b/libs/ardour/filesource.cc
index d4f728c13b..568ce46bd1 100644
--- a/libs/ardour/filesource.cc
+++ b/libs/ardour/filesource.cc
@@ -907,14 +907,20 @@ FileSource::check_header (jack_nframes_t rate, bool silent)
_path, header.data.size, _length * sizeof (Sample)) << endmsg;
}
- if ((jack_nframes_t) header.format.nSamplesPerSec != rate) {
- warning << string_compose(_("\"%1\" has a sample rate of %2 instead of %3 as used by this session"),
- _path, header.format.nSamplesPerSec, rate) << endmsg;
- }
+// if ((jack_nframes_t) header.format.nSamplesPerSec != rate) {
+// warning << string_compose(_("\"%1\" has a sample rate of %2 instead of %3 as used by this session"),
+// _path, header.format.nSamplesPerSec, rate) << endmsg;
+// }
return 0;
}
+float
+FileSource::sample_rate () const
+{
+ return header.format.nSamplesPerSec;
+}
+
int
FileSource::write_header()
{
diff --git a/libs/ardour/sndfilesource.cc b/libs/ardour/sndfilesource.cc
index 522f94b5c2..e547b212a0 100644
--- a/libs/ardour/sndfilesource.cc
+++ b/libs/ardour/sndfilesource.cc
@@ -109,6 +109,12 @@ SndFileSource::~SndFileSource ()
}
}
+float
+SndFileSource::sample_rate () const
+{
+ return _info.samplerate;
+}
+
jack_nframes_t
SndFileSource::read (Sample *dst, jack_nframes_t start, jack_nframes_t cnt, char * workbuf) const
{