From 25f6a3952c979bf46a41f34580b3b42b14176262 Mon Sep 17 00:00:00 2001 From: Georg Lukas Date: Thu, 5 Apr 2012 20:30:19 +0200 Subject: [PATCH] fix read()=0 error message at stop --- src/backend/AfskDemodulator.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/AfskDemodulator.scala b/src/backend/AfskDemodulator.scala index 96fcbc6..26d1388 100644 --- a/src/backend/AfskDemodulator.scala +++ b/src/backend/AfskDemodulator.scala @@ -27,7 +27,7 @@ class AfskDemodulator(au : AfskUploader, samplerate : Int) extends Thread("AFSK Log.d(TAG, "running...") try { recorder.startRecording(); - while (recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED) { + while (!isInterrupted() && (recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED)) { val count = recorder.read(buffer_s, 0, BUF_SIZE) Log.d(TAG, "read " + count + " samples") if (count <= 0) @@ -49,7 +49,9 @@ class AfskDemodulator(au : AfskUploader, samplerate : Int) extends Thread("AFSK def close() { try { + this.interrupt() recorder.stop() + this.join(50) } catch { case e : IllegalStateException => Log.w(TAG, "close(): " + e) }