/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
* This is GNU Go, a Go program. Contact gnugo@gnu.org, or see *
* http://www.gnu.org/software/gnugo/ for more information. *
* To facilitate development of the Go Text Protocol, the two *
* files gtp.c and gtp.h are licensed under less restrictive *
* terms than the rest of GNU Go. *
* Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 and *
* 2009 by the Free Software Foundation. *
* Permission is hereby granted, free of charge, to any person *
* obtaining a copy of this file gtp.h, to deal in the Software *
* without restriction, including without limitation the rights *
* to use, copy, modify, merge, publish, distribute, and/or *
* sell copies of the Software, and to permit persons to whom *
* the Software is furnished to do so, provided that the above *
* copyright notice(s) and this permission notice appear in all *
* copies of the Software and that both the above copyright *
* notice(s) and this permission notice appear in supporting *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY *
* KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR *
* PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO *
* EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS *
* NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR *
* CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING *
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF *
* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT *
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS *
* Except as contained in this notice, the name of a copyright *
* holder shall not be used in advertising or otherwise to *
* promote the sale, use or other dealings in this Software *
* without prior written authorization of the copyright holder. *
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* NOTE: GNU Go specific, workarounds dumb Windows sockets. */
/* Maximum allowed line length in GTP. */
/* Status returned from callback functions. */
/* Whether the GTP command was successful. */
/* Function pointer for callback functions. */
typedef int (*gtp_fn_ptr
)(char* s
);
/* Function pointer for vertex transform functions. */
typedef void (*gtp_transform_ptr
)(int ai
, int aj
, int* bi
, int* bj
);
/* Elements in the array of commands required by gtp_main_loop. */
void gtp_main_loop(struct gtp_command commands
[],
FILE* gtp_input
, FILE* gtp_output
, FILE* gtp_dump_commands
);
void gtp_internal_set_boardsize(int size
);
void gtp_set_vertex_transform_hooks(gtp_transform_ptr in
,
void gtp_mprintf(const char* format
, ...);
void gtp_printf(const char* format
, ...);
void gtp_start_response(int status
);
int gtp_finish_response(void);
int gtp_success(const char* format
, ...);
int gtp_failure(const char* format
, ...);
int gtp_decode_color(char* s
, int* color
);
int gtp_decode_coord(char* s
, int* m
, int* n
);
int gtp_decode_move(char* s
, int* color
, int* i
, int* j
);
void gtp_print_vertices(int n
, int movei
[], int movej
[]);
void gtp_print_vertex(int i
, int j
);
extern FILE* gtp_output_file
;