1/* SPDX-License-Identifier: MIT OR MPL-2.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later */
2/* Copyright 2010, SIL International, All rights reserved. */
3#pragma once
4
5#include <graphite2/Types.h>
6#include <graphite2/Font.h>
7#include <stdio.h>
8
9#ifdef __cplusplus
10extern "C"
11{
12#endif
13
14/** deprecated mechanism that doesn't do anything now. */
15typedef enum {
16 GRLOG_NONE = 0x0,
17 GRLOG_FACE = 0x01,
18 GRLOG_SEGMENT = 0x02,
19 GRLOG_PASS = 0x04,
20 GRLOG_CACHE = 0x08,
21
22 GRLOG_OPCODE = 0x80,
23 GRLOG_ALL = 0xFF
24} GrLogMask;
25
26/** Start logging all segment creation and updates on the provided face. This
27 * is logged to a JSON file, see "Segment JSON Schema.txt" for a precise
28 * definition of the file
29 *
30 * @return true if the file was successfully created and logging is correctly
31 * initialised.
32 * @param face the gr_face whose segments you want to log to the given file
33 * @param log_path a utf8 encoded file name and path to log to.
34 */
35GR2_API bool gr_start_logging(gr_face * face, const char *log_path);
36
37
38/** Stop logging on the given face. This will close the log file created by
39 * gr_start_logging.
40 *
41 * @param face the gr_face whose segments you want to stop logging
42 */
43GR2_API void gr_stop_logging(gr_face * face);
44
45/** Start logging to a FILE object.
46 * This function is deprecated as of 1.2.0, use the _face versions instead.
47 *
48 * @return True on success
49 * @param logfile FILE reference to output logging to
50 * @param mask What aspects of logging to report (ignored)
51 */
52GR2_API bool graphite_start_logging(FILE * logFile, GrLogMask mask); //may not do anthing if disabled in the implementation of the engine.
53
54/** Stop logging to a FILE object.
55 * This function is deprecated as of 1.2.0, use the _face versions instead.
56 */
57GR2_API void graphite_stop_logging();
58
59#ifdef __cplusplus
60}
61#endif
62