Initial commit
This commit is contained in:
commit
a8c2f88654
53 changed files with 9269 additions and 0 deletions
70
Helpers/BluetoothManager.qml
Normal file
70
Helpers/BluetoothManager.qml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
import QtQuick
|
||||
import Quickshell.Io
|
||||
|
||||
QtObject {
|
||||
// List all known devices
|
||||
function listDevices(callback) {
|
||||
var proc = Qt.createQmlObject('
|
||||
import Quickshell.Io;\n\
|
||||
Process {\n\
|
||||
command: ["bluetoothctl", "devices"],\n\
|
||||
running: true;\n\
|
||||
stdout: StdioCollector {\n\
|
||||
onStreamFinished: {\n\
|
||||
var lines = this.text.split("\n");\n\
|
||||
var devs = [];\n\
|
||||
for (var i = 0; i < lines.length; ++i) {\n\
|
||||
var line = lines[i].trim();\n\
|
||||
if (line.startsWith("Device ")) {\n\
|
||||
var parts = line.split(" ");\n\
|
||||
var mac = parts[1];\n\
|
||||
var name = parts.slice(2).join(" ");\n\
|
||||
devs.push({ mac: mac, name: name });\n\
|
||||
}\n\
|
||||
}\n\
|
||||
callback(devs);\n\
|
||||
parent.destroy();\n\
|
||||
}\n\
|
||||
}\n\
|
||||
}', this);
|
||||
}
|
||||
|
||||
// Check if a device is connected
|
||||
function checkConnected(mac, callback) {
|
||||
var proc = Qt.createQmlObject('
|
||||
import Quickshell.Io;\n\
|
||||
Process {\n\
|
||||
command: ["bluetoothctl", "info", "' + mac + '"],\n\
|
||||
running: true;\n\
|
||||
stdout: StdioCollector {\n\
|
||||
onStreamFinished: {\n\
|
||||
var connected = this.text.indexOf("Connected: yes") !== -1;\n\
|
||||
callback(connected);\n\
|
||||
parent.destroy();\n\
|
||||
}\n\
|
||||
}\n\
|
||||
}', this);
|
||||
}
|
||||
|
||||
// Connect to a device
|
||||
function connect(mac, callback) {
|
||||
var proc = Qt.createQmlObject('
|
||||
import Quickshell.Io;\n\
|
||||
Process {\n\
|
||||
command: ["bluetoothctl", "connect", "' + mac + '"],\n\
|
||||
running: true;\n\
|
||||
stdout: StdioCollector { onStreamFinished: { callback(true); parent.destroy(); } }\n\
|
||||
}', this);
|
||||
}
|
||||
|
||||
// Disconnect from a device
|
||||
function disconnect(mac, callback) {
|
||||
var proc = Qt.createQmlObject('
|
||||
import Quickshell.Io;\n\
|
||||
Process {\n\
|
||||
command: ["bluetoothctl", "disconnect", "' + mac + '"],\n\
|
||||
running: true;\n\
|
||||
stdout: StdioCollector { onStreamFinished: { callback(true); parent.destroy(); } }\n\
|
||||
}', this);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue