libpsynth 0.2.1
Classes | Namespaces
/home/raskolnikov/dev/psynth/trunk/src/psynth/sound/metafunctions.hpp File Reference

Time-stamp: <2011-04-04 17:26:51 raskolnikov> More...

#include <iterator>
#include <boost/mpl/accumulate.hpp>
#include <boost/mpl/back.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/pop_back.hpp>
#include <boost/mpl/push_back.hpp>
#include <boost/mpl/transform.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/print.hpp>
#include <boost/type_traits.hpp>
#include <psynth/base/compat.hpp>
#include <psynth/sound/concept.hpp>
#include <psynth/sound/sample.hpp>
Include dependency graph for metafunctions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  psynth::sound::frame_reference_is_basic< FrameRef >
struct  psynth::sound::frame_reference_is_basic< frame< T, L > & >
struct  psynth::sound::frame_reference_is_basic< const frame< T, L > & >
struct  psynth::sound::frame_reference_is_basic< planar_frame_reference< TR, Cs > >
struct  psynth::sound::frame_reference_is_basic< const planar_frame_reference< TR, Cs > >
struct  psynth::sound::iterator_is_basic< Iterator >
 Determines if a given frame iterator is basic. More...
struct  psynth::sound::iterator_is_basic< frame< T, L > * >
struct  psynth::sound::iterator_is_basic< const frame< T, L > * >
struct  psynth::sound::iterator_is_basic< planar_frame_iterator< T *, Cs > >
struct  psynth::sound::iterator_is_basic< planar_frame_iterator< const T *, Cs > >
struct  psynth::sound::iterator_is_basic< memory_based_step_iterator< frame< T, L > * > >
struct  psynth::sound::iterator_is_basic< memory_based_step_iterator< const frame< T, L > * > >
struct  psynth::sound::iterator_is_basic< memory_based_step_iterator< planar_frame_iterator< T *, Cs > > >
struct  psynth::sound::iterator_is_basic< memory_based_step_iterator< planar_frame_iterator< const T *, Cs > > >
struct  psynth::sound::range_is_basic< Range >
 Basic ranges must be over basic locators. More...
struct  psynth::sound::range_is_basic< buffer_range< Loc > >
struct  psynth::sound::buffer_is_basic< Img >
 Basic buffers must use basic ranges and std::allocator of char. More...
struct  psynth::sound::buffer_is_basic< buffer< Frame, IsPlanar, Alloc > >
struct  psynth::sound::detail::iterator_is_step_impl< It, IsBase, true >
struct  psynth::sound::detail::iterator_is_step_impl< It, true, false >
struct  psynth::sound::detail::iterator_is_step_impl< It, false, false >
struct  psynth::sound::iterator_is_step< I >
 Determines if the given iterator has a step that could be set dynamically. More...
struct  psynth::sound::range_is_step< V >
 Determines if the given locator has a step that can be set dynamically. More...
struct  psynth::sound::frame_reference_is_proxy< FrameReference >
 Determines whether the given frame reference is a proxy class or a native C++ reference. More...
struct  psynth::sound::frame_is_reference< Frame >
 Given a model of a frame, determines whether the model represents a frame reference (as opposed to frame value) More...
struct  psynth::sound::frame_reference_is_mutable< R >
 Determines if the given frame reference is mutable (i.e. More...
struct  psynth::sound::frame_reference_is_mutable< const R & >
struct  psynth::sound::range_is_mutable< V >
 Determines if the given range is mutable (i.e. More...
struct  psynth::sound::frame_reference_type< T, L, IsPlanar, IsMutable >
struct  psynth::sound::frame_reference_type< T, L, false, true >
struct  psynth::sound::frame_reference_type< T, L, false, false >
struct  psynth::sound::frame_reference_type< T, L, true, true >
struct  psynth::sound::frame_reference_type< T, L, true, false >
struct  psynth::sound::iterator_type_from_frame< Frame, IsPlanar, IsStep, IsMutable >
 Returns the type of a frame iterator given the frame type, whether it operates on planar data, whether it is a step iterator, and whether it is mutable. More...
struct  psynth::sound::iterator_type_from_frame< Frame, false, false, true >
struct  psynth::sound::iterator_type_from_frame< Frame, false, false, false >
struct  psynth::sound::iterator_type_from_frame< Frame, true, false, true >
struct  psynth::sound::iterator_type_from_frame< Frame, true, false, false >
struct  psynth::sound::iterator_type_from_frame< Frame, IsPlanar, true, IsMutable >
struct  psynth::sound::iterator_type< T, L, IsPlanar, IsStep, IsMutable >
 Returns the type of a homogeneous iterator given the sample type, layout, whether it operates on planar data, whether it is a step iterator, and whether it is mutable. More...
struct  psynth::sound::iterator_type< T, L, false, false, true >
struct  psynth::sound::iterator_type< T, L, false, false, false >
struct  psynth::sound::iterator_type< T, L, true, false, true >
struct  psynth::sound::iterator_type< T, L, true, false, false >
struct  psynth::sound::iterator_type< T, L, IsPlanar, true, IsMutable >
struct  psynth::sound::type_from_iterator< Iterator >
 Given a frame iterator defining access to frames along a row, returns the types of the corresponding built-in step_iterator, xy_locator, buffer_range. More...
struct  psynth::sound::detail::packed_sample_reference_type< BitField, FirstBit, NumBits >
class  psynth::sound::detail::packed_sample_references_vector_type< BitField, SampleBitSizesVector >
struct  psynth::sound::packed_frame_type< BitField, SampleBitSizeVector, Layout >
 Returns the type of a packed frame given its bitfield type, the bit size of its samples and its layout. More...
struct  psynth::sound::packed_buffer_type< BitField, SampleBitSizeVector, Layout, Alloc >
struct  psynth::sound::packed_buffer1_type< BitField, Size1, Layout, Alloc >
 Returns the type of a single-sample buffer given its bitfield type, the bit size of its sample and its layout. More...
struct  psynth::sound::packed_buffer2_type< BitField, Size1, Size2, Layout, Alloc >
 Returns the type of a two sample buffer given its bitfield type, the bit size of its samples and its layout. More...
struct  psynth::sound::packed_buffer3_type< BitField, Size1, Size2, Size3, Layout, Alloc >
 Returns the type of a three sample buffer given its bitfield type, the bit size of its samples and its layout. More...
struct  psynth::sound::packed_buffer4_type< BitField, Size1, Size2, Size3, Size4, Layout, Alloc >
 Returns the type of a four sample buffer given its bitfield type, the bit size of its samples and its layout. More...
struct  psynth::sound::packed_buffer5_type< BitField, Size1, Size2, Size3, Size4, Size5, Layout, Alloc >
 Returns the type of a five sample buffer given its bitfield type, the bit size of its samples and its layout. More...
struct  psynth::sound::bit_aligned_buffer_type< SampleBitSizeVector, Layout, Alloc >
 Returns the type of a packed buffer whose frames may not be byte aligned. More...
struct  psynth::sound::bit_aligned_buffer1_type< Size1, Layout, Alloc >
 Returns the type of a single-sample bit-aligned buffer given the bit size of its sample and its layout. More...
struct  psynth::sound::bit_aligned_buffer2_type< Size1, Size2, Layout, Alloc >
 Returns the type of a two sample bit-aligned buffer given the bit size of its samples and its layout. More...
struct  psynth::sound::bit_aligned_buffer3_type< Size1, Size2, Size3, Layout, Alloc >
 Returns the type of a three sample bit-aligned buffer given the bit size of its samples and its layout. More...
struct  psynth::sound::bit_aligned_buffer4_type< Size1, Size2, Size3, Size4, Layout, Alloc >
 Returns the type of a four sample bit-aligned buffer given the bit size of its samples and its layout. More...
struct  psynth::sound::bit_aligned_buffer5_type< Size1, Size2, Size3, Size4, Size5, Layout, Alloc >
 Returns the type of a five sample bit-aligned buffer given the bit size of its samples and its layout. More...
struct  psynth::sound::frame_value_type< Sample, Layout >
 Returns the type of a homogeneous frame given the sample type and layout. More...
struct  psynth::sound::frame_value_type< packed_dynamic_sample_reference< BitField, NumBits, IsMutable >, Layout >
struct  psynth::sound::frame_value_type< const packed_dynamic_sample_reference< BitField, NumBits, IsMutable >, Layout >
struct  psynth::sound::frame_value_type< packed_sample_reference< BitField, FirstBit, NumBits, IsMutable >, Layout >
struct  psynth::sound::frame_value_type< const packed_sample_reference< BitField, FirstBit, NumBits, IsMutable >, Layout >
struct  psynth::sound::frame_value_type< packed_sample_value< NumBits >, Layout >
struct  psynth::sound::range_type< T, L, IsPlanar, IsStepX, IsMutable >
 Returns the type of a homogeneous range given the sample type, layout, whether it operates on planar data and whether it has a step horizontally. More...
struct  psynth::sound::buffer_type< T, L, IsPlanar, Alloc >
 Returns the type of a homogeneous buffer given the sample type, layout, and whether it operates on planar data. More...
struct  psynth::sound::range_type_from_frame< Frame, IsPlanar, IsStepX, IsMutable >
 Returns the type of a range the frame type, whether it operates on planar data and whether it has a step horizontally. More...
class  psynth::sound::derived_frame_reference_type< Ref, T, L, IsPlanar, IsMutable >
 Constructs a frame reference type from a source frame reference type by changing some of the properties. More...
class  psynth::sound::derived_iterator_type< Iterator, T, L, IsPlanar, IsStep, IsMutable >
 Constructs a frame iterator type from a source frame iterator type by changing some of the properties. More...
class  psynth::sound::derived_range_type< Range, T, L, IsPlanar, StepX, IsMutable >
 Constructs an buffer range type from a source range type by changing some of the properties. More...
class  psynth::sound::derived_buffer_type< Buffer, T, L, IsPlanar >
 Constructs a homogeneous buffer type from a source buffer type by changing some of the properties. More...
struct  psynth::sound::buffer_range_type< Range >
 Returns the buffer_range type of a Range. More...
struct  psynth::sound::buffer_range_type< buffer< Frame, Planar, Alloc > >
struct  psynth::sound::buffer_from_range< Range, Alloc >
 Returns a buffer type that can hold data of a given buffer_range type with the same representation. More...

Namespaces

namespace  psynth
namespace  psynth::sound
namespace  psynth::sound::detail
 

interleaved_range_get_raw_data, planar_range_get_raw_data - return pointers to the raw data (the samples) of a basic homogeneous range.



Detailed Description

Time-stamp: <2011-04-04 17:26:51 raskolnikov>

Author:
Juan Pedro Bolivar Puente <raskolnikov@es.gnu.org>
Date:
Thu Oct 28 21:04:05 2010

Cool metafunctions!