+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
import QtQuick 1.1
import com.nokia.meego 1.0
import QtMobility.connectivity 1.2
Label {
id: label
- anchors.centerIn: parent
- text: "Click to Scan"
+ anchors{bottom: connectButton.top; bottomMargin: 10; horizontalCenter: parent.horizontalCenter}
+
+ text: "Press to connect."
}
Button{
- id: scanButton
-
- anchors {
- horizontalCenter: parent.horizontalCenter
- top: label.bottom
- topMargin: 10
- }
+ id: connectButton
+ anchors{bottom: disconnectButton.top; bottomMargin: 10; horizontalCenter: parent.horizontalCenter}
text: "Connect"
}
}
+ 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
onDiscoveryChanged: {
if(discovery){
label.text = "Scanning for devices..."
- scanButton.enabled = false
+ connectButton.enabled = false
+ disconnectButton.enabled = false
}else{
- label.text = "Scan finished."
- scanButton.enabled = true
+ connectButton.enabled = true
+ disconnectButton.enabled = false
}
}
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)
+ if(val){
+ xtstAdapter.sendKeyPress("a");
+ }
+ }
+ onBChanged: {
+ console.log("B changed to: " + val)
+ if(val){
+ xtstAdapter.sendKeyPress("b");
+ }
+ }
+ onCChanged: {
+ console.log("C changed to: " + val)
+ if(val){
+ xtstAdapter.sendKeyPress("c");
+ }
+ }
+ onDChanged: {
+ console.log("D changed to: " + val)
+ if(val){
+ xtstAdapter.sendKeyPress("d");
+ }
+ }
+
+ onXChanged: {
+ if(val > joystickThreshold){
+ xtstAdapter.sendKeyPress("Right");
+ }else if(val < -joystickThreshold){
+ xtstAdapter.sendKeyPress("Left");
+ }
+ }
+
+ onYChanged: {
+ if(val > joystickThreshold){
+ xtstAdapter.sendKeyPress("Down");
+ }else if(val < -joystickThreshold){
+ xtstAdapter.sendKeyPress("Up");
+ }
+ }
+ }
+
+ XtstAdapter{
+ id: xtstAdapter
}
}