diff --git a/assets/ico_bluetooth.png b/assets/ico_bluetooth.png
new file mode 100644
index 0000000..b8d6c95
Binary files /dev/null and b/assets/ico_bluetooth.png differ
diff --git a/assets/resources.qrc b/assets/resources.qrc
index c31624e..4c16887 100644
--- a/assets/resources.qrc
+++ b/assets/resources.qrc
@@ -4,6 +4,7 @@
ico_warning.png
ico_setting.png
ico_info.png
+ ico_bluetooth.png
connect.png
cursor-hot.png
power-hot.png
diff --git a/include/f1x/openauto/autoapp/UI/MainWindow.hpp b/include/f1x/openauto/autoapp/UI/MainWindow.hpp
index 61bd07a..13c65b2 100644
--- a/include/f1x/openauto/autoapp/UI/MainWindow.hpp
+++ b/include/f1x/openauto/autoapp/UI/MainWindow.hpp
@@ -76,6 +76,7 @@ private slots:
void showRearCamBG();
void hideRearCamBG();
void createDebuglog();
+ void setPairable();
private:
Ui::MainWindow* ui_;
diff --git a/include/f1x/openauto/autoapp/UI/SettingsWindow.hpp b/include/f1x/openauto/autoapp/UI/SettingsWindow.hpp
index 9d37d8d..3e06ddd 100644
--- a/include/f1x/openauto/autoapp/UI/SettingsWindow.hpp
+++ b/include/f1x/openauto/autoapp/UI/SettingsWindow.hpp
@@ -47,6 +47,7 @@ public:
void loadSystemValues();
private slots:
+ void unpairAll();
void onSave();
void onResetToDefaults();
void onUpdateScreenDPI(int value);
diff --git a/src/autoapp/UI/MainWindow.cpp b/src/autoapp/UI/MainWindow.cpp
index a4c6f0b..9500d42 100644
--- a/src/autoapp/UI/MainWindow.cpp
+++ b/src/autoapp/UI/MainWindow.cpp
@@ -47,7 +47,7 @@ MainWindow::MainWindow(configuration::IConfiguration::Pointer configuration, QWi
this->setStyleSheet("QMainWindow {background-color: rgb(0,0,0);} \
QPushButton { background: url(:/circle.png); border: 0; } \
QPushButton:hover { background: url(:/circle.png); } \
- QPushButton:focus { background: url(:/circle.png); } \
+ QPushButton:focus { background: url(:/circle.png); border: none; outline: none;} \
QPushButton:pressed { background: url(:/circle-pressed.png); } \
QSlider:horizontal { background: url(:/slider.png); border: 1px solid #ffffff; border-radius: 2px; min-height: 32px;} \
QSlider::groove:horizontal { background: #6d6d6d; height: 32px;} \
@@ -120,11 +120,17 @@ MainWindow::MainWindow(configuration::IConfiguration::Pointer configuration, QWi
connect(ui_->pushButtonKodi, &QPushButton::clicked, this, &MainWindow::startKodi);
connect(ui_->pushButtonBrightness, &QPushButton::clicked, this, &MainWindow::showBrightnessSlider);
connect(ui_->systemDebugging, &QPushButton::clicked, this, &MainWindow::createDebuglog);
+ connect(ui_->pushButtonBluetooth, &QPushButton::clicked, this, &MainWindow::setPairable);
QTimer *timer=new QTimer(this);
connect(timer, SIGNAL(timeout()),this,SLOT(showTime()));
timer->start();
+ QFileInfo bluetoothButtonFile("/tmp/button_bluetooth_visible");
+ if (! bluetoothButtonFile.exists()) {
+ ui_->pushButtonBluetooth->hide();
+ }
+
// Get version string
QFileInfo vFile("/etc/crankshaft.build");
if (vFile.exists()) {
@@ -498,6 +504,11 @@ void f1x::openauto::autoapp::ui::MainWindow::createDebuglog()
system("/usr/local/bin/crankshaft debuglog &");
}
+void f1x::openauto::autoapp::ui::MainWindow::setPairable()
+{
+ system("/usr/local/bin/autoapp_helper enablepairing &");
+}
+
void f1x::openauto::autoapp::ui::MainWindow::showTime()
{
using namespace std::this_thread; // sleep_for
@@ -540,8 +551,9 @@ void f1x::openauto::autoapp::ui::MainWindow::showTime()
QFileInfo configInProgressFile("/tmp/config_in_progress");
QFileInfo debugInProgressFile("/tmp/debug_in_progress");
+ QFileInfo enablePairingFile("/tmp/enable_pairing");
- if (configInProgressFile.exists() || debugInProgressFile.exists()) {
+ if (configInProgressFile.exists() || debugInProgressFile.exists() || enablePairingFile.exists()) {
if (ui_->systemConfigInProgress->isVisible() == false) {
if (configInProgressFile.exists()) {
ui_->systemConfigInProgress->setText("System config in progress - please wait ...");
@@ -554,6 +566,11 @@ void f1x::openauto::autoapp::ui::MainWindow::showTime()
ui_->systemDebugging->hide();
ui_->systemConfigInProgress->show();
}
+ if (enablePairingFile.exists()) {
+ ui_->systemConfigInProgress->setText("Bluetooth Pairing enabled! ");
+ ui_->systemDebugging->hide();
+ ui_->systemConfigInProgress->show();
+ }
}
} else {
if (ui_->systemConfigInProgress->isVisible() == true) {
diff --git a/src/autoapp/UI/SettingsWindow.cpp b/src/autoapp/UI/SettingsWindow.cpp
index 726edd4..88f86af 100644
--- a/src/autoapp/UI/SettingsWindow.cpp
+++ b/src/autoapp/UI/SettingsWindow.cpp
@@ -41,6 +41,7 @@ SettingsWindow::SettingsWindow(configuration::IConfiguration::Pointer configurat
ui_->setupUi(this);
connect(ui_->pushButtonCancel, &QPushButton::clicked, this, &SettingsWindow::close);
connect(ui_->pushButtonSave, &QPushButton::clicked, this, &SettingsWindow::onSave);
+ connect(ui_->pushButtonUnpair , &QPushButton::clicked, this, &SettingsWindow::unpairAll);
connect(ui_->horizontalSliderScreenDPI, &QSlider::valueChanged, this, &SettingsWindow::onUpdateScreenDPI);
connect(ui_->radioButtonUseExternalBluetoothAdapter, &QRadioButton::clicked, [&](bool checked) { ui_->lineEditExternalBluetoothAdapterAddress->setEnabled(checked); });
connect(ui_->radioButtonDisableBluetooth, &QRadioButton::clicked, [&]() { ui_->lineEditExternalBluetoothAdapterAddress->setEnabled(false); });
@@ -51,6 +52,7 @@ SettingsWindow::SettingsWindow(configuration::IConfiguration::Pointer configurat
connect(ui_->pushButtonShowBindings, &QPushButton::clicked, this, &SettingsWindow::onShowBindings);
connect(ui_->horizontalSliderSystemVolume, &QSlider::valueChanged, this, &SettingsWindow::onUpdateSystemVolume);
connect(ui_->horizontalSliderSystemCapture, &QSlider::valueChanged, this, &SettingsWindow::onUpdateSystemCapture);
+
}
SettingsWindow::~SettingsWindow()
@@ -195,6 +197,8 @@ void SettingsWindow::onSave()
params.append("0");
}
params.append("#");
+ params.append( std::string(ui_->comboBoxBluetooth->currentText().toStdString()) );
+ params.append("#");
if (ui_->checkBoxHardwareSave->isChecked()) {
params.append("1");
} else {
@@ -258,6 +262,8 @@ void SettingsWindow::load()
const auto& audioOutputBackendType = configuration_->getAudioOutputBackendType();
ui_->radioButtonRtAudio->setChecked(audioOutputBackendType == configuration::AudioOutputBackendType::RTAUDIO);
ui_->radioButtonQtAudio->setChecked(audioOutputBackendType == configuration::AudioOutputBackendType::QT);
+
+ ui_->checkBoxHardwareSave->setChecked(false);
}
void SettingsWindow::loadButtonCheckBoxes()
@@ -346,6 +352,11 @@ void SettingsWindow::onUpdateSystemCapture(int value)
ui_->labelSystemCaptureValue->setText(QString::number(value));
}
+void SettingsWindow::unpairAll()
+{
+ system("/usr/local/bin/crankshaft bluetooth unpair &");
+}
+
void SettingsWindow::loadSystemValues()
{
// Generate param file
@@ -580,12 +591,27 @@ void SettingsWindow::loadSystemValues()
// set cam
ui_->comboBoxCam->setCurrentText(getparams[33]);
- // set cs bluetooth
+ // set bluetooth
if (getparams[34] == "1") {
+ // check external bluetooth enabled
+ if (getparams[36] == "1") {
+ ui_->radioButtonUseExternalBluetoothAdapter->setChecked(true);
+ } else {
+ ui_->radioButtonUseLocalBluetoothAdapter->setChecked(true);
+ }
+ // mac
+ ui_->lineEditExternalBluetoothAdapterAddress->setText(getparams[37]);
+ } else {
+ ui_->radioButtonDisableBluetooth->setChecked(true);
+ ui_->lineEditExternalBluetoothAdapterAddress->setText("");
+ }
+ if (getparams[35] == "1") {
ui_->checkBoxBluetoothAutoPair->setChecked(true);
} else {
ui_->checkBoxBluetoothAutoPair->setChecked(false);
}
+ // set timezone
+ ui_->comboBoxBluetooth->setCurrentText(getparams[38]);
}
}
diff --git a/src/autoapp/UI/mainwindow.ui b/src/autoapp/UI/mainwindow.ui
index d22be2a..35bf719 100644
--- a/src/autoapp/UI/mainwindow.ui
+++ b/src/autoapp/UI/mainwindow.ui
@@ -51,6 +51,30 @@
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ 618
+ -8
+ 64
+ 64
+
+
+
+
+ :/ico_bluetooth.png
+
+
+
+
+ 24
+ 24
+
+
+
+ background: rgba(255,255,255,0);
+
+
@@ -75,7 +99,7 @@
- color: #00CCFF;
+ color: #0000FF;
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -815,6 +839,7 @@ QPushButton:pressed { background: orange; border: none; }
pushButtonLock
pushButtonWirelessConnection
pushButtonKodi
+ pushButtonBluetooth
pushButtonToggleCursor
pushButtonDay
pushButtonNight
diff --git a/src/autoapp/UI/settingswindow.ui b/src/autoapp/UI/settingswindow.ui
index b358f57..c3896c3 100644
--- a/src/autoapp/UI/settingswindow.ui
+++ b/src/autoapp/UI/settingswindow.ui
@@ -1104,106 +1104,68 @@ QSlider::groove:horizontal { background: #6d6d6d; height: 32px;}
0
10
646
- 101
+ 111
- Bluetooth adapter
+ Bluetooth settings
-
-
-
- 20
- 30
- 171
- 23
-
-
-
- Disable bluetooth
-
-
-
-
-
- 210
- 30
- 171
- 23
-
-
-
- Use external adapter
-
-
410
- 66
+ 26
231
31
+
+ true
+
- 340
- 66
- 67
+ 290
+ 26
+ 111
31
- Address:
+ Used Address:
-
-
-
- 440
- 20
- 181
- 41
-
-
-
-
- true
-
-
-
- Provide address in format AA:BB:CC:DD:EE:FF.
-
-
- true
-
-
-
-
-
- 410
- 30
- 21
- 21
-
-
-
- <html><head/><body><p><img src=":/ico_info.png"/></p></body></html>
-
-
-
+
20
- 60
- 151
+ 30
+ 261
23
- Use local adapter
+ Set pairable on startup (120 secs)
+
+
+
+
+
+ 20
+ 70
+ 191
+ 30
+
+
+
+ Remove all paired devices
+
+
+ false
+
+
+ false
@@ -1211,7 +1173,7 @@ QSlider::groove:horizontal { background: #6d6d6d; height: 32px;}
0
- 190
+ 160
646
111
@@ -1259,6 +1221,9 @@ QSlider::groove:horizontal { background: #6d6d6d; height: 32px;}
31
+
+ true
+
@@ -1291,7 +1256,7 @@ QSlider::groove:horizontal { background: #6d6d6d; height: 32px;}
0
- 310
+ 280
646
141
@@ -1386,66 +1351,93 @@ QSlider::groove:horizontal { background: #6d6d6d; height: 32px;}
-
+
- 0
- 120
- 646
- 61
+ 330
+ 60
+ 171
+ 23
-
- Bluetooth Pairing / Connect
+
+ Use external adapter
-
-
-
- 20
- 26
- 250
- 23
-
-
-
- Enable Autopairing / Autoconnect
-
-
-
-
-
- 360
- 20
- 281
- 31
-
-
-
-
- true
-
-
-
- Experimental and only using local adapter! Needs a reboot after changing!
-
-
- true
-
-
-
-
-
- 320
- 20
- 31
- 31
-
-
-
- <html><head/><body><p><img src=":/ico_warning.png"/></p></body></html>
-
-
+
+
+ true
+
+
+
+ 170
+ 60
+ 151
+ 23
+
+
+
+ Use local adapter
+
+
+
+
+
+ 10
+ 60
+ 171
+ 23
+
+
+
+ Disable bluetooth
+
+
+
+
+
+ 80
+ 422
+ 31
+ 31
+
+
+
+ <html><head/><body><p align="justify"><img src=":/ico_warning.png"/></p></body></html>
+
+
+
+
+
+ 2
+ 425
+ 644
+ 26
+
+
+
+
+ true
+
+
+
+ To activate this settings you have to reboot after changing!
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
+ radioButtonDisableBluetooth
+ radioButtonUseExternalBluetoothAdapter
+ radioButtonUseLocalBluetoothAdapter
+ groupBoxWifiClient
+ groupBoxWifiHotspot
+ groupBoxBluetoothAdapter
+ labelSettingsInfo_5
+ labelSettingsInfo_Icon_5
@@ -3265,7 +3257,7 @@ subcontrol-position: center left;
0
10
646
- 241
+ 291
@@ -3572,6 +3564,50 @@ subcontrol-position: center left;
+
+
+
+ 10
+ 240
+ 80
+ 30
+
+
+
+ Bluetooth
+
+
+
+
+
+ 90
+ 240
+ 300
+ 30
+
+
+
+ false
+
+
+ none
+
+ -
+
+ none
+
+
+ -
+
+ builtin
+
+
+ -
+
+ external
+
+
+