1f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/*
2f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
3f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
4f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
5f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
6f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
7f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "LETypes.h"
8f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "loengine.h"
9f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "PortableFontInstance.h"
10f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "SimpleFontInstance.h"
11f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
12f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_CDECL_BEGIN
13f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
14f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)le_font *le_portableFontOpen(const char *fileName,
15f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)					float pointSize,
16f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)					LEErrorCode *status)
17f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
18f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	return (le_font *) new PortableFontInstance(fileName, pointSize, *status);
19f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
20f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
21f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)le_font *le_simpleFontOpen(float pointSize,
22f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)				  LEErrorCode *status)
23f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
24f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	return (le_font *) new SimpleFontInstance(pointSize, *status);
25f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
26f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
27f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)void le_fontClose(le_font *font)
28f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
29f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	LEFontInstance *fontInstance = (LEFontInstance *) font;
30f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
31f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	delete fontInstance;
32f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
33f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
34f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)const char *le_getNameString(le_font *font, le_uint16 nameID, le_uint16 platform, le_uint16 encoding, le_uint16 language)
35f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
36f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	PortableFontInstance *pfi = (PortableFontInstance *) font;
37f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
38f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	return pfi->getNameString(nameID, platform, encoding, language);
39f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
40f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
41f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)const LEUnicode16 *le_getUnicodeNameString(le_font *font, le_uint16 nameID, le_uint16 platform, le_uint16 encoding, le_uint16 language)
42f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
43f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	PortableFontInstance *pfi = (PortableFontInstance *) font;
44f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
45f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	return pfi->getUnicodeNameString(nameID, platform, encoding, language);
46f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
47f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
48f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)void le_deleteNameString(le_font *font, const char *name)
49f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
50f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	PortableFontInstance *pfi = (PortableFontInstance *) font;
51f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
52f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	pfi->deleteNameString(name);
53f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
54f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
55f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)void le_deleteUnicodeNameString(le_font *font, const LEUnicode16 *name)
56f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
57f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	PortableFontInstance *pfi = (PortableFontInstance *) font;
58f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
59f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	pfi->deleteNameString(name);
60f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
61f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
62f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)le_uint32 le_getFontChecksum(le_font *font)
63f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){
64f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	PortableFontInstance *pfi = (PortableFontInstance *) font;
65f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
66f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)	return pfi->getFontChecksum();
67f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}
68f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
69f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_CDECL_END
70