Another round of plugin keymaps for the Philips GoGear SA9200.
[kugel-rb.git] / apps / plugins / chessbox / chessbox_pgn.h
blobb7ff3f5b0c7a0e9b033caf0f5c0444e6272dfcde
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2007 Mauricio Peccorini
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #include "plugin.h"
23 #include "gnuchess.h"
25 /* button definitions */
26 #if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
27 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
28 #define CB_SELECT BUTTON_SELECT
29 #define CB_UP BUTTON_MENU
30 #define CB_DOWN BUTTON_PLAY
31 #define CB_LEFT BUTTON_LEFT
32 #define CB_RIGHT BUTTON_RIGHT
33 #define CB_PLAY (BUTTON_SELECT | BUTTON_PLAY)
34 #define CB_LEVEL (BUTTON_SELECT | BUTTON_RIGHT)
35 #define CB_RESTART (BUTTON_SELECT | BUTTON_LEFT)
36 #define CB_MENU (BUTTON_SELECT | BUTTON_MENU)
38 #define CB_SCROLL_UP (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
39 #define CB_SCROLL_DOWN (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
40 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
41 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
43 #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
44 #define CB_SELECT BUTTON_SELECT
45 #define CB_UP BUTTON_UP
46 #define CB_DOWN BUTTON_DOWN
47 #define CB_LEFT BUTTON_LEFT
48 #define CB_RIGHT BUTTON_RIGHT
49 #define CB_PLAY BUTTON_PLAY
50 #define CB_LEVEL BUTTON_REC
51 #define CB_RESTART (BUTTON_SELECT | BUTTON_PLAY)
52 #define CB_MENU BUTTON_POWER
54 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
55 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
56 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
57 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
59 #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
60 #define CB_SELECT BUTTON_SELECT
61 #define CB_UP BUTTON_UP
62 #define CB_DOWN BUTTON_DOWN
63 #define CB_LEFT BUTTON_LEFT
64 #define CB_RIGHT BUTTON_RIGHT
65 #define CB_PLAY BUTTON_ON
66 #define CB_LEVEL BUTTON_MODE
67 #define CB_RESTART BUTTON_REC
68 #define CB_MENU BUTTON_OFF
70 #define CB_RC_QUIT BUTTON_RC_STOP
72 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
73 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
74 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
75 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
77 #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
78 #define CB_SELECT BUTTON_SELECT
79 #define CB_UP BUTTON_UP
80 #define CB_DOWN BUTTON_DOWN
81 #define CB_LEFT BUTTON_LEFT
82 #define CB_RIGHT BUTTON_RIGHT
83 #define CB_PLAY BUTTON_PLAY
84 #define CB_LEVEL BUTTON_EQ
85 #define CB_MENU BUTTON_MODE
87 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
88 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
89 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
90 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
92 #elif CONFIG_KEYPAD == RECORDER_PAD
93 #define CB_SELECT BUTTON_PLAY
94 #define CB_UP BUTTON_UP
95 #define CB_DOWN BUTTON_DOWN
96 #define CB_LEFT BUTTON_LEFT
97 #define CB_RIGHT BUTTON_RIGHT
98 #define CB_PLAY BUTTON_ON
99 #define CB_LEVEL BUTTON_F1
100 #define CB_RESTART BUTTON_F3
101 #define CB_MENU BUTTON_OFF
103 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
104 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
105 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
106 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
108 #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
109 #define CB_SELECT BUTTON_SELECT
110 #define CB_UP BUTTON_UP
111 #define CB_DOWN BUTTON_DOWN
112 #define CB_LEFT BUTTON_LEFT
113 #define CB_RIGHT BUTTON_RIGHT
114 #define CB_PLAY BUTTON_ON
115 #define CB_LEVEL BUTTON_F1
116 #define CB_RESTART BUTTON_F3
117 #define CB_MENU BUTTON_OFF
119 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
120 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
121 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
122 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
124 #elif CONFIG_KEYPAD == ONDIO_PAD
125 #define CB_SELECT_PRE BUTTON_MENU
126 #define CB_SELECT (BUTTON_MENU|BUTTON_REL)
127 #define CB_UP BUTTON_UP
128 #define CB_DOWN BUTTON_DOWN
129 #define CB_LEFT BUTTON_LEFT
130 #define CB_RIGHT BUTTON_RIGHT
131 #define CB_PLAY_PRE BUTTON_MENU
132 #define CB_PLAY (BUTTON_MENU|BUTTON_REPEAT)
133 #define CB_LEVEL (BUTTON_MENU|BUTTON_OFF)
134 #define CB_RESTART (BUTTON_MENU|BUTTON_LEFT)
135 #define CB_MENU BUTTON_OFF
137 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
138 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
139 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
140 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
142 #elif (CONFIG_KEYPAD == GIGABEAT_PAD)
143 #define CB_SELECT BUTTON_SELECT
144 #define CB_UP BUTTON_UP
145 #define CB_DOWN BUTTON_DOWN
146 #define CB_LEFT BUTTON_LEFT
147 #define CB_RIGHT BUTTON_RIGHT
148 #define CB_PLAY BUTTON_A
149 #define CB_LEVEL BUTTON_MENU
150 #define CB_MENU BUTTON_POWER
152 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
153 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
154 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
155 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
157 #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
158 #define CB_SELECT BUTTON_SELECT
159 #define CB_UP BUTTON_UP
160 #define CB_DOWN BUTTON_DOWN
161 #define CB_LEFT BUTTON_LEFT
162 #define CB_RIGHT BUTTON_RIGHT
163 #define CB_PLAY BUTTON_PLAY
164 #define CB_LEVEL BUTTON_MENU
165 #define CB_MENU BUTTON_POWER
167 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
168 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
169 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
170 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
172 #elif CONFIG_KEYPAD == IRIVER_H10_PAD
173 #define CB_SELECT BUTTON_REW
174 #define CB_UP BUTTON_SCROLL_UP
175 #define CB_DOWN BUTTON_SCROLL_DOWN
176 #define CB_LEFT BUTTON_LEFT
177 #define CB_RIGHT BUTTON_RIGHT
178 #define CB_PLAY BUTTON_PLAY
179 #define CB_LEVEL BUTTON_FF
180 #define CB_RESTART (BUTTON_REW | BUTTON_PLAY)
181 #define CB_MENU BUTTON_POWER
183 #define CB_SCROLL_UP (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
184 #define CB_SCROLL_DOWN (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
185 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
186 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
188 #elif CONFIG_KEYPAD == SANSA_E200_PAD
189 #define CB_SELECT BUTTON_SELECT
190 #define CB_UP BUTTON_UP
191 #define CB_DOWN BUTTON_DOWN
192 #define CB_LEFT BUTTON_LEFT
193 #define CB_RIGHT BUTTON_RIGHT
194 #define CB_PLAY (BUTTON_SELECT | BUTTON_RIGHT)
195 #define CB_LEVEL BUTTON_REC
196 #define CB_RESTART (BUTTON_SELECT | BUTTON_REPEAT)
197 #define CB_MENU BUTTON_POWER
199 #define CB_SCROLL_UP (BUTTON_SCROLL_UP|BUTTON_REPEAT)
200 #define CB_SCROLL_DOWN (BUTTON_SCROLL_DOWN|BUTTON_REPEAT)
201 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
202 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
204 #elif CONFIG_KEYPAD == SANSA_FUZE_PAD
205 #define CB_SELECT BUTTON_SELECT
206 #define CB_UP BUTTON_UP
207 #define CB_DOWN BUTTON_DOWN
208 #define CB_LEFT BUTTON_LEFT
209 #define CB_RIGHT BUTTON_RIGHT
210 #define CB_PLAY (BUTTON_SELECT | BUTTON_RIGHT)
211 #define CB_LEVEL (BUTTON_SELECT|BUTTON_LEFT)
212 #define CB_RESTART (BUTTON_SELECT | BUTTON_REPEAT)
213 #define CB_MENU (BUTTON_HOME|BUTTON_REPEAT)
215 #define CB_SCROLL_UP (BUTTON_SCROLL_UP|BUTTON_REPEAT)
216 #define CB_SCROLL_DOWN (BUTTON_SCROLL_DOWN|BUTTON_REPEAT)
217 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
218 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
220 #elif CONFIG_KEYPAD == SANSA_CLIP_PAD
221 #define CB_SELECT BUTTON_SELECT
222 #define CB_UP BUTTON_UP
223 #define CB_DOWN BUTTON_DOWN
224 #define CB_LEFT BUTTON_LEFT
225 #define CB_RIGHT BUTTON_RIGHT
226 #define CB_PLAY BUTTON_VOL_UP
227 #define CB_LEVEL BUTTON_HOME
228 #define CB_MENU BUTTON_POWER
230 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
231 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
232 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
233 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
235 #elif CONFIG_KEYPAD == SANSA_M200_PAD
236 #define CB_SELECT (BUTTON_SELECT | BUTTON_REPEAT)
237 #define CB_UP BUTTON_UP
238 #define CB_DOWN BUTTON_DOWN
239 #define CB_LEFT BUTTON_LEFT
240 #define CB_RIGHT BUTTON_RIGHT
241 #define CB_PLAY BUTTON_VOL_UP
242 #define CB_LEVEL (BUTTON_SELECT | BUTTON_UP)
243 #define CB_MENU BUTTON_POWER
245 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
246 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
247 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
248 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
250 #elif CONFIG_KEYPAD == SANSA_C200_PAD
251 #define CB_SELECT BUTTON_SELECT
252 #define CB_UP BUTTON_UP
253 #define CB_DOWN BUTTON_DOWN
254 #define CB_LEFT BUTTON_LEFT
255 #define CB_RIGHT BUTTON_RIGHT
256 #define CB_PLAY BUTTON_VOL_UP
257 #define CB_LEVEL BUTTON_REC
258 #define CB_MENU BUTTON_POWER
260 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
261 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
262 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
263 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
265 #elif CONFIG_KEYPAD == MROBE500_PAD
267 #elif (CONFIG_KEYPAD == MROBE100_PAD)
268 #define CB_SELECT BUTTON_SELECT
269 #define CB_UP BUTTON_UP
270 #define CB_DOWN BUTTON_DOWN
271 #define CB_LEFT BUTTON_LEFT
272 #define CB_RIGHT BUTTON_RIGHT
273 #define CB_PLAY BUTTON_PLAY
274 #define CB_LEVEL BUTTON_DISPLAY
275 #define CB_MENU BUTTON_POWER
277 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
278 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
279 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
280 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
282 #elif CONFIG_KEYPAD == IAUDIO_M3_PAD
283 #define CB_SELECT BUTTON_RC_PLAY
284 #define CB_UP BUTTON_RC_VOL_UP
285 #define CB_DOWN BUTTON_RC_VOL_DOWN
286 #define CB_LEFT BUTTON_RC_REW
287 #define CB_RIGHT BUTTON_RC_FF
288 #define CB_PLAY BUTTON_RC_MODE
289 #define CB_LEVEL BUTTON_RC_MENU
290 #define CB_RESTART (BUTTON_RC_PLAY|BUTTON_REPEAT)
291 #define CB_MENU BUTTON_RC_REC
293 #define CB_SCROLL_UP (BUTTON_RC_VOL_UP|BUTTON_REPEAT)
294 #define CB_SCROLL_DOWN (BUTTON_RC_VOL_DOWN|BUTTON_REPEAT)
295 #define CB_SCROLL_LEFT (BUTTON_RC_REW|BUTTON_REPEAT)
296 #define CB_SCROLL_RIGHT (BUTTON_RC_FF|BUTTON_REPEAT)
298 #define CB_RC_QUIT BUTTON_REC
300 #elif CONFIG_KEYPAD == COWOND2_PAD
301 #define CB_LEVEL BUTTON_PLUS
302 #define CB_RESTART BUTTON_MINUS
303 #define CB_MENU (BUTTON_MENU|BUTTON_REL)
305 #elif CONFIG_KEYPAD == CREATIVEZVM_PAD
307 #define CB_SELECT BUTTON_PLAY
308 #define CB_UP BUTTON_UP
309 #define CB_DOWN BUTTON_DOWN
310 #define CB_LEFT BUTTON_LEFT
311 #define CB_RIGHT BUTTON_RIGHT
312 #define CB_PLAY BUTTON_SELECT
313 #define CB_LEVEL BUTTON_CUSTOM
314 #define CB_MENU BUTTON_MENU
316 #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
317 #define CB_SELECT BUTTON_SELECT
318 #define CB_UP BUTTON_UP
319 #define CB_DOWN BUTTON_DOWN
320 #define CB_LEFT BUTTON_LEFT
321 #define CB_RIGHT BUTTON_RIGHT
322 #define CB_PLAY BUTTON_VIEW
323 #define CB_LEVEL BUTTON_PLAYLIST
324 #define CB_MENU BUTTON_MENU
326 #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
327 #define CB_SELECT BUTTON_PLAY
328 #define CB_UP BUTTON_UP
329 #define CB_DOWN BUTTON_DOWN
330 #define CB_LEFT BUTTON_PREV
331 #define CB_RIGHT BUTTON_NEXT
332 #define CB_PLAY BUTTON_RIGHT
333 #define CB_LEVEL BUTTON_LEFT
334 #define CB_MENU BUTTON_MENU
336 #define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
337 #define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
338 #define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
339 #define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
341 #elif CONFIG_KEYPAD == ONDAVX747_PAD
342 #define CB_LEVEL BUTTON_VOL_UP
343 #define CB_RESTART BUTTON_VOL_DOWN
344 #define CB_MENU (BUTTON_MENU|BUTTON_REL)
346 #elif CONFIG_KEYPAD == ONDAVX777_PAD
347 #define CB_MENU BUTTON_POWER
349 #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
350 #define CB_SELECT (BUTTON_FFWD|BUTTON_RIGHT)
351 #define CB_UP BUTTON_UP
352 #define CB_DOWN BUTTON_DOWN
353 #define CB_LEFT BUTTON_LEFT
354 #define CB_RIGHT BUTTON_RIGHT
355 #define CB_PLAY BUTTON_PLAY
356 #define CB_LEVEL (BUTTON_FFWD|BUTTON_UP)
357 #define CB_MENU (BUTTON_FFWD|BUTTON_LEFT)
359 #else
360 #error No keymap defined!
361 #endif
363 #ifdef HAVE_TOUCHSCREEN
364 #ifndef CB_LEVEL
365 #define CB_LEVEL BUTTON_TOPLEFT
366 #endif
367 #ifndef CB_RESTART
368 #define CB_RESTART BUTTON_TOPRIGHT
369 #endif
370 #ifndef CB_MENU
371 #define CB_MENU (BUTTON_BOTTOMLEFT|BUTTON_REL)
372 #endif
373 #ifndef CB_PLAY
374 #define CB_PLAY (BUTTON_CENTER|BUTTON_REPEAT)
375 #endif
376 #ifndef CB_SELECT
377 #define CB_SELECT BUTTON_CENTER
378 #endif
379 #ifndef CB_UP
380 #define CB_UP BUTTON_TOPMIDDLE
381 #endif
382 #ifndef CB_DOWN
383 #define CB_DOWN BUTTON_BOTTOMMIDDLE
384 #endif
385 #ifndef CB_LEFT
386 #define CB_LEFT BUTTON_MIDLEFT
387 #endif
388 #ifndef CB_RIGHT
389 #define CB_RIGHT BUTTON_MIDRIGHT
390 #endif
391 #ifndef CB_SCROLL_UP
392 #define CB_SCROLL_UP (BUTTON_TOPMIDDLE|BUTTON_REPEAT)
393 #endif
394 #ifndef CB_SCROLL_DOWN
395 #define CB_SCROLL_DOWN (BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT)
396 #endif
397 #ifndef CB_SCROLL_LEFT
398 #define CB_SCROLL_LEFT (BUTTON_MIDLEFT|BUTTON_REPEAT)
399 #endif
400 #ifndef CB_SCROLL_RIGHT
401 #define CB_SCROLL_RIGHT (BUTTON_MIDRIGHT|BUTTON_REPEAT)
402 #endif
403 #endif
405 /* structure to represent the plies */
406 struct pgn_ply_node {
407 unsigned short player;
408 char pgn_text[9];
409 unsigned short row_from;
410 unsigned short column_from;
411 unsigned short row_to;
412 unsigned short column_to;
413 unsigned short taken_piece;
414 unsigned short promotion_piece;
415 bool enpassant;
416 bool castle;
417 bool promotion;
418 bool checkmate;
419 bool draw;
420 struct pgn_ply_node* prev_node;
421 struct pgn_ply_node* next_node;
424 /* structure to list the games */
425 struct pgn_game_node {
426 unsigned short game_number;
427 char white_player[20];
428 char black_player[20];
429 char game_date[11];
430 char result[8];
431 int pgn_line;
432 struct pgn_ply_node* first_ply;
433 struct pgn_game_node* next_node;
436 /* Return the list of games in a PGN file.
437 * Parsing of the games themselves is postponed until
438 * the user selects a game, that obviously saves processing
439 * and speeds up response when the user selects the file
441 struct pgn_game_node* pgn_list_games(const char* filename);
443 /* Show the list of games found in a file and allow the user
444 * to select a game to be parsed and showed
446 struct pgn_game_node* pgn_show_game_list(struct pgn_game_node* first_game);
448 /* Parse the pgn string of a game and assign it to the move
449 * list in the structure
451 void pgn_parse_game(const char* filename,
452 struct pgn_game_node* selected_game);
454 /* Initialize a new game structure with default values and make
455 * it ready to store the history of a newly played match
457 struct pgn_game_node* pgn_init_game(void);
459 /* Add a new ply to the game structure based on the positions */
460 void pgn_append_ply(struct pgn_game_node* game,
461 unsigned short ply_player, char *move_buffer, bool is_mate);
463 /* Set the result of the game if it was reached during the opponent's ply
465 void pgn_set_result(struct pgn_game_node* game,
466 bool is_mate);
468 /* Store a complete game in the PGN history file
470 void pgn_store_game(struct pgn_game_node* game);