libpsynth 0.2.1
Public Types | Public Member Functions
psynth::sound::dynamic_buffer< BufferTypes > Class Template Reference

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

#include <dynamic_buffer.hpp>

Inheritance diagram for psynth::sound::dynamic_buffer< BufferTypes >:
Inheritance graph
[legend]
Collaboration diagram for psynth::sound::dynamic_buffer< BufferTypes >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef dynamic_buffer_range
< typename
detail::buffers_get_const_ranges_type
< BufferTypes >::type > 
const_range
typedef dynamic_buffer_range
< typename
detail::buffers_get_ranges_type
< BufferTypes >::type > 
range
typedef range::size_type size_type
typedef range::difference_type difference_type

Public Member Functions

 dynamic_buffer ()
template<typename T >
 dynamic_buffer (const T &obj)
template<typename T >
 dynamic_buffer (T &obj, bool do_swap)
 dynamic_buffer (const dynamic_buffer &v)
template<typename T >
dynamic_buffer & operator= (const T &obj)
dynamic_buffer & operator= (const dynamic_buffer &v)
void recreate (size_type size, unsigned align=1)
std::size_t num_samples () const
size_type size () const

Detailed Description

template<typename BufferTypes>
class psynth::sound::dynamic_buffer< BufferTypes >

Represents a run-time specified buffer.

Note it does NOT model BufferConcept

Represents an buffer whose type (color space, layout, planar/interleaved organization, etc) can be specified at run time. It is the runtime equivalent of buffer. Some of the requirements of BufferConcept, 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 pixels, would be inefficient to provide. Thus dynamic_buffer does not fully model BufferConcept. In particular, its range and const_range methods return dynamic_buffer_range, which does not fully model BufferRangeConcept. See dynamic_buffer_range for more.


Member Typedef Documentation

template<typename BufferTypes>
typedef dynamic_buffer_range< typename detail::buffers_get_const_ranges_type<BufferTypes>::type> psynth::sound::dynamic_buffer< BufferTypes >::const_range
template<typename BufferTypes>
typedef range::difference_type psynth::sound::dynamic_buffer< BufferTypes >::difference_type
template<typename BufferTypes>
typedef dynamic_buffer_range< typename detail::buffers_get_ranges_type<BufferTypes>::type> psynth::sound::dynamic_buffer< BufferTypes >::range
template<typename BufferTypes>
typedef range::size_type psynth::sound::dynamic_buffer< BufferTypes >::size_type

Constructor & Destructor Documentation

template<typename BufferTypes>
psynth::sound::dynamic_buffer< BufferTypes >::dynamic_buffer ( ) [inline]
template<typename BufferTypes>
template<typename T >
psynth::sound::dynamic_buffer< BufferTypes >::dynamic_buffer ( const T &  obj) [inline, explicit]
template<typename BufferTypes>
template<typename T >
psynth::sound::dynamic_buffer< BufferTypes >::dynamic_buffer ( T &  obj,
bool  do_swap 
) [inline, explicit]
template<typename BufferTypes>
psynth::sound::dynamic_buffer< BufferTypes >::dynamic_buffer ( const dynamic_buffer< BufferTypes > &  v) [inline]

Member Function Documentation

template<typename BufferTypes>
std::size_t psynth::sound::dynamic_buffer< BufferTypes >::num_samples ( ) const [inline]
template<typename BufferTypes>
template<typename T >
dynamic_buffer& psynth::sound::dynamic_buffer< BufferTypes >::operator= ( const T &  obj) [inline]
template<typename BufferTypes>
dynamic_buffer& psynth::sound::dynamic_buffer< BufferTypes >::operator= ( const dynamic_buffer< BufferTypes > &  v) [inline]
template<typename BufferTypes>
void psynth::sound::dynamic_buffer< BufferTypes >::recreate ( size_type  size,
unsigned  align = 1 
) [inline]
template<typename BufferTypes>
size_type psynth::sound::dynamic_buffer< BufferTypes >::size ( ) const [inline]

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