# type.c File Reference

`#include "magick/studio.h"`
`#include "magick/blob.h"`
`#include "magick/client.h"`
`#include "magick/configure.h"`
`#include "magick/draw.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/hashmap.h"`
`#include "magick/log.h"`
`#include "magick/memory_.h"`
`#include "magick/option.h"`
`#include "magick/semaphore.h"`
`#include "magick/splay-tree.h"`
`#include "magick/string_.h"`
`#include "magick/type.h"`
`#include "magick/token.h"`
`#include "magick/utility.h"`
`#include "magick/xml-tree.h"`
`#include "fontconfig/fontconfig.h"`

## Defines

#define | FC_WIDTH "width"
#define | FC_WIDTH_ULTRACONDENSED 50
#define | FC_WIDTH_EXTRACONDENSED 63
#define | FC_WIDTH_CONDENSED 75
#define | FC_WIDTH_SEMICONDENSED 87
#define | FC_WIDTH_NORMAL 100
#define | FC_WIDTH_SEMIEXPANDED 113
#define | FC_WIDTH_EXPANDED 125
#define | FC_WIDTH_EXTRAEXPANDED 150
#define | FC_WIDTH_ULTRAEXPANDED 200
#define | FC_WEIGHT_THIN 0
#define | FC_WEIGHT_EXTRALIGHT 40
#define | FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
#define | FC_WEIGHT_LIGHT 50
#define | FC_WEIGHT_BOOK 75
#define | FC_WEIGHT_REGULAR 80
#define | FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
#define | FC_WEIGHT_MEDIUM 100
#define | FC_WEIGHT_DEMIBOLD 180
#define | FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
#define | FC_WEIGHT_BOLD 200
#define | FC_WEIGHT_EXTRABOLD 205
#define | FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
#define | FC_WEIGHT_BLACK 210
#define | FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
#define | MagickTypeFilename "type.xml"

## Functions

static MagickBooleanType | InitializeTypeList (ExceptionInfo *)
static MagickBooleanType | LoadTypeLists (const char *, ExceptionInfo *)
MagickExport void | DestroyTypeList (void)
MagickExport const TypeInfo * | GetTypeInfo (const char *name, ExceptionInfo *exception)
static unsigned long | MagickMax (const unsigned long x, const unsigned long y)
static unsigned long | MagickMin (const unsigned long x, const unsigned long y)
MagickExport const TypeInfo * | GetTypeInfoByFamily (const char *family, const StyleType style, const StretchType stretch, const unsigned long weight, ExceptionInfo *exception)
static int | TypeInfoCompare (const void *x, const void *y)
MagickExport const TypeInfo ** | GetTypeInfoList (const char *pattern, unsigned long *number_fonts, ExceptionInfo *exception)
static int | TypeCompare (const void *x, const void *y)
MagickExport char ** | GetTypeList (const char *pattern, unsigned long *number_fonts, ExceptionInfo *exception)
MagickExport MagickBooleanType | LoadFontConfigFonts (SplayTreeInfo *type_list, ExceptionInfo *exception)
MagickExport MagickBooleanType | ListTypeInfo (FILE *file, ExceptionInfo *exception)
static void * | DestroyTypeNode (void *type_info)
static MagickBooleanType | LoadTypeList (const char *xml, const char *filename, const unsigned long depth, ExceptionInfo *exception)

## Variables

static const char * | TypeMap
static SemaphoreInfo * | type_semaphore = (SemaphoreInfo *) NULL
static volatile MagickBooleanType | instantiate_type = MagickFalse
static SplayTreeInfo * | type_list = (SplayTreeInfo *) NULL

## Define Documentation

#define FC_WEIGHT_BLACK 210

#define FC_WEIGHT_BOLD 200

#define FC_WEIGHT_BOOK 75

#define FC_WEIGHT_DEMIBOLD 180

#define FC_WEIGHT_EXTRABOLD 205

#define FC_WEIGHT_EXTRALIGHT 40

#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK

#define FC_WEIGHT_LIGHT 50

#define FC_WEIGHT_MEDIUM 100

#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR

#define FC_WEIGHT_REGULAR 80

#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD

#define FC_WEIGHT_THIN 0

#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD

#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT

#define FC_WIDTH "width"

#define FC_WIDTH_CONDENSED 75

#define FC_WIDTH_EXPANDED 125

#define FC_WIDTH_EXTRACONDENSED 63

#define FC_WIDTH_EXTRAEXPANDED 150

#define FC_WIDTH_NORMAL 100

#define FC_WIDTH_SEMICONDENSED 87

#define FC_WIDTH_SEMIEXPANDED 113

#define FC_WIDTH_ULTRACONDENSED 50

#define FC_WIDTH_ULTRAEXPANDED 200

#define MagickTypeFilename "type.xml"

## Function Documentation

MagickExport void DestroyTypeList | ( | void |  | ) |

static void* DestroyTypeNode | ( | void * | type_info | ) | `[static]`

MagickExport const TypeInfo* GetTypeInfo | ( | const char * | name,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport const TypeInfo* GetTypeInfoByFamily | ( | const char * | family,
|  | const StyleType | style,
|  | const StretchType | stretch,
|  | const unsigned long | weight,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport const TypeInfo** GetTypeInfoList | ( | const char * | pattern,
|  | unsigned long * | number_fonts,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport char** GetTypeList | ( | const char * | pattern,
|  | unsigned long * | number_fonts,
|  | ExceptionInfo * | exception |
| ) |  |  |

static MagickBooleanType InitializeTypeList | ( | ExceptionInfo * | exception | ) | `[static]`

MagickExport MagickBooleanType ListTypeInfo | ( | FILE * | file,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport MagickBooleanType LoadFontConfigFonts | ( | SplayTreeInfo * | type_list,
|  | ExceptionInfo * | exception |
| ) |  |  |

static MagickBooleanType LoadTypeList | ( | const char * | xml,
|  | const char * | filename,
|  | const unsigned long | depth,
|  | ExceptionInfo * | exception |
| ) |  |  | `[static]`

static MagickBooleanType LoadTypeLists | ( | const char * | filename,
|  | ExceptionInfo * | exception |
| ) |  |  |

static unsigned long MagickMax | ( | const unsigned long | x,
|  | const unsigned long | y |
| ) |  |  | `[inline, static]`

static unsigned long MagickMin | ( | const unsigned long | x,
|  | const unsigned long | y |
| ) |  |  | `[inline, static]`

static int TypeCompare | ( | const void * | x,
|  | const void * | y |
| ) |  |  | `[static]`

static int TypeInfoCompare | ( | const void * | x,
|  | const void * | y |
| ) |  |  | `[static]`

## Variable Documentation

volatile MagickBooleanType instantiate_type = MagickFalse`[static]`

SplayTreeInfo* type_list = (SplayTreeInfo *) NULL`[static]`

SemaphoreInfo* type_semaphore = (SemaphoreInfo *) NULL`[static]`

const char* TypeMap`[static]`

Initial value:

     (const char *)
        "<?xml version=\"1.0\"?>"
        "<typemap>"
        "  <type stealth=\"True\" name=\"fixed\" family=\"helvetica\"/>"
        "  <type stealth=\"True\" name=\"helvetica\" family=\"helvetica\"/>"
        "</typemap>"