GlkLoader is an implementation of the the Glk specification which simply loads another Glk library and passes all Glk calls through to it. The purpose is to allow a single executable to choose which Glk library to use at run-time, instead of at compile-time.
56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
/* glkstart.h: Unix-specific header file for GlkTerm, CheapGlk, and XGlk
|
|
(Unix implementations of the Glk API).
|
|
Designed by Andrew Plotkin <erkyrath@eblong.com>
|
|
http://www.eblong.com/zarf/glk/index.html
|
|
*/
|
|
|
|
/* This header defines an interface that must be used by program linked
|
|
with the various Unix Glk libraries -- at least, the three I wrote.
|
|
(I encourage anyone writing a Unix Glk library to use this interface,
|
|
but it's not part of the Glk spec.)
|
|
|
|
Because Glk is *almost* perfectly portable, this interface *almost*
|
|
doesn't have to exist. In practice, it's small.
|
|
*/
|
|
|
|
#ifndef GT_START_H
|
|
#define GT_START_H
|
|
|
|
/* We define our own TRUE and FALSE and NULL, because ANSI
|
|
is a strange world. */
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
#define glkunix_arg_End (0)
|
|
#define glkunix_arg_ValueFollows (1)
|
|
#define glkunix_arg_NoValue (2)
|
|
#define glkunix_arg_ValueCanFollow (3)
|
|
#define glkunix_arg_NumberValue (4)
|
|
|
|
typedef struct glkunix_argumentlist_struct {
|
|
char *name;
|
|
int argtype;
|
|
char *desc;
|
|
} glkunix_argumentlist_t;
|
|
|
|
typedef struct glkunix_startup_struct {
|
|
int argc;
|
|
char **argv;
|
|
} glkunix_startup_t;
|
|
|
|
extern glkunix_argumentlist_t glkunix_arguments[];
|
|
|
|
extern int glkunix_startup_code(glkunix_startup_t *data);
|
|
|
|
extern void glkunix_set_base_file(char *filename);
|
|
extern strid_t glkunix_stream_open_pathname(char *pathname, glui32 textmode,
|
|
glui32 rock);
|
|
|
|
#endif /* GT_START_H */
|