]>
Commit | Line | Data |
---|---|---|
7407ac7f BB |
1 | /* |
2 | Simple DirectMedia Layer | |
3 | Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org> | |
4 | ||
5 | This software is provided 'as-is', without any express or implied | |
6 | warranty. In no event will the authors be held liable for any damages | |
7 | arising from the use of this software. | |
8 | ||
9 | Permission is granted to anyone to use this software for any purpose, | |
10 | including commercial applications, and to alter it and redistribute it | |
11 | freely, subject to the following restrictions: | |
12 | ||
13 | 1. The origin of this software must not be misrepresented; you must not | |
14 | claim that you wrote the original software. If you use this software | |
15 | in a product, an acknowledgment in the product documentation would be | |
16 | appreciated but is not required. | |
17 | 2. Altered source versions must be plainly marked as such, and must not be | |
18 | misrepresented as being the original software. | |
19 | 3. This notice may not be removed or altered from any source distribution. | |
20 | */ | |
21 | ||
22 | /** | |
23 | * \file SDL_log.h | |
24 | * | |
25 | * Simple log messages with categories and priorities. | |
26 | * | |
27 | * By default logs are quiet, but if you're debugging SDL you might want: | |
28 | * | |
29 | * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); | |
30 | * | |
31 | * Here's where the messages go on different platforms: | |
32 | * Windows: debug output stream | |
33 | * Android: log output | |
34 | * Others: standard error output (stderr) | |
35 | */ | |
36 | ||
37 | #ifndef _SDL_log_h | |
38 | #define _SDL_log_h | |
39 | ||
40 | #include "SDL_stdinc.h" | |
41 | ||
42 | #include "begin_code.h" | |
43 | /* Set up for C function definitions, even when using C++ */ | |
44 | #ifdef __cplusplus | |
45 | extern "C" { | |
46 | #endif | |
47 | ||
48 | ||
49 | /** | |
50 | * \brief The maximum size of a log message | |
51 | * | |
52 | * Messages longer than the maximum size will be truncated | |
53 | */ | |
54 | #define SDL_MAX_LOG_MESSAGE 4096 | |
55 | ||
56 | /** | |
57 | * \brief The predefined log categories | |
58 | * | |
59 | * By default the application category is enabled at the INFO level, | |
60 | * the assert category is enabled at the WARN level, test is enabled | |
61 | * at the VERBOSE level and all other categories are enabled at the | |
62 | * CRITICAL level. | |
63 | */ | |
64 | enum | |
65 | { | |
66 | SDL_LOG_CATEGORY_APPLICATION, | |
67 | SDL_LOG_CATEGORY_ERROR, | |
68 | SDL_LOG_CATEGORY_ASSERT, | |
69 | SDL_LOG_CATEGORY_SYSTEM, | |
70 | SDL_LOG_CATEGORY_AUDIO, | |
71 | SDL_LOG_CATEGORY_VIDEO, | |
72 | SDL_LOG_CATEGORY_RENDER, | |
73 | SDL_LOG_CATEGORY_INPUT, | |
74 | SDL_LOG_CATEGORY_TEST, | |
75 | ||
76 | /* Reserved for future SDL library use */ | |
77 | SDL_LOG_CATEGORY_RESERVED1, | |
78 | SDL_LOG_CATEGORY_RESERVED2, | |
79 | SDL_LOG_CATEGORY_RESERVED3, | |
80 | SDL_LOG_CATEGORY_RESERVED4, | |
81 | SDL_LOG_CATEGORY_RESERVED5, | |
82 | SDL_LOG_CATEGORY_RESERVED6, | |
83 | SDL_LOG_CATEGORY_RESERVED7, | |
84 | SDL_LOG_CATEGORY_RESERVED8, | |
85 | SDL_LOG_CATEGORY_RESERVED9, | |
86 | SDL_LOG_CATEGORY_RESERVED10, | |
87 | ||
88 | /* Beyond this point is reserved for application use, e.g. | |
89 | enum { | |
90 | MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, | |
91 | MYAPP_CATEGORY_AWESOME2, | |
92 | MYAPP_CATEGORY_AWESOME3, | |
93 | ... | |
94 | }; | |
95 | */ | |
96 | SDL_LOG_CATEGORY_CUSTOM | |
97 | }; | |
98 | ||
99 | /** | |
100 | * \brief The predefined log priorities | |
101 | */ | |
102 | typedef enum | |
103 | { | |
104 | SDL_LOG_PRIORITY_VERBOSE = 1, | |
105 | SDL_LOG_PRIORITY_DEBUG, | |
106 | SDL_LOG_PRIORITY_INFO, | |
107 | SDL_LOG_PRIORITY_WARN, | |
108 | SDL_LOG_PRIORITY_ERROR, | |
109 | SDL_LOG_PRIORITY_CRITICAL, | |
110 | SDL_NUM_LOG_PRIORITIES | |
111 | } SDL_LogPriority; | |
112 | ||
113 | ||
114 | /** | |
115 | * \brief Set the priority of all log categories | |
116 | */ | |
117 | extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); | |
118 | ||
119 | /** | |
120 | * \brief Set the priority of a particular log category | |
121 | */ | |
122 | extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, | |
123 | SDL_LogPriority priority); | |
124 | ||
125 | /** | |
126 | * \brief Get the priority of a particular log category | |
127 | */ | |
128 | extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); | |
129 | ||
130 | /** | |
131 | * \brief Reset all priorities to default. | |
132 | * | |
133 | * \note This is called in SDL_Quit(). | |
134 | */ | |
135 | extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); | |
136 | ||
137 | /** | |
138 | * \brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO | |
139 | */ | |
140 | extern DECLSPEC void SDLCALL SDL_Log(const char *fmt, ...); | |
141 | ||
142 | /** | |
143 | * \brief Log a message with SDL_LOG_PRIORITY_VERBOSE | |
144 | */ | |
145 | extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, const char *fmt, ...); | |
146 | ||
147 | /** | |
148 | * \brief Log a message with SDL_LOG_PRIORITY_DEBUG | |
149 | */ | |
150 | extern DECLSPEC void SDLCALL SDL_LogDebug(int category, const char *fmt, ...); | |
151 | ||
152 | /** | |
153 | * \brief Log a message with SDL_LOG_PRIORITY_INFO | |
154 | */ | |
155 | extern DECLSPEC void SDLCALL SDL_LogInfo(int category, const char *fmt, ...); | |
156 | ||
157 | /** | |
158 | * \brief Log a message with SDL_LOG_PRIORITY_WARN | |
159 | */ | |
160 | extern DECLSPEC void SDLCALL SDL_LogWarn(int category, const char *fmt, ...); | |
161 | ||
162 | /** | |
163 | * \brief Log a message with SDL_LOG_PRIORITY_ERROR | |
164 | */ | |
165 | extern DECLSPEC void SDLCALL SDL_LogError(int category, const char *fmt, ...); | |
166 | ||
167 | /** | |
168 | * \brief Log a message with SDL_LOG_PRIORITY_CRITICAL | |
169 | */ | |
170 | extern DECLSPEC void SDLCALL SDL_LogCritical(int category, const char *fmt, ...); | |
171 | ||
172 | /** | |
173 | * \brief Log a message with the specified category and priority. | |
174 | */ | |
175 | extern DECLSPEC void SDLCALL SDL_LogMessage(int category, | |
176 | SDL_LogPriority priority, | |
177 | const char *fmt, ...); | |
178 | ||
179 | /** | |
180 | * \brief Log a message with the specified category and priority. | |
181 | */ | |
182 | extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, | |
183 | SDL_LogPriority priority, | |
184 | const char *fmt, va_list ap); | |
185 | ||
186 | /** | |
187 | * \brief The prototype for the log output function | |
188 | */ | |
189 | typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); | |
190 | ||
191 | /** | |
192 | * \brief Get the current log output function. | |
193 | */ | |
194 | extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); | |
195 | ||
196 | /** | |
197 | * \brief This function allows you to replace the default log output | |
198 | * function with one of your own. | |
199 | */ | |
200 | extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); | |
201 | ||
202 | ||
203 | /* Ends C function definitions when using C++ */ | |
204 | #ifdef __cplusplus | |
205 | } | |
206 | #endif | |
207 | #include "close_code.h" | |
208 | ||
209 | #endif /* _SDL_log_h */ | |
210 | ||
211 | /* vi: set ts=4 sw=4 expandtab: */ |