libpsynth 0.2.1
Classes | Public Types | Public Member Functions | Friends
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace > Struct Template Reference

An iterator over planar frames. More...

#include <planar_frame_iterator.hpp>

List of all members.

Classes

struct  address_of

Public Types

typedef parent_type::value_type value_type
typedef parent_type::reference reference
typedef
parent_type::difference_type 
difference_type

Public Member Functions

 planar_frame_iterator ()
 planar_frame_iterator (bool)
 planar_frame_iterator (const SamplePtr &v0, const SamplePtr &v1)
 planar_frame_iterator (const SamplePtr &v0, const SamplePtr &v1, const SamplePtr &v2)
 planar_frame_iterator (const SamplePtr &v0, const SamplePtr &v1, const SamplePtr &v2, const SamplePtr &v3)
 planar_frame_iterator (const SamplePtr &v0, const SamplePtr &v1, const SamplePtr &v2, const SamplePtr &v3, const SamplePtr &v4)
template<typename IC1 , typename C1 >
 planar_frame_iterator (const planar_frame_iterator< IC1, C1 > &ptr)
template<typename P >
 planar_frame_iterator (P *pix)
 Copy constructor and operator= from pointers to compatible planar frames or planar frame references.
template<typename P >
planar_frame_iteratoroperator= (P *pix)
reference operator[] (difference_type d) const
 For some reason operator[] provided by iterator_facade returns a custom class that is convertible to reference.
reference operator-> () const
bool operator< (const planar_frame_iterator &ptr) const
bool operator!= (const planar_frame_iterator &ptr) const

Friends

class boost::iterator_core_access

Detailed Description

template<typename SamplePtr, typename ChannelSpace>
struct psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >

An iterator over planar frames.

Models HomogeneousChannelBaseConcept, FrameIteratorConcept, HomogeneousFrameBasedConcept, MemoryBasedIteratorConcept, HasDynamicXStepTypeConcept

Planar frames have sample data that is not consecutive in memory. To abstract this we use classes to represent references and pointers to planar frames.

FrameBasedModel


Member Typedef Documentation

template<typename SamplePtr, typename ChannelSpace>
typedef parent_type::difference_type psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::difference_type
template<typename SamplePtr, typename ChannelSpace>
typedef parent_type::reference psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::reference
template<typename SamplePtr, typename ChannelSpace>
typedef parent_type::value_type psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::value_type

Constructor & Destructor Documentation

template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( ) [inline]
template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( bool  ) [inline]
template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( const SamplePtr &  v0,
const SamplePtr &  v1 
) [inline]
template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( const SamplePtr &  v0,
const SamplePtr &  v1,
const SamplePtr &  v2 
) [inline]
template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( const SamplePtr &  v0,
const SamplePtr &  v1,
const SamplePtr &  v2,
const SamplePtr &  v3 
) [inline]
template<typename SamplePtr, typename ChannelSpace>
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( const SamplePtr &  v0,
const SamplePtr &  v1,
const SamplePtr &  v2,
const SamplePtr &  v3,
const SamplePtr &  v4 
) [inline]
template<typename SamplePtr, typename ChannelSpace>
template<typename IC1 , typename C1 >
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( const planar_frame_iterator< IC1, C1 > &  ptr) [inline]
template<typename SamplePtr, typename ChannelSpace>
template<typename P >
psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::planar_frame_iterator ( P *  pix) [inline]

Copy constructor and operator= from pointers to compatible planar frames or planar frame references.

That allow constructs like pointer = &value or pointer = &reference Since we should not override operator& that's the best we can do.


Member Function Documentation

template<typename SamplePtr, typename ChannelSpace>
bool psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::operator!= ( const planar_frame_iterator< SamplePtr, ChannelSpace > &  ptr) const [inline]
template<typename SamplePtr, typename ChannelSpace>
reference psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::operator-> ( ) const [inline]
template<typename SamplePtr, typename ChannelSpace>
bool psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::operator< ( const planar_frame_iterator< SamplePtr, ChannelSpace > &  ptr) const [inline]
template<typename SamplePtr, typename ChannelSpace>
template<typename P >
planar_frame_iterator& psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::operator= ( P *  pix) [inline]
template<typename SamplePtr, typename ChannelSpace>
reference psynth::sound::planar_frame_iterator< SamplePtr, ChannelSpace >::operator[] ( difference_type  d) const [inline]

For some reason operator[] provided by iterator_facade returns a custom class that is convertible to reference.

We require our own reference because it is registered in iterator_traits.


Friends And Related Function Documentation

template<typename SamplePtr, typename ChannelSpace>
friend class boost::iterator_core_access [friend]

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