annotate libcore/core/sys.h @ 241:76afe639fd72

misc: add support for NLS, closes #22510 @4h While here cleanup the path functions in sys.c/sys.h
author David Demelier <markand@malikania.fr>
date Sat, 28 Nov 2020 18:00:05 +0100
parents dd7c8d4321a3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * sys.h -- system routines
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MOLKO_SYS_H
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MOLKO_SYS_H
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 /**
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * \file sys.h
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * \brief System routines.
72
6203e1ac9b18 doc: improve doxygen documentation a lot
David Demelier <markand@malikania.fr>
parents: 59
diff changeset
25 * \ingroup basics
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
28 #include <stdarg.h>
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 #include <stdbool.h>
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 /**
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
32 * \brief Kind of special directories.
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
33 */
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
34 enum sys_dir {
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
35 SYS_DIR_BIN, /*!< Path to binaries. */
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
36 SYS_DIR_DATA, /*!< Directory containing data. */
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
37 SYS_DIR_LOCALE, /*!< Path to NLS catalogs. */
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
38 SYS_DIR_SAVE, /*!< User directory for save databases. */
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
39 };
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
40
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
41 /**
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
42 * Initialize the system.
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
43 *
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
44 * This function is automatically called from \ref core_init and thus not
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
45 * necessary from user.
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
46 *
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
47 * \pre organization != NULL
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
48 * \pre name != NULL
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
49 * \param organization the name of the organization
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
50 * \param name the game name
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
51 * \return False on error.
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 bool
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
54 sys_init(const char *organization, const char *name);
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
55
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
56 /**
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
57 * Get a system or user directory preferred for this platform.
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
58 *
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
59 * \pre kind must be valid
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
60 * \param kind kind of special directory
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
61 * \return A non-NULL pointer to a static storage path.
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
62 */
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
63 const char *
241
76afe639fd72 misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
64 sys_dir(enum sys_dir kind);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
65
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents: 72
diff changeset
66 /**
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 * Close the system.
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
68 *
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
69 * This function is automatically called from \ref core_finish and thus not
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
70 * necessary from user.
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 void
97
58133933ea17 window: expose some data to avoid functions
David Demelier <markand@malikania.fr>
parents: 84
diff changeset
73 sys_finish(void);
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 #endif /* !MOLKO_SYS_H */