1/***********************************************************************
2 *                                                                     *
3 * $Id: hpgsplugin.h 325 2006-04-22 20:01:11Z softadm $
4 *                                                                     *
5 * hpgs - HPGl Script, a hpgl/2 interpreter, which uses a Postscript   *
6 *        API for rendering a scene and thus renders to a variety of   *
7 *        devices and fileformats.                                     *
8 *                                                                     *
9 * (C) 2004-2006 ev-i Informationstechnologie GmbH  http://www.ev-i.at *
10 *                                                                     *
11 * Author: Wolfgang Glas                                               *
12 *                                                                     *
13 *  hpgs is free software; you can redistribute it and/or              *
14 * modify it under the terms of the GNU Lesser General Public          *
15 * License as published by the Free Software Foundation; either        *
16 * version 2.1 of the License, or (at your option) any later version.  *
17 *                                                                     *
18 * hpgs is distributed in the hope that it will be useful,             *
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of      *
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   *
21 * Lesser General Public License for more details.                     *
22 *                                                                     *
23 * You should have received a copy of the GNU Lesser General Public    *
24 * License along with this library; if not, write to the               *
25 * Free Software  Foundation, Inc., 59 Temple Place, Suite 330,        *
26 * Boston, MA  02111-1307  USA                                         *
27 *                                                                     *
28 ***********************************************************************
29 *                                                                     *
30 * The extension classes located in my device plugin.                  *
31 *                                                                     *
32 ***********************************************************************/
33
34#ifndef	__HPGS_PLUGIN_H
35#define	__HPGS_PLUGIN_H
36
37#include<hpgs.h>
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43#ifdef HPGS_SHARED
44# ifdef WIN32
45#  ifdef __GNUC__
46#   ifdef HPGS_BUILD_PLUGIN
47#    define HPGS_PLUGIN_API __attribute__((dllexport))
48#   else
49#    define HPGS_PLUGIN_API __attribute__((dllimport))
50#   endif
51#  else
52#   ifdef HPGS_BUILD_PLUGIN
53#    define HPGS_PLUGIN_API __declspec(dllexport)
54#   else
55#    define HPGS_PLUGIN_API __declspec(dllimport)
56#   endif
57#  endif
58# else
59#  define HPGS_PLUGIN_API
60# endif
61#else
62# define HPGS_PLUGIN_API
63#endif
64
65
66HPGS_PLUGIN_API int hpgs_plugin_new_device(hpgs_device **device,
67                                           void **asset_ctxt,
68                                           hpgs_reader_asset_func_t *page_asset_func,
69                                           void **frame_asset_ctxt,
70                                           hpgs_reader_asset_func_t *frame_asset_func,
71                                           const char *dev_name,
72                                           const char *out_fn,
73                                           const hpgs_bbox *bb,
74                                           double xres, double yres,
75                                           hpgs_bool do_rop3,
76                                           int argc, const char *argv[]);
77
78HPGS_PLUGIN_API void hpgs_plugin_version(int * major, int *minor);
79
80HPGS_PLUGIN_API void hpgs_plugin_init();
81HPGS_PLUGIN_API void hpgs_plugin_cleanup();
82
83#ifdef __cplusplus
84} // end of extern "C"
85#endif
86
87#endif /* ! __HPGS_H */
88