4package org.qtproject.qt.android.bluetooth;
6import java.io.InputStream;
7import java.io.IOException;
8import android.util.Log;
10@SuppressWarnings(
"WeakerAccess")
11class QtBluetoothInputStreamThread extends Thread
14 @SuppressWarnings(
"CanBeFinal")
16 @SuppressWarnings(
"CanBeFinal")
17 boolean logEnabled = false;
19 private InputStream m_inputStream = null;
22 static final
int QT_MISSING_INPUT_STREAM = 0;
23 static final
int QT_READ_FAILED = 1;
24 static final
int QT_THREAD_INTERRUPTED = 2;
26 QtBluetoothInputStreamThread()
28 setName(
"QtBtInputStreamThread");
31 void setInputStream(InputStream
stream)
39 if (m_inputStream ==
null) {
40 errorOccurred(qtObject, QT_MISSING_INPUT_STREAM);
44 byte[]
buffer =
new byte[1000];
48 while (!isInterrupted()) {
51 bytesRead = m_inputStream.read(
buffer);
52 readyData(qtObject,
buffer, bytesRead);
55 errorOccurred(qtObject, QT_THREAD_INTERRUPTED);
56 }
catch (IOException ex) {
58 Log.d(
TAG,
"InputStream.read() failed:" + ex.toString());
60 errorOccurred(qtObject, QT_READ_FAILED);
64 Log.d(
TAG,
"Leaving input stream thread");
67 static native
void errorOccurred(
long qtObject,
int errorCode);
68 static native
void readyData(
long qtObject,
byte[]
buffer,
int bufferLength);
QTCONCURRENT_RUN_NODISCARD auto run(QThreadPool *pool, Function &&f, Args &&...args)