/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- Ming_getFont
- Ming_loadFont
- Ming_cleanupFonts
#ifndef __C2MAN__
#include <string.h>
#include <stdlib.h>
#endif
#include "font_util.h"
#include "blocks/block.h"
#include "libming.h"
typedef struct
{
  char* name;
  SWFFont font;
} Ming_fontListStruct;
static Ming_fontListStruct *Ming_fontList = NULL;
static int Ming_numFonts = 0;
SWFFont
Ming_getFont(const char* name)
{
  int i;
  for ( i = 0; i < Ming_numFonts; ++i )
  {
    if ( strcmp(Ming_fontList[i].name, name) == 0 )
      return Ming_fontList[i].font;
  }
  return NULL;
}
SWFFont
Ming_loadFont(const char* path, const char* name)
{
  SWFFont font = newSWFFont_fromFile(path);
  if ( font == NULL )
    return NULL;
  Ming_fontList = (Ming_fontListStruct*)realloc(Ming_fontList,
                          (Ming_numFonts + 1) * sizeof(*Ming_fontList));
  Ming_fontList[Ming_numFonts].name = strdup(name);
  Ming_fontList[Ming_numFonts].font = font;
  ++Ming_numFonts;
  return font;
}
void
Ming_cleanupFonts()
{
  int i;
  for ( i = 0; i < Ming_numFonts; ++i )
  {
    free(Ming_fontList[i].name);
    destroySWFFont(Ming_fontList[i].font);
  }
  if ( Ming_fontList != NULL )
    free(Ming_fontList);
}