PortAudio
2.0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
common
pa_stream.h
Go to the documentation of this file.
1
#ifndef PA_STREAM_H
2
#define PA_STREAM_H
3
/*
4
* $Id: pa_stream.h 1339 2008-02-15 07:50:33Z rossb $
5
* Portable Audio I/O Library
6
* stream interface
7
*
8
* Based on the Open Source API proposed by Ross Bencina
9
* Copyright (c) 1999-2008 Ross Bencina, 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
50
#include "
portaudio.h
"
51
52
#ifdef __cplusplus
53
extern
"C"
54
{
55
#endif
/* __cplusplus */
56
57
58
#define PA_STREAM_MAGIC (0x18273645)
59
60
67
typedef
struct
{
68
PaError
(*Close)(
PaStream
* stream );
69
PaError
(*Start)(
PaStream
*stream );
70
PaError
(*Stop)(
PaStream
*stream );
71
PaError
(*Abort)(
PaStream
*stream );
72
PaError
(*IsStopped)(
PaStream
*stream );
73
PaError
(*IsActive)(
PaStream
*stream );
74
PaTime
(*GetTime)(
PaStream
*stream );
75
double (*GetCpuLoad)(
PaStream
* stream );
76
PaError
(*Read)(
PaStream
* stream,
void
*
buffer
,
unsigned
long
frames );
77
PaError
(*Write)(
PaStream
* stream,
const
void
*
buffer
,
unsigned
long
frames );
78
signed
long (*GetReadAvailable)(
PaStream
* stream );
79
signed
long (*GetWriteAvailable)(
PaStream
* stream );
80
}
PaUtilStreamInterface
;
81
82
85
void
PaUtil_InitializeStreamInterface
(
PaUtilStreamInterface
*streamInterface,
86
PaError
(*Close)(
PaStream
* ),
87
PaError
(*Start)(
PaStream
* ),
88
PaError
(*Stop)(
PaStream
* ),
89
PaError
(*Abort)(
PaStream
* ),
90
PaError
(*IsStopped)(
PaStream
* ),
91
PaError
(*IsActive)(
PaStream
* ),
92
PaTime
(*GetTime)(
PaStream
* ),
93
double
(*GetCpuLoad)(
PaStream
* ),
94
PaError
(*Read)(
PaStream
* stream,
void
*
buffer
,
unsigned
long
frames ),
95
PaError
(*Write)(
PaStream
* stream,
const
void
*buffer,
unsigned
long
frames ),
96
signed
long
(*GetReadAvailable)(
PaStream
* stream ),
97
signed
long
(*GetWriteAvailable)(
PaStream
* stream ) );
98
99
105
PaError
PaUtil_DummyRead
(
PaStream
* stream,
106
void
*buffer,
107
unsigned
long
frames );
108
109
115
PaError
PaUtil_DummyWrite
(
PaStream
* stream,
116
const
void
*buffer,
117
unsigned
long
frames );
118
119
125
signed
long
PaUtil_DummyGetReadAvailable
(
PaStream
* stream );
126
127
133
signed
long
PaUtil_DummyGetWriteAvailable
(
PaStream
* stream );
134
135
136
141
double
PaUtil_DummyGetCpuLoad
(
PaStream
* stream );
142
143
147
typedef
struct
PaUtilStreamRepresentation
{
148
unsigned
long
magic
;
149
struct
PaUtilStreamRepresentation
*
nextOpenStream
;
150
PaUtilStreamInterface
*
streamInterface
;
151
PaStreamCallback
*
streamCallback
;
152
PaStreamFinishedCallback
*
streamFinishedCallback
;
153
void
*
userData
;
154
PaStreamInfo
streamInfo
;
155
}
PaUtilStreamRepresentation
;
156
157
162
void
PaUtil_InitializeStreamRepresentation
(
163
PaUtilStreamRepresentation
*streamRepresentation,
164
PaUtilStreamInterface
*streamInterface,
165
PaStreamCallback
*
streamCallback
,
166
void
*
userData
);
167
168
174
void
PaUtil_TerminateStreamRepresentation
(
PaUtilStreamRepresentation
*streamRepresentation );
175
176
182
PaError
PaUtil_ValidateStreamPointer
(
PaStream
*stream );
183
184
189
#define PA_STREAM_REP( stream )\
190
((PaUtilStreamRepresentation*) (stream) )
191
192
197
#define PA_STREAM_INTERFACE( stream )\
198
PA_STREAM_REP( (stream) )->streamInterface
199
200
201
202
#ifdef __cplusplus
203
}
204
#endif
/* __cplusplus */
205
#endif
/* PA_STREAM_H */
Generated for PortAudio by
1.8.1.1