Using the Converter tools:
--------------------------

To add your own converter functions to the package, use
RegisterConverter (class, type, name, function).

The class can, for instance, be "MARC" to illustrate that your
function is operating within the realm of different MARC formats.

The type can be one of "convert_in" and "convert_out", and specifies
whether your function converts to or from the specified format.

The name specifies which variation of the class the function is
converting to or from.  Examples of possible names within the
"MARC" class can be "NORMARC-data", "NORMARC-text", "USMARC-text", etc.
Imaginable names within other classes could be "GIF" and "JPEG",
"POSTSCRIPT", "MIME", etc.

The "function" argument is your own function.  The object file containing
this function must be linked with the converter package.

Each class has its own internal format for storing the data.
The definition of the format used for the MARC class can be found
in marc/marc.h (MarcRecord).  Each converter function which converts
to a format within this class, takes the internal format as
input (the function gets a pointer to this format as argument).
Likewise, those functions converting from any format within this
class uses the internal format as output (they are supposed to
return a pointer to the internal format).

If you have a function which frees the internal format, you should
use RegisterClassFree (class, function) to specify it to the converter
to avoid memory leaks.

Converting data:
----------------

Use the Convert() function to actually convert data:

CV_Status
Convert(char *class, char *name_in, char *name_out,
        void *data_in, void **data_out)

This function returns CV_OK on success.
name_in and name_out represent the two different formats within the
same class to convert between.
