summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2017-12-21 19:39:18 -0500
committerScott Murray <scott.murray@konsulko.com>2017-12-21 19:39:18 -0500
commit4eb2ac75588b2ce1f47c2b52ec3ed9ce1b674d22 (patch)
treebccf355549c8b0b07dcfc75435f362d88c2c9b69
parent29410eb4d5fe7331379423aafca886e8098fd5d2 (diff)
Minor robustness and UI improvementseel_5.0.1eel_5.0.0eel/5.0.1eel/5.0.05.0.15.0.0
Changes include: - Change the 'SCAN' label color when scanning. This visually signals to the user that scanning is taking place, which is useful with the Kingfisher Si4689 radio where scanning jumps to a found station. - Update the frequency when scanning signals a station is found. This improves behavior when using the Kingfisher radio, where the frequency update from the binding can fall prey to a race with the scanning state change in the QML. - Explicitly prevent triggering another scan while one is in progress. This is more of a general robustness fix to prevent unnecessary calls to the binding. It does help avoid potential issues with the Kingfisher radio where we really cannot interrupt a scan at present. Change-Id: I08825c7f51d354a20b38f647e72e4535bca37bd9 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--app/Radio.qml16
-rw-r--r--app/api/Binding.qml13
2 files changed, 22 insertions, 7 deletions
diff --git a/app/Radio.qml b/app/Radio.qml
index f812af1..7b7797a 100644
--- a/app/Radio.qml
+++ b/app/Radio.qml
@@ -30,7 +30,10 @@ ApplicationWindow {
property string title
onBandChanged: frequency = minimumFrequency
- onStationFound: title = stationId
+ onStationFound: {
+ title = stationId
+ scanLabel.color = '#FFFFFF'
+ }
onFrequencyChanged: {
title = ''
slider.value = frequency
@@ -172,6 +175,7 @@ ApplicationWindow {
Item { Layout.fillWidth: true }
Label {
+ id: scanLabel
//Layout.fillWidth: true
text: 'SCAN'
}
@@ -183,7 +187,10 @@ ApplicationWindow {
triggeredOnStart: true
interval: 100
repeat: true
- onTriggered: radio.scanDown()
+ onTriggered: {
+ radio.scanDown()
+ scanLabel.color = '#59FF7F'
+ }
}
}
@@ -194,7 +201,10 @@ ApplicationWindow {
triggeredOnStart: true
interval: 100
repeat: true
- onTriggered: radio.scanUp()
+ onTriggered: {
+ radio.scanUp()
+ scanLabel.color = '#59FF7F'
+ }
}
}
diff --git a/app/api/Binding.qml b/app/api/Binding.qml
index 3b43510..7750452 100644
--- a/app/api/Binding.qml
+++ b/app/api/Binding.qml
@@ -106,6 +106,7 @@ WebSocket {
} else if (event.event === "radio/station_found") {
if(scanningState == activeState) {
scanningState = stoppedState
+ frequency = event.data.value
stationId = freq2str(event.data.value)
root.stationFound()
}
@@ -177,13 +178,17 @@ WebSocket {
}
function scanUp() {
- scanningState = activeState
- sendSocketMessage("scan_start", { direction: "forward" })
+ if(scanningState != activeState) {
+ scanningState = activeState
+ sendSocketMessage("scan_start", { direction: "forward" })
+ }
}
function scanDown() {
- scanningState = activeState
- sendSocketMessage("scan_start", { direction: "backward" })
+ if(scanningState != activeState) {
+ scanningState = activeState
+ sendSocketMessage("scan_start", { direction: "backward" })
+ }
}
function updateFrequencyRange(band) {