aubio
0.4.9
Toggle main menu visibility
Loading...
Searching...
No Matches
utils
log.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2016 Paul Brossier <piem@aubio.org>
3
4
This file is part of aubio.
5
6
aubio is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
aubio is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with aubio. If not, see <http://www.gnu.org/licenses/>.
18
19
*/
20
21
#ifndef AUBIO_LOG_H
22
#define AUBIO_LOG_H
23
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
27
28
/** \file
29
30
Logging features
31
32
This file specifies ::aubio_log_set_function and
33
::aubio_log_set_level_function, which let you define one or several custom
34
logging functions to redirect warnings and errors from aubio to your
35
application. The custom function should have the prototype defined in
36
::aubio_log_function_t.
37
38
After a call to ::aubio_log_set_level_function, ::aubio_log_reset can be used
39
to reset each logging functions to the default ones.
40
41
\example utils/test-log.c
42
43
*/
44
45
/** list of logging levels */
46
enum
aubio_log_level
{
47
AUBIO_LOG_ERR
,
/**< critical errors */
48
AUBIO_LOG_INF
,
/**< infos */
49
AUBIO_LOG_MSG
,
/**< general messages */
50
AUBIO_LOG_DBG
,
/**< debug messages */
51
AUBIO_LOG_WRN
,
/**< warnings */
52
AUBIO_LOG_LAST_LEVEL
,
/**< number of valid levels */
53
};
54
55
/** Logging function prototype, to be passed to ::aubio_log_set_function
56
57
\param level log level
58
\param message text to log
59
\param data optional closure used by the callback
60
61
See @ref utils/test-log.c for an example of logging function.
62
63
*/
64
typedef
void (*
aubio_log_function_t
)(
sint_t
level,
const
char_t
*message,
void
65
*data);
66
67
/** Set logging function for all levels
68
69
\param fun the function to be used to log, of type ::aubio_log_function_t
70
\param data optional closure to be passed to the function (can be NULL if
71
nothing to pass)
72
73
*/
74
void
aubio_log_set_function
(
aubio_log_function_t
fun,
void
* data);
75
76
/** Set logging function for a given level
77
78
\param level the level for which to set the logging function
79
\param fun the function to be used to log, of type ::aubio_log_function_t
80
\param data optional closure to be passed to the function (can be NULL if
81
nothing to pass)
82
83
*/
84
aubio_log_function_t
aubio_log_set_level_function
(
sint_t
level,
85
aubio_log_function_t
fun,
void
* data);
86
87
/** Reset all logging functions to the default one
88
89
After calling this function, the default logging function will be used to
90
print error, warning, normal, and debug messages to `stdout` or `stderr`.
91
92
*/
93
void
aubio_log_reset
(
void
);
94
95
#ifdef __cplusplus
96
}
97
#endif
98
99
#endif
/* AUBIO_LOG_H */
aubio_log_set_function
void aubio_log_set_function(aubio_log_function_t fun, void *data)
Set logging function for all levels.
aubio_log_reset
void aubio_log_reset(void)
Reset all logging functions to the default one.
aubio_log_set_level_function
aubio_log_function_t aubio_log_set_level_function(sint_t level, aubio_log_function_t fun, void *data)
Set logging function for a given level.
aubio_log_function_t
void(* aubio_log_function_t)(sint_t level, const char_t *message, void *data)
Logging function prototype, to be passed to aubio_log_set_function.
Definition
log.h:64
aubio_log_level
aubio_log_level
list of logging levels
Definition
log.h:46
AUBIO_LOG_DBG
@ AUBIO_LOG_DBG
debug messages
Definition
log.h:50
AUBIO_LOG_LAST_LEVEL
@ AUBIO_LOG_LAST_LEVEL
number of valid levels
Definition
log.h:52
AUBIO_LOG_MSG
@ AUBIO_LOG_MSG
general messages
Definition
log.h:49
AUBIO_LOG_INF
@ AUBIO_LOG_INF
infos
Definition
log.h:48
AUBIO_LOG_ERR
@ AUBIO_LOG_ERR
critical errors
Definition
log.h:47
AUBIO_LOG_WRN
@ AUBIO_LOG_WRN
warnings
Definition
log.h:51
char_t
char char_t
character
Definition
types.h:64
sint_t
int sint_t
signed integer
Definition
types.h:62
Generated by
1.17.0