aboutsummaryrefslogtreecommitdiff
path: root/lib/pbdrv/index.dox
blob: e4a6c5f53134d1782e8d6a907de748cc1715f206 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// vim:ft=doxygen
/**

\defgroup pbdrv pbdrv
\brief Standalone puzzle bus driver

pbdrv is a standalone portable static library for handling (i.e.
(de)serialization) of puzzle bus messages.

\note Most \c pb_* functions have a weak implementation, which may be
overwritten by a custom implementation. This allows you to use the default
implementation where possible, and only implement extensions required for your
puzzle module.

TODO: where to find drivers
TODO: what are extensions
TODO: what to do if there is no driver / extension

\defgroup pbdrv-mod pbdrv-mod
\brief Puzzle module driver (superset of \ref pbdrv)

pbdrv-mod is a superset of \ref pbdrv, and includes functions specific to
puzzle bus modules. pbdrv-mod compiles to an object file instead of a static
library because it may depend on functions that rely on external libraries.
pbdrv-mod is still considered standalone, but requires either using an existing
driver, or (partially) implementing the driver functions.

\copydetails pbdrv

\{

\defgroup pb_hook Hook
\brief Functions for (partially) overriding default behavior

Hooks are functions that allow the user to implement custom behavior (i.e.
extend or conditionally replace the default handlers), without needing to
completely overwrite the built-in handlers or understand the internals of \ref
pbdrv.

\}

*/