summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qnx
diff options
context:
space:
mode:
authorFabian Bumberger <fbumberger@rim.com>2013-06-26 06:26:02 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-26 19:28:48 +0200
commit5cd6ab9b6369806ade7b9b4794c0c3b04472f616 (patch)
tree530d1ee17cc7885607db89b8e329e01fd31955a7 /src/bluetooth/qnx
parentb6f7359c1120bd98a9f89e36bb4020f9ebd51e7c (diff)
QNX: Fix crash when setting host mode
Change-Id: I772375768b2d7d0fd766798bb3c5bd767f66abab Reviewed-by: Alex <alexander.blasche@digia.com>
Diffstat (limited to 'src/bluetooth/qnx')
-rw-r--r--src/bluetooth/qnx/ppshelpers.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/bluetooth/qnx/ppshelpers.cpp b/src/bluetooth/qnx/ppshelpers.cpp
index e869235d..137b8c5f 100644
--- a/src/bluetooth/qnx/ppshelpers.cpp
+++ b/src/bluetooth/qnx/ppshelpers.cpp
@@ -177,6 +177,8 @@ void ppsSendControlMessage(const char *msg, QObject *sender)
endCtrlMessage(encoder);
}
+int __newHostMode = -1;
+
void ppsDecodeControlResponse()
{
ppsResult result;
@@ -246,6 +248,14 @@ void ppsDecodeControlResponse()
pps_decoder_cleanup(&ppsDecoder);
}
+ if (result.msg == "radio_init") {
+ qBBBluetoothDebug() << "Radio initialized";
+ } else if (result.msg == "access_changed" && __newHostMode != -1) {
+ qBBBluetoothDebug() << "Access changed after radio init";
+ ppsSendControlMessage("set_access", QString("{\"access\":%1}").arg(__newHostMode), 0);
+ __newHostMode = -1;
+ }
+
if (resType == RESPONSE) {
QPair<int, QObject*> wMessage = takeObjectInWList(result.id);
if (wMessage.second != 0)
@@ -285,6 +295,15 @@ QVariant ppsReadSetting(const char *property)
qWarning() << Q_FUNC_INFO << "could not read"<< property;
return QVariant();
}
+ } else if (nodeType == PPS_TYPE_BOOL) {
+ bool dat;
+ if (pps_decoder_get_bool(&decoder, property, &dat) == PPS_DECODER_OK) {
+ result = dat;
+ qBBBluetoothDebug() << "Read setting" << result;
+ } else {
+ qWarning() << Q_FUNC_INFO << "could not read"<< property;
+ return QVariant();
+ }
} else if (nodeType == PPS_TYPE_NUMBER) {
int dat;
if (pps_decoder_get_int(&decoder, property, &dat) == PPS_DECODER_OK) {