X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Faudiographer%2Faudiographer%2Ftype_utils.h;h=c16b0f942a0b2c907b000425ea9a3c0098c1c3a5;hb=16ef78ade0faf1cbdbdb2dc6c4430fb4996c0323;hp=a7c38fc66085269528b9dc2ce34bbd8e39232229;hpb=658bb3ccd43658de18fbd43cd91a8e66650e27a7;p=ardour.git diff --git a/libs/audiographer/audiographer/type_utils.h b/libs/audiographer/audiographer/type_utils.h index a7c38fc660..c16b0f942a 100644 --- a/libs/audiographer/audiographer/type_utils.h +++ b/libs/audiographer/audiographer/type_utils.h @@ -17,23 +17,23 @@ namespace AudioGrapher class LIBAUDIOGRAPHER_API TypeUtilsBase { protected: - + template - static void do_zero_fill(T * buffer, framecnt_t frames, const boost::integral_constant&) - { std::uninitialized_fill_n (buffer, frames, T()); } + static void do_zero_fill(T * buffer, samplecnt_t samples, const boost::integral_constant&) + { std::uninitialized_fill_n (buffer, samples, T()); } template - static void do_zero_fill(T * buffer, framecnt_t frames, const boost::true_type&) - { memset (buffer, 0, frames * sizeof(T)); } + static void do_zero_fill(T * buffer, samplecnt_t samples, const boost::true_type&) + { memset (buffer, 0, samples * sizeof(T)); } }; /// Utilities for initializing, copying, moving, etc. data template -class LIBAUDIOGRAPHER_API TypeUtils : private TypeUtilsBase +class /*LIBAUDIOGRAPHER_API*/ TypeUtils : private TypeUtilsBase { BOOST_STATIC_ASSERT (boost::has_trivial_destructor::value); - - typedef boost::integral_constant::value || boost::is_signed::value> zero_fillable; public: @@ -42,26 +42,26 @@ class LIBAUDIOGRAPHER_API TypeUtils : private TypeUtilsBase * if T is not a floating point or signed integer type * \n RT safe */ - inline static void zero_fill (T * buffer, framecnt_t frames) - { do_zero_fill(buffer, frames, zero_fillable()); } - - /** Copies \a frames frames of data from \a source to \a destination + inline static void zero_fill (T * buffer, samplecnt_t samples) + { do_zero_fill(buffer, samples, zero_fillable()); } + + /** Copies \a samples frames of data from \a source to \a destination * The source and destination may NOT overlap. * \n RT safe */ - inline static void copy (T const * source, T * destination, framecnt_t frames) - { std::uninitialized_copy (source, &source[frames], destination); } - - /** Moves \a frames frames of data from \a source to \a destination + inline static void copy (T const * source, T * destination, samplecnt_t samples) + { std::uninitialized_copy (source, &source[samples], destination); } + + /** Moves \a samples frames of data from \a source to \a destination * The source and destination may overlap in any way. * \n RT safe */ - inline static void move (T const * source, T * destination, framecnt_t frames) + inline static void move (T const * source, T * destination, samplecnt_t samples) { if (destination < source) { - std::copy (source, &source[frames], destination); + std::copy (source, &source[samples], destination); } else if (destination > source) { - std::copy_backward (source, &source[frames], destination + frames); + std::copy_backward (source, &source[samples], destination + samples); } } };