libpsynth 0.2.1
Public Types | Public Member Functions
psynth::sound::dynamic_buffer_range< BufferRangeTypes > Class Template Reference

Represents a run-time specified buffer range. More...

#include <dynamic_buffer_range.hpp>

Inheritance diagram for psynth::sound::dynamic_buffer_range< BufferRangeTypes >:
Inheritance graph
[legend]
Collaboration diagram for psynth::sound::dynamic_buffer_range< BufferRangeTypes >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef dynamic_buffer_range
< typename
detail::ranges_get_const_type
< BufferRangeTypes >::type > 
const_range
typedef std::size_t size_type
typedef std::ptrdiff_t difference_type

Public Member Functions

 dynamic_buffer_range ()
template<typename T >
 dynamic_buffer_range (const T &obj) throw ()
 dynamic_buffer_range (const dynamic_buffer_range &v)
template<typename T >
dynamic_buffer_range & operator= (const T &obj)
dynamic_buffer_range & operator= (const dynamic_buffer_range &v)
std::size_t num_samples () const
size_type size () const

Detailed Description

template<typename BufferRangeTypes>
class psynth::sound::dynamic_buffer_range< BufferRangeTypes >

Represents a run-time specified buffer range.

Models HasDynamicXStepTypeConcept, HasDynamicYStepTypeConcept, Note that this class does NOT model BufferRangeConcept

Represents a range whose type (color space, layout, planar/interleaved organization, etc) can be specified at run time. It is the runtime equivalent of buffer_range.

Some of the requirements of BufferRangeConcept, such as the value_type typedef cannot be fulfilled, since the language does not allow runtime type specification. Other requirements, such as access to the frames, would be inefficient to provide. Thus dynamic_buffer_range does not fully model BufferRangeConcept. However, many algorithms provide overloads taking runtime specified ranges and thus in many cases dynamic_buffer_range can be used in places taking a range.

To perform an algorithm on dynamic_buffer_range, put the algorithm in a function object and invoke it by calling apply_operation(runtime_range, algorithm_fn);


Member Typedef Documentation

template<typename BufferRangeTypes>
typedef dynamic_buffer_range< typename detail::ranges_get_const_type<BufferRangeTypes>::type> psynth::sound::dynamic_buffer_range< BufferRangeTypes >::const_range
template<typename BufferRangeTypes>
typedef std::ptrdiff_t psynth::sound::dynamic_buffer_range< BufferRangeTypes >::difference_type
template<typename BufferRangeTypes>
typedef std::size_t psynth::sound::dynamic_buffer_range< BufferRangeTypes >::size_type

Constructor & Destructor Documentation

template<typename BufferRangeTypes>
psynth::sound::dynamic_buffer_range< BufferRangeTypes >::dynamic_buffer_range ( ) [inline]
template<typename BufferRangeTypes>
template<typename T >
psynth::sound::dynamic_buffer_range< BufferRangeTypes >::dynamic_buffer_range ( const T &  obj) throw () [inline, explicit]
template<typename BufferRangeTypes>
psynth::sound::dynamic_buffer_range< BufferRangeTypes >::dynamic_buffer_range ( const dynamic_buffer_range< BufferRangeTypes > &  v) [inline]

Member Function Documentation

template<typename BufferRangeTypes>
std::size_t psynth::sound::dynamic_buffer_range< BufferRangeTypes >::num_samples ( ) const [inline]
template<typename BufferRangeTypes>
dynamic_buffer_range& psynth::sound::dynamic_buffer_range< BufferRangeTypes >::operator= ( const dynamic_buffer_range< BufferRangeTypes > &  v) [inline]
template<typename BufferRangeTypes>
template<typename T >
dynamic_buffer_range& psynth::sound::dynamic_buffer_range< BufferRangeTypes >::operator= ( const T &  obj) [inline]
template<typename BufferRangeTypes>
size_type psynth::sound::dynamic_buffer_range< BufferRangeTypes >::size ( ) const [inline]

The documentation for this class was generated from the following file: