Imported Upstream version 2.2.2
[platform/upstream/cups.git] / cups / transcode.h
1 /*
2  * Transcoding definitions for CUPS.
3  *
4  * Copyright 2007-2011 by Apple Inc.
5  * Copyright 1997-2006 by Easy Software Products.
6  *
7  * These coded instructions, statements, and computer programs are the
8  * property of Apple Inc. and are protected by Federal copyright
9  * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
10  * which should have been included with this file.  If this file is
11  * missing or damaged, see the license at "http://www.cups.org/".
12  *
13  * This file is subject to the Apple OS-Developed Software exception.
14  */
15
16 #ifndef _CUPS_TRANSCODE_H_
17 #  define _CUPS_TRANSCODE_H_
18
19 /*
20  * Include necessary headers...
21  */
22
23 #  include "language.h"
24
25 #  ifdef __cplusplus
26 extern "C" {
27 #  endif /* __cplusplus */
28
29
30 /*
31  * Constants...
32  */
33
34 #  define CUPS_MAX_USTRING      8192    /* Max size of Unicode string */
35
36
37 /*
38  * Types...
39  */
40
41 typedef unsigned char  cups_utf8_t;     /* UTF-8 Unicode/ISO-10646 unit */
42 typedef unsigned long  cups_utf32_t;    /* UTF-32 Unicode/ISO-10646 unit */
43 typedef unsigned short cups_ucs2_t;     /* UCS-2 Unicode/ISO-10646 unit */
44 typedef unsigned long  cups_ucs4_t;     /* UCS-4 Unicode/ISO-10646 unit */
45 typedef unsigned char  cups_sbcs_t;     /* SBCS Legacy 8-bit unit */
46 typedef unsigned short cups_dbcs_t;     /* DBCS Legacy 16-bit unit */
47 typedef unsigned long  cups_vbcs_t;     /* VBCS Legacy 32-bit unit */
48                                         /* EUC uses 8, 16, 24, 32-bit */
49
50
51 /*
52  * Prototypes...
53  */
54
55 extern int      cupsCharsetToUTF8(cups_utf8_t *dest,
56                                   const char *src,
57                                   const int maxout,
58                                   const cups_encoding_t encoding) _CUPS_API_1_2;
59 extern int      cupsUTF8ToCharset(char *dest,
60                                   const cups_utf8_t *src,
61                                   const int maxout,
62                                   const cups_encoding_t encoding) _CUPS_API_1_2;
63 extern int      cupsUTF8ToUTF32(cups_utf32_t *dest,
64                                 const cups_utf8_t *src,
65                                 const int maxout) _CUPS_API_1_2;
66 extern int      cupsUTF32ToUTF8(cups_utf8_t *dest,
67                                 const cups_utf32_t *src,
68                                 const int maxout) _CUPS_API_1_2;
69
70 #  ifdef __cplusplus
71 }
72 #  endif /* __cplusplus */
73
74 #endif /* !_CUPS_TRANSCODE_H_ */