Make BufferSet::is_silent work so that session silent_buffers are correctly silenced, preventing feedback from occurring with plugins that output non-zero values for zero inputs.
git-svn-id: svn://localhost/ardour2/branches/3.0@6124 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
753c66a786
commit
477bc772be
|
@ -61,6 +61,7 @@ public:
|
|||
DataType type() const { return _type; }
|
||||
|
||||
bool silent() const { return _silent; }
|
||||
void is_silent(bool yn) { _silent = yn; }
|
||||
|
||||
/** Reallocate the buffer used internally to handle at least @a size_t units of data.
|
||||
*
|
||||
|
|
|
@ -76,8 +76,7 @@ public:
|
|||
const ChanCount& count() const { return _count; }
|
||||
ChanCount& count() { return _count; }
|
||||
|
||||
void is_silent(bool yn) { _is_silent = yn; }
|
||||
bool is_silent() const { return _is_silent; }
|
||||
void is_silent(bool yn);
|
||||
void silence (nframes_t nframes, nframes_t offset);
|
||||
bool is_mirror() const { return _is_mirror; }
|
||||
|
||||
|
|
|
@ -335,5 +335,16 @@ BufferSet::silence (nframes_t nframes, nframes_t offset)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
BufferSet::is_silent (bool yn)
|
||||
{
|
||||
for (std::vector<BufferVec>::iterator i = _buffers.begin(); i != _buffers.end(); ++i) {
|
||||
for (BufferVec::iterator b = i->begin(); b != i->end(); ++b) {
|
||||
(*b)->is_silent (yn);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
||||
|
|
Loading…
Reference in New Issue