/* * Copyright 2012 Ruediger Gad * * This file is part of QZeeControl. * * QZeeControl is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * QZeeControl is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with QZeeControl. If not, see . */ import QtQuick 1.1 import com.nokia.meego 1.0 import QtMobility.connectivity 1.2 import qzeecontrol 1.0 Page { tools: commonTools Label { id: label anchors{bottom: connectButton.top; bottomMargin: 10; horizontalCenter: parent.horizontalCenter} text: "Press to connect." } Button{ id: connectButton anchors{bottom: disconnectButton.top; bottomMargin: 10; horizontalCenter: parent.horizontalCenter} text: "Connect" onClicked: { btDiscovery.discovery = true } } Button{ id: disconnectButton anchors{bottom: buttonRow.top; bottomMargin: 10; horizontalCenter: parent.horizontalCenter} text: "Disconnect" onClicked: { btConn.disconnect() } } Row{ id: buttonRow anchors.centerIn: parent spacing: 20 Label{ id: labelA text: "A" color: btConn.a ? "red" : "blue" } Label{ id: labelB text: "B" color: btConn.b ? "red" : "blue" } Label{ id: labelC text: "C" color: btConn.c ? "red" : "blue" } Label{ id: labelD text: "D" color: btConn.d ? "red" : "blue" } } Rectangle{ id: moveArea anchors{top: buttonRow.bottom; topMargin: 10; horizontalCenter: parent.horizontalCenter} color: "gray" width: 256 height: 256 } Rectangle{ id: cursorRectangle width: 10 height: 10 color: "red" x: moveArea.x + (moveArea.width * 0.5) + btConn.x - (cursorRectangle.width * 0.5) y: moveArea.y + (moveArea.height * 0.5) + btConn.y - (cursorRectangle.height * 0.5) } BluetoothDiscoveryModel{ id: btDiscovery discovery: false minimalDiscovery: true onDiscoveryChanged: { if(discovery){ label.text = "Scanning for devices..." connectButton.enabled = false disconnectButton.enabled = false }else{ connectButton.enabled = true disconnectButton.enabled = false } } onNewServiceDiscovered: { console.log("Service " + service.serviceName + " found on " + service.deviceName + " at address " + service.deviceAddress + " on port " + service.servicePort + ".") //btSocket.service = service btConn.connect(service.deviceAddress, service.servicePort) } } /* BluetoothSocket{ id: btSocket onDataAvailable: { console.log("Data available: " + stringData.charCodeAt(0) + data) } onServiceChanged: { console.log("Service changed. Connecting...") connected = true } onConnectedChanged: { console.log("Connected.") } }*/ BtConnector{ id: btConn property int joystickThreshold: 50 onConnected: { connectButton.enabled = false disconnectButton.enabled = true label.text = "Connected." } onDisconnected: { connectButton.enabled = true disconnectButton.enabled = false label.text = "Press to connect." } onStickMoved: { console.log("Stick moved. x: " + x + " y: " + y) } onButtonsChanged: { console.log("Buttons changed. A: " + a + " B: " + b + " C: " + c + " D: " + d) } onAChanged: { console.log("A changed to: " + val) xtstAdapter.sendKey("a", val); } onBChanged: { console.log("B changed to: " + val) xtstAdapter.sendKey("b", val); } onCChanged: { console.log("C changed to: " + val) xtstAdapter.sendKey("c", val); } onDChanged: { console.log("D changed to: " + val) xtstAdapter.sendKey("d", val); } onXChanged: { if(val > joystickThreshold){ xtstAdapter.sendKey("Right", true); }else if(val < -joystickThreshold){ xtstAdapter.sendKey("Left", true); }else{ xtstAdapter.sendKey("Right", false); xtstAdapter.sendKey("Left", false); } } onYChanged: { if(val > joystickThreshold){ xtstAdapter.sendKey("Down", true); }else if(val < -joystickThreshold){ xtstAdapter.sendKey("Up", true); }else{ xtstAdapter.sendKey("Down", false); xtstAdapter.sendKey("Up", false); } } } XtstAdapter{ id: xtstAdapter } }