File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -169,7 +169,6 @@ class Speaker extends Writable {
169169 // close() has already been called. this should not be called
170170 return done ( new Error ( 'write() call after close() call' ) )
171171 }
172- let b
173172 let left = chunk
174173 let handle = this . audio_handle
175174 if ( ! handle ) {
@@ -187,13 +186,12 @@ class Speaker extends Writable {
187186 debug ( 'aborting remainder of write() call (%o bytes), since speaker is `_closed`' , left . length )
188187 return done ( )
189188 }
190- b = left
189+ let b = left
190+ if ( b . length === 0 ) {
191+ return done ( )
192+ }
191193 if ( b . length > chunkSize ) {
192- const t = b
193- b = t . slice ( 0 , chunkSize )
194- left = t . slice ( chunkSize )
195- } else {
196- left = null
194+ b = b . slice ( 0 , chunkSize )
197195 }
198196 debug ( 'writing %o byte chunk' , b . length )
199197 binding . write ( handle , b ) . then ( onwrite , onerror )
@@ -205,9 +203,10 @@ class Speaker extends Writable {
205203
206204 const onwrite = ( r ) => {
207205 debug ( 'wrote %o bytes' , r )
208- if ( r !== b . length ) {
206+ if ( r <= 0 ) {
209207 done ( new Error ( `write() failed: ${ r } ` ) )
210- } else if ( left ) {
208+ } else if ( r < left . length ) {
209+ left = left . slice ( r )
211210 debug ( 'still %o bytes left in this chunk' , left . length )
212211 write ( )
213212 } else {
You can’t perform that action at this time.
0 commit comments