mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-07 14:15:46 +01:00
Fix the ProcessContext copy-ctor stuff for older compilers, which don't support template base class initialization without template parameters
git-svn-id: svn://localhost/ardour2/branches/3.0@12983 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
5b5998208f
commit
d762be4f73
1 changed files with 8 additions and 4 deletions
|
|
@ -15,6 +15,7 @@
|
|||
namespace AudioGrapher
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Processing context. Constness only applies to data, not flags
|
||||
*/
|
||||
|
|
@ -23,6 +24,9 @@ template <typename T = DefaultSampleType>
|
|||
class ProcessContext
|
||||
: public Throwing<>
|
||||
{
|
||||
// Support older compilers that don't support template base class initialization without template parameters
|
||||
// This will need to be modified if if it's modified above
|
||||
static const ThrowLevel throwLevel = DEFAULT_THROW_LEVEL;
|
||||
|
||||
BOOST_STATIC_ASSERT (boost::has_trivial_destructor<T>::value);
|
||||
|
||||
|
|
@ -43,25 +47,25 @@ public:
|
|||
|
||||
/// Normal copy constructor
|
||||
ProcessContext (ProcessContext<T> const & other)
|
||||
: Throwing(), _data (other._data), _frames (other._frames), _channels (other._channels), _flags (other._flags)
|
||||
: Throwing<throwLevel>(), _data (other._data), _frames (other._frames), _channels (other._channels), _flags (other._flags)
|
||||
{ /* No need to validate data */ }
|
||||
|
||||
/// "Copy constructor" with unique data, frame and channel count, but copies flags
|
||||
template<typename Y>
|
||||
ProcessContext (ProcessContext<Y> const & other, T * data, framecnt_t frames, ChannelCount channels)
|
||||
: Throwing(), _data (data), _frames (frames), _channels (channels), _flags (other.flags())
|
||||
: Throwing<throwLevel>(), _data (data), _frames (frames), _channels (channels), _flags (other.flags())
|
||||
{ validate_data(); }
|
||||
|
||||
/// "Copy constructor" with unique data and frame count, but copies channel count and flags
|
||||
template<typename Y>
|
||||
ProcessContext (ProcessContext<Y> const & other, T * data, framecnt_t frames)
|
||||
: Throwing(), _data (data), _frames (frames), _channels (other.channels()), _flags (other.flags())
|
||||
: Throwing<throwLevel>(), _data (data), _frames (frames), _channels (other.channels()), _flags (other.flags())
|
||||
{ validate_data(); }
|
||||
|
||||
/// "Copy constructor" with unique data, but copies frame and channel count + flags
|
||||
template<typename Y>
|
||||
ProcessContext (ProcessContext<Y> const & other, T * data)
|
||||
: Throwing(), _data (data), _frames (other.frames()), _channels (other.channels()), _flags (other.flags())
|
||||
: Throwing<throwLevel>(), _data (data), _frames (other.frames()), _channels (other.channels()), _flags (other.flags())
|
||||
{ /* No need to validate data */ }
|
||||
|
||||
/// Make new Context out of the beginning of this context
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue