libpsynth 0.2.1
Classes
bit_aligned_frame_reference

A heterogeneous frame reference used to represent non-byte-aligned frames. More...

Collaboration diagram for bit_aligned_frame_reference:

Classes

struct  psynth::sound::bit_aligned_frame_reference< BitField, SampleBitSizes, Layout, IsMutable >
 FrameBasedModel. More...

Detailed Description

A heterogeneous frame reference used to represent non-byte-aligned frames.

Models FrameConcept

Example:

   unsigned char data=0;

   // A mutable reference to a 6-bit BGR frame in "123" format (1 bit
   // for red, 2 bits for green, 3 bits for blue)
   
   typedef const bit_aligned_frame_reference<
       unsigned char, boost::mpl::vector3_c<int,1,2,3>, rgb_layout, true>
   rgb123_ref_t;

   // create the frame reference at bit offset 2
   // (i.e. red = [2], green = [3,4], blue = [5,6,7] bits)
   rgb123_ref_t ref(&data, 2); 
   get_channel(ref, red_t()) = 1;
   assert(data == 0x04);
   get_channel(ref, green_t()) = 3;
   assert(data == 0x1C);
   get_channel(ref, blue_t()) = 7;
   assert(data == 0xFC);