PortAudio 2.0
pa_trace.h
Go to the documentation of this file.
1#ifndef PA_TRACE_H
2#define PA_TRACE_H
3/*
4 * $Id$
5 * Portable Audio I/O Library Trace Facility
6 * Store trace information in real-time for later printing.
7 *
8 * Based on the Open Source API proposed by Ross Bencina
9 * Copyright (c) 1999-2000 Phil Burk
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining
12 * a copy of this software and associated documentation files
13 * (the "Software"), to deal in the Software without restriction,
14 * including without limitation the rights to use, copy, modify, merge,
15 * publish, distribute, sublicense, and/or sell copies of the Software,
16 * and to permit persons to whom the Software is furnished to do so,
17 * subject to the following conditions:
18 *
19 * The above copyright notice and this permission notice shall be
20 * included in all copies or substantial portions of the Software.
21 *
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
26 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 */
30
31/*
32 * The text above constitutes the entire PortAudio license; however,
33 * the PortAudio community also makes the following non-binding requests:
34 *
35 * Any person wishing to distribute modifications to the Software is
36 * requested to send the modifications to the original developer so that
37 * they can be incorporated into the canonical version. It is also
38 * requested that these non-binding requests be included along with the
39 * license above.
40 */
41
68#ifndef PA_TRACE_REALTIME_EVENTS
69#define PA_TRACE_REALTIME_EVENTS (0)
70#endif
71
72#ifndef PA_MAX_TRACE_RECORDS
73#define PA_MAX_TRACE_RECORDS (2048)
74#endif
75
76#ifdef __cplusplus
77extern "C"
78{
79#endif /* __cplusplus */
80
81
82#if PA_TRACE_REALTIME_EVENTS
83
85void PaUtil_AddTraceMessage( const char *msg, int data );
87
88/* Alternative interface */
89
90typedef void* LogHandle;
91
92int PaUtil_InitializeHighSpeedLog(LogHandle* phLog, unsigned maxSizeInBytes);
93void PaUtil_ResetHighSpeedLogTimeRef(LogHandle hLog);
94int PaUtil_AddHighSpeedLogMessage(LogHandle hLog, const char* fmt, ...);
95void PaUtil_DumpHighSpeedLog(LogHandle hLog, const char* fileName);
96void PaUtil_DiscardHighSpeedLog(LogHandle hLog);
97
98#else
99
100#define PaUtil_ResetTraceMessages() /* noop */
101#define PaUtil_AddTraceMessage(msg,data) /* noop */
102#define PaUtil_DumpTraceMessages() /* noop */
103
104#define PaUtil_InitializeHighSpeedLog(phLog, maxSizeInBytes) (0)
105#define PaUtil_ResetHighSpeedLogTimeRef(hLog)
106#define PaUtil_AddHighSpeedLogMessage(...) (0)
107#define PaUtil_DumpHighSpeedLog(hLog, fileName)
108#define PaUtil_DiscardHighSpeedLog(hLog)
109
110#endif
111
112
113#ifdef __cplusplus
114}
115#endif /* __cplusplus */
116
117#endif /* PA_TRACE_H */
#define PaUtil_DiscardHighSpeedLog(hLog)
Definition pa_trace.h:108
#define PaUtil_DumpTraceMessages()
Print all messages in the trace buffer to stdout and clear the trace buffer.
Definition pa_trace.h:102
#define PaUtil_InitializeHighSpeedLog(phLog, maxSizeInBytes)
Definition pa_trace.h:104
#define PaUtil_ResetHighSpeedLogTimeRef(hLog)
Definition pa_trace.h:105
#define PaUtil_AddTraceMessage(msg, data)
Definition pa_trace.h:101
#define PaUtil_ResetTraceMessages()
Clear the trace buffer.
Definition pa_trace.h:100
#define PaUtil_AddHighSpeedLogMessage(...)
Definition pa_trace.h:106
#define PaUtil_DumpHighSpeedLog(hLog, fileName)
Definition pa_trace.h:107