ftbzip2.h revision ec0bab5697bb31ba980810145f62e3799946ec60
1071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/***************************************************************************/
2071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*                                                                         */
3071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  ftbzip2.h                                                              */
4071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*                                                                         */
5071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*    Bzip2-compressed stream support.                                     */
6071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*                                                                         */
7071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  Copyright 2010 by                                                      */
8071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  Joel Klinghed.                                                         */
9071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*                                                                         */
10fc8f0e14ad142ed811e90fbd9a30e419e301c717Chris Lattner/*  This file is part of the FreeType project, and may only be used,       */
11071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  modified, and distributed under the terms of the FreeType project      */
12071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  this file you indicate that you have read the license and              */
14071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*  understand and accept it fully.                                        */
15071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/*                                                                         */
16071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/***************************************************************************/
17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
18071cc7deffad608165b1ddd5263e8bf181861520Charles Davis
19942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#ifndef __FTBZIP2_H__
20dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson#define __FTBZIP2_H__
21dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson
22dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson#include <ft2build.h>
23071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#include FT_FREETYPE_H
24071cc7deffad608165b1ddd5263e8bf181861520Charles Davis
25071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#ifdef FREETYPE_H
26071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#error "freetype.h of FreeType 1 has been loaded!"
27942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#error "Please fix the directory search order for header files"
28942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#error "so that freetype.h of FreeType 2 is found first."
29942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#endif
30942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner
31942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner
32651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesFT_BEGIN_HEADER
33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  /*************************************************************************/
35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  /*                                                                       */
36942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  /* <Section>                                                             */
37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  /*    bzip2                                                              */
38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  /*                                                                       */
39651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  /* <Title>                                                               */
40942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  /*    BZIP2 Streams                                                      */
41942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  /*                                                                       */
42942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  /* <Abstract>                                                            */
43071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  /*    Using bzip2-compressed font files.                                 */
44071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  /*                                                                       */
45071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  /* <Description>                                                         */
46071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  /*    This section contains the declaration of Bzip2-specific functions. */
47071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  /*                                                                       */
4884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  /*************************************************************************/
49651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
50424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis
51651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /************************************************************************
52a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  *
53a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  * @function:
54424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis  *   FT_Stream_OpenBzip2
55a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  *
56424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis  * @description:
57dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *   Open a new stream to parse bzip2-compressed font files.  This is
58651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  *   mainly used to support the compressed `*.pcf.bz2' fonts that come
59dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *   with XFree86.
60dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *
61dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  * @input:
62dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *   stream ::
63dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *     The target embedding stream.
64dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *
65dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *   source ::
665c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck  *     The source stream.
67bcfd1f55bfbb3e5944cd5e03d07b343e280838c4Douglas Gregor  *
685c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck  * @return:
695c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck  *   FreeType error code.  0~means success.
70dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson  *
71942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  * @note:
72651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  *   The source stream must be opened _before_ calling this function.
73942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  *
74942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner  *   Calling the internal function `FT_Stream_Close' on the new stream will
75071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  *   *not* call `FT_Stream_Close' on the source stream.  None of the stream
76071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  *   objects will be released to the heap.
77071cc7deffad608165b1ddd5263e8bf181861520Charles Davis  *
7884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   The stream implementation is very basic and resets the decompression
7984e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   process each time seeking backwards is needed within the stream.
8084e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *
81a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  *   In certain builds of the library, bzip2 compression recognition is
8284e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   automatically handled when calling @FT_New_Face or @FT_Open_Face.
8384e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   This means that if no font driver is capable of handling the raw
8484e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   compressed file, the library will try to open a bzip2 compressed stream
8584e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   from it and re-open the face with it.
86a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  *
87a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer  *   This function may return `FT_Err_Unimplemented_Feature' if your build
8884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  *   of FreeType was not compiled with bzip2 support.
8984e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  */
9084e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  FT_EXPORT( FT_Error )
9184e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner  FT_Stream_OpenBzip2( FT_Stream  stream,
9284e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner                       FT_Stream  source );
9384e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner
9484e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner /* */
95651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
96ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
97651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesFT_END_HEADER
98651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
99651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#endif /* __FTBZIP2_H__ */
100651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
101651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
102651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines/* END */
1034410489163931892b568f0a43bd49c430a3aa3f5Reid Kleckner