DataTranslator Class Reference

An unidirectional data translator (codec). More...

#include <yatephone.h>

Inheritance diagram for DataTranslator:
DataConsumer DataNode RefObject GenObject

List of all members.

Public Member Functions

 DataTranslator (const char *sFormat, const char *dFormat)
 DataTranslator (const char *sFormat, DataSource *source=0)
 ~DataTranslator ()
virtual void * getObject (const String &name) const
virtual bool valid () const
virtual DataSourcegetTransSource () const
DataTranslatorgetFirstTranslator ()
const DataTranslatorgetFirstTranslator () const

Static Public Member Functions

static ObjListsrcFormats (const DataFormat &dFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)
static ObjListdestFormats (const DataFormat &sFormat="slin", int maxCost=-1, unsigned int maxLen=0, ObjList *lst=0)
static ObjListallFormats (const ObjList *formats, bool existing=true, bool sameRate=true, bool sameChans=true)
static ObjListallFormats (const String &formats, bool existing=true, bool sameRate=true, bool sameChans=true)
static bool canConvert (const DataFormat &fmt1, const DataFormat &fmt2="slin")
static int cost (const DataFormat &sFormat, const DataFormat &dFormat)
static DataTranslatorcreate (const DataFormat &sFormat, const DataFormat &dFormat)
static bool attachChain (DataSource *source, DataConsumer *consumer, bool override=false)
static bool detachChain (DataSource *source, DataConsumer *consumer)
static void setMaxChain (unsigned int maxChain)

Protected Member Functions

virtual bool synchronize (DataSource *source)

Static Protected Member Functions

static void install (TranslatorFactory *factory)
static void uninstall (TranslatorFactory *factory)

Friends

class TranslatorFactory

Detailed Description

An unidirectional data translator (codec).

The DataTranslator holds a translator (codec) capable of unidirectional conversion of data from one type to another.


Constructor & Destructor Documentation

DataTranslator ( const char *  sFormat,
const char *  dFormat 
)

Construct a data translator.

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)
DataTranslator ( const char *  sFormat,
DataSource source = 0 
)

Creates a data translator from an existing source, does not increment the source's reference counter.

Parameters:
sFormat Name of the source format (data received from the consumer)
source Optional pointer to a DataSource object
~DataTranslator (  ) 

Destroys the translator and its source


Member Function Documentation

static ObjList* allFormats ( const String formats,
bool  existing = true,
bool  sameRate = true,
bool  sameChans = true 
) [static]

Get a list of formats supported by transcoding for a given format list

Parameters:
formats Data format names as comma separated list
existing Also return formats already existing in the initial list
sameRate Only return formats with same sampling rate
sameChans Only return formats with same number of channels
Returns:
List of format names, must be freed by the caller
static ObjList* allFormats ( const ObjList formats,
bool  existing = true,
bool  sameRate = true,
bool  sameChans = true 
) [static]

Get a list of formats supported by transcoding for a given format list

Parameters:
formats List of data format names
existing Also return formats already existing in the initial list
sameRate Only return formats with same sampling rate
sameChans Only return formats with same number of channels
Returns:
List of format names, must be freed by the caller
static bool attachChain ( DataSource source,
DataConsumer consumer,
bool  override = false 
) [static]

Attach a consumer to a source, possibly trough a chain of translators

Parameters:
source Source to attach the chain to
consumer Consumer where the chain ends
override Attach chain for temporary source override
Returns:
True if successfull, false if no translator chain could be built
static bool canConvert ( const DataFormat fmt1,
const DataFormat fmt2 = "slin" 
) [static]

Check if bidirectional conversion can be performed by installed translators

Parameters:
fmt1 Name of the first data format
fmt2 Name of the second data format
Returns:
True if translators can be created for both directions
static int cost ( const DataFormat sFormat,
const DataFormat dFormat 
) [static]

Finds the cost of a translator given the source and destination format names

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)
Returns:
Cost of best (cheapest) codec or -1 if no known codec exists
static DataTranslator* create ( const DataFormat sFormat,
const DataFormat dFormat 
) [static]

Creates a translator given the source and destination format names

Parameters:
sFormat Name of the source format (data received from the consumer)
dFormat Name of the destination format (data supplied to the source)
Returns:
A pointer to a DataTranslator object or NULL if no known codec exists
static ObjList* destFormats ( const DataFormat sFormat = "slin",
int  maxCost = -1,
unsigned int  maxLen = 0,
ObjList lst = 0 
) [static]

Get a list of formats supported for a given input format

Parameters:
sFormat Name of source format
maxCost Maximum cost of candidates to consider, -1 to accept all
maxLen Maximum length of codec chains to consider, 0 to accept all
lst Initial list, will append to it if not empty
Returns:
List of destination format names, must be freed by the caller
static bool detachChain ( DataSource source,
DataConsumer consumer 
) [static]

Detach a consumer from a source, possibly trough a chain of translators

Parameters:
source Source to dettach the chain from
consumer Consumer where the chain ends
Returns:
True if successfull, false if source and consumers were not attached
const DataTranslator* getFirstTranslator (  )  const

Constant version to get the first translator from a chain

Returns:
Pointer to the first translator in a chain
DataTranslator* getFirstTranslator (  ) 

Get the first translator from a chain

Returns:
Pointer to the first translator in a chain
virtual void* getObject ( const String name  )  const [virtual]

Get a pointer to a derived class given that class name

Parameters:
name Name of the class we are asking for
Returns:
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from DataConsumer.

virtual DataSource* getTransSource (  )  const [inline, virtual]

Get the data source of a translator object

Returns:
A pointer to the DataSource object or NULL

Reimplemented from DataConsumer.

static void install ( TranslatorFactory factory  )  [static, protected]

Install a Translator Factory in the list of known codecs

Parameters:
factory A pointer to a TranslatorFactory instance

Referenced by TranslatorFactory::TranslatorFactory().

static void setMaxChain ( unsigned int  maxChain  )  [static]

Set the length of the longest translator chain we are allowed to create

Parameters:
maxChain Desired longest chain length
static ObjList* srcFormats ( const DataFormat dFormat = "slin",
int  maxCost = -1,
unsigned int  maxLen = 0,
ObjList lst = 0 
) [static]

Get a list of formats supported for a given output format.

Parameters:
dFormat Name of destination format
maxCost Maximum cost of candidates to consider, -1 to accept all
maxLen Maximum length of codec chains to consider, 0 to accept all
lst Initial list, will append to it if not empty
Returns:
List of source format names, must be freed by the caller
virtual bool synchronize ( DataSource source  )  [protected, virtual]

Synchronize the consumer with a source

Parameters:
source Data source to copy the timestamp from
Returns:
True if we could synchronize with the source

Reimplemented from DataConsumer.

static void uninstall ( TranslatorFactory factory  )  [static, protected]

Remove a Translator Factory from the list of known codecs

Parameters:
factory A pointer to a TranslatorFactory instance
virtual bool valid (  )  const [inline, virtual]

Check if the data translator has a valid source

Returns:
True if still valid, false if node should be removed

Reimplemented from DataNode.


The documentation for this class was generated from the following file:
Generated on Thu Apr 8 18:19:42 2010 for Yate by  doxygen 1.6.3