File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -89,6 +89,7 @@ class PortAudioStream : public BufferedStream {
89
89
if ( err != paNoError ) {
90
90
LOGE ( " PortAudio error: %s\n " , Pa_GetErrorText ( err ) );
91
91
}
92
+ stream_started = false ;
92
93
}
93
94
94
95
operator boolean () {
@@ -99,9 +100,13 @@ class PortAudioStream : public BufferedStream {
99
100
PaStream *stream = nullptr ;
100
101
PaError err = paNoError;
101
102
PortAudioConfig info;
103
+ bool stream_started = false ;
102
104
103
105
virtual size_t writeExt (const uint8_t * data, size_t len) {
104
106
LOGD (" writeExt: %zu" , len);
107
+
108
+ startStream ();
109
+
105
110
size_t result = 0 ;
106
111
if (stream!=nullptr ){
107
112
int bytes = info.bits_per_sample / 8 ;
@@ -150,6 +155,20 @@ class PortAudioStream : public BufferedStream {
150
155
// make sure that we return a valid value
151
156
return paInt16;
152
157
}
158
+
159
+ // / automatically start the stream when we start to get data
160
+ void startStream () {
161
+ if (!stream_started) {
162
+ LOGD (__FUNCTION__);
163
+ err = Pa_StartStream ( stream );
164
+ if ( err == paNoError ) {
165
+ stream_started = true ;
166
+ } else {
167
+ stream_started = false ;
168
+ LOGE ( " PortAudio error: %s\n " , Pa_GetErrorText ( err ) );
169
+ }
170
+ }
171
+ }
153
172
};
154
173
155
174
} // namespace
You can’t perform that action at this time.
0 commit comments