BufferedImageGenerator Class Reference#include <BufferedImageGenerator.h>
Inheritance diagram for BufferedImageGenerator:
[legend]List of all members.
Detailed Description
description of BufferedImageGenerator
Definition at line 11 of file BufferedImageGenerator.h.
|
Public Member Functions |
| BufferedImageGenerator (const std::string &name, EventBase::EventGeneratorID_t mgid, unsigned int msid, unsigned int nLayers, EventBase::EventGeneratorID_t srcgid, unsigned int srcsid) |
| constructor
|
virtual | ~BufferedImageGenerator () |
virtual void | DoStart () |
| need to override EventGeneratorBase's lazy listening -- as a root stage, need to remember each frame, just in case it might be used
|
virtual void | processEvent (const EventBase &event) |
| default implementation does a few common housekeeping chores for you - probably should just take a look at its code
|
virtual unsigned int | getBinSize () const |
| calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.
|
virtual unsigned int | LoadBuffer (const char buf[], unsigned int len) |
virtual unsigned int | SaveBuffer (char buf[], unsigned int len) const |
| Save to a given buffer.
|
virtual unsigned int | SaveFileStream (FILE *f) const |
| overrridden to allow saving direct to file without an extra buffer copy
|
virtual unsigned char * | getImage (unsigned int layer, unsigned int channel) |
| returns pointer to the beginning of the image data for the specified layer and channel
|
virtual void | freeCaches () |
| deletes storage of cached images and marks it invalid
|
virtual void | invalidateCaches () |
| marks all of the cached images as invalid (but doesn't free their memory)
|
Protected Member Functions |
| BufferedImageGenerator (const std::string &classname, const std::string &instancename, EventBase::EventGeneratorID_t mgid, unsigned int msid, unsigned int nLayers, EventBase::EventGeneratorID_t srcgid, unsigned int srcsid) |
| constructor for subclasses
|
virtual unsigned char * | createImageCache (unsigned int layer, unsigned int channel) const |
| create new image data storage area for the cache - this called by getImage() only when the corresponding entry in images is NULL
|
virtual void | calcImage (unsigned int layer, unsigned int channel) |
| should calculate new image data, called by getImage() only when imageValids indicates the image being requested is dirty (and only after getImage() has already called createImageCache())
|
virtual void | setDimensions () |
| resets width and height parameters to that of the src
|
virtual void | destruct () |
| deletes the arrays
|
virtual void | setNumImages (unsigned int nLayers, unsigned int nChannels) |
| resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor
|
virtual void | upsampleImage (unsigned int srcLayer, unsigned int chan, unsigned int destLayer) |
| duplicates pixels to make a higher resolution version of srcLayer, chan into destLayer, chan
|
Protected Attributes |
ImageSource | imgsrc |
| the data storage of the current image (not the image itself, but meta data a pointer to it)
|
bool ** | isAllocated |
| for each image in the filterbank, a bool to account whether the pointer is to an external resource or a self-allocated resource
|
bool | accessed |
| marked true once getImage is called, reset to false with each new image (i.e. processEvent())
|
Private Member Functions |
| BufferedImageGenerator (const BufferedImageGenerator &) |
| don't call
|
BufferedImageGenerator & | operator= (const BufferedImageGenerator &) |
| don't call
|
Classes |
struct | ImageSource |
| Stores information about the current frame, (not the image itself, but meta data a pointer to it). More...
|
Constructor & Destructor Documentation
virtual BufferedImageGenerator::~BufferedImageGenerator |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
void BufferedImageGenerator::calcImage |
( |
unsigned int |
layer, |
|
|
unsigned int |
channel |
|
) |
[protected, virtual] |
|
unsigned char * BufferedImageGenerator::createImageCache |
( |
unsigned int |
layer, |
|
|
unsigned int |
channel |
|
) |
const [protected, virtual] |
|
|
create new image data storage area for the cache - this called by getImage() only when the corresponding entry in images is NULL
You should return the pointer you want stored in images to be returned by any calls to getFirstRow. Interpretation of the data it points to is dependant on the the generator which creates it
Implements FilterBankGenerator.
Definition at line 260 of file BufferedImageGenerator.cc.
Referenced by LoadBuffer(). |
void BufferedImageGenerator::destruct |
( |
|
) |
[protected, virtual] |
|
virtual void BufferedImageGenerator::DoStart |
( |
|
) |
[inline, virtual] |
|
|
need to override EventGeneratorBase's lazy listening -- as a root stage, need to remember each frame, just in case it might be used
Reimplemented from EventGeneratorBase.
Definition at line 56 of file BufferedImageGenerator.h. |
void BufferedImageGenerator::freeCaches |
( |
|
) |
[virtual] |
|
|
deletes storage of cached images and marks it invalid
you should override this if the images cache pointer isn't actually an array of bytes... Don't forget to call it in your subclass's destructor or your version won't get called...
Reimplemented from FilterBankGenerator.
Definition at line 244 of file BufferedImageGenerator.cc.
Referenced by processEvent(). |
unsigned int BufferedImageGenerator::getBinSize |
( |
|
) |
const [virtual] |
|
|
calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.
- Returns:
- number of bytes read/written, 0 if error (or empty)
Reimplemented from FilterBankGenerator.
Definition at line 86 of file BufferedImageGenerator.cc. |
unsigned char * BufferedImageGenerator::getImage |
( |
unsigned int |
layer, |
|
|
unsigned int |
channel |
|
) |
[virtual] |
|
void BufferedImageGenerator::invalidateCaches |
( |
|
) |
[virtual] |
|
unsigned int BufferedImageGenerator::LoadBuffer |
( |
const char |
buf[], |
|
|
unsigned int |
len |
|
) |
[virtual] |
|
void BufferedImageGenerator::processEvent |
( |
const EventBase & |
event |
) |
[virtual] |
|
|
default implementation does a few common housekeeping chores for you - probably should just take a look at its code
It doesn't throw any events for you - that's probably the main reason you'd still want to override it
Also, if your class has a set number of layers or channels - for instance, always 1 channel like InterleavedYUVGenerator, you should override setNumImages() to enforce that constraint by throwing away the appropriate argument and passing the your own value to the superclass implementation.
Reimplemented from FilterBankGenerator.
Definition at line 13 of file BufferedImageGenerator.cc. |
unsigned int BufferedImageGenerator::SaveBuffer |
( |
char |
buf[], |
|
|
unsigned int |
len |
|
) |
const [virtual] |
|
|
Save to a given buffer.
- Parameters:
-
| buf | pointer to the memory where you should begin writing |
| len | length of buf available. (this isn't all yours, constrain yourself to what you returned in getBinSize() ) |
- Returns:
- the number of bytes actually used
Reimplemented from FilterBankGenerator.
Definition at line 122 of file BufferedImageGenerator.cc. |
unsigned int BufferedImageGenerator::SaveFileStream |
( |
FILE * |
f |
) |
const [virtual] |
|
void BufferedImageGenerator::setDimensions |
( |
|
) |
[protected, virtual] |
|
void BufferedImageGenerator::setNumImages |
( |
unsigned int |
nLayers, |
|
|
unsigned int |
nChannels |
|
) |
[protected, virtual] |
|
|
resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor
In general, it isn't expected that FilterBankGenerator's should necessarily be dynamically resizeable (although it would be nice), which is why this isn't public. If yours is, just add some pubic accessor functions which call this. In general, the included subclasses should be able to handle being resized, but there's no reason to do so since the system won't be changing its available resolutions at run time.
The default implementation is a no-op if(numLayers==nLayers && numChannels==nChannels)
Reimplemented from FilterBankGenerator.
Definition at line 324 of file BufferedImageGenerator.cc.
Referenced by BufferedImageGenerator(). |
void BufferedImageGenerator::upsampleImage |
( |
unsigned int |
srcLayer, |
|
|
unsigned int |
chan, |
|
|
unsigned int |
destLayer |
|
) |
[protected, virtual] |
|
|
duplicates pixels to make a higher resolution version of srcLayer, chan into destLayer, chan
Doesn't do anything fancy like blurring or smoothing
Definition at line 334 of file BufferedImageGenerator.cc.
Referenced by calcImage(). |
Member Data Documentation
The documentation for this class was generated from the following files:
|