diff --git a/QtScrcpy/device/device.cpp b/QtScrcpy/device/device.cpp index 78c5164..fc0b959 100644 --- a/QtScrcpy/device/device.cpp +++ b/QtScrcpy/device/device.cpp @@ -33,7 +33,7 @@ Device::Device(DeviceParams params, QObject *parent) : QObject(parent), m_params m_decoder = new Decoder(m_vb, this); m_fileHandler = new FileHandler(this); m_controller = new Controller(params.gameScript, this); - m_videoForm = new VideoForm(Config::getInstance().getFramelessWindow(), Config::getInstance().getSkin()); + m_videoForm = new VideoForm(params.framelessWindow, Config::getInstance().getSkin()); m_videoForm->setDevice(this); } @@ -382,7 +382,7 @@ bool Device::saveFrame(const AVFrame *frame) // save QString absFilePath; - QString fileDir(Config::getInstance().getRecordPath()); + QString fileDir(m_params.recordPath); if (fileDir.isEmpty()) { qWarning() << "please select record save path!!!"; return false; diff --git a/QtScrcpy/device/device.h b/QtScrcpy/device/device.h index bbbf693..e07ee76 100644 --- a/QtScrcpy/device/device.h +++ b/QtScrcpy/device/device.h @@ -26,6 +26,7 @@ public: struct DeviceParams { QString recordFileName = ""; // 视频录制文件名 + QString recordPath = ""; // 视频保存路径 QString serial = ""; // 设备序列号 quint16 localPort = 27183; // reverse时本地监听端口 quint16 maxSize = 720; // 视频分辨率 @@ -37,7 +38,8 @@ public: QString gameScript = ""; // 游戏映射脚本 bool renderExpiredFrames = false; // 是否渲染延迟视频帧 int lockVideoOrientation = -1; // 是否锁定视频方向 - int stayAwake = false; // 是否保持唤醒 + bool stayAwake = false; // 是否保持唤醒 + bool framelessWindow = false; // 是否无边框窗口 }; enum GroupControlState { diff --git a/QtScrcpy/dialog.cpp b/QtScrcpy/dialog.cpp index b7ea3c1..e18bdac 100644 --- a/QtScrcpy/dialog.cpp +++ b/QtScrcpy/dialog.cpp @@ -43,8 +43,10 @@ Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) if (args.contains("devices")) { QStringList devices = m_adb.getDevicesSerialFromStdOut(); ui->serialBox->clear(); + ui->connectedPhoneList->clear(); for (auto &item : devices) { ui->serialBox->addItem(item); + ui->connectedPhoneList->addItem(item+"-"+Config::getInstance().getNickName(item)); } } else if (args.contains("show") && args.contains("wlan0")) { QString ip = m_adb.getDeviceIPFromStdOut(); @@ -92,6 +94,7 @@ Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) Dialog::~Dialog() { + updateBootConfig(false); m_deviceManage.disconnectAllDevice(); delete ui; } @@ -109,7 +112,6 @@ void Dialog::initUI() ui->bitRateBox->addItem("50000000"); ui->bitRateBox->addItem("100000000"); ui->bitRateBox->addItem("200000000"); - ui->bitRateBox->setCurrentIndex(Config::getInstance().getBitRateIndex()); ui->maxSizeBox->addItem("640"); ui->maxSizeBox->addItem("720"); @@ -117,11 +119,9 @@ void Dialog::initUI() ui->maxSizeBox->addItem("1280"); ui->maxSizeBox->addItem("1920"); ui->maxSizeBox->addItem(tr("original")); - ui->maxSizeBox->setCurrentIndex(Config::getInstance().getMaxSizeIndex()); ui->formatBox->addItem("mp4"); ui->formatBox->addItem("mkv"); - ui->formatBox->setCurrentIndex(Config::getInstance().getRecordFormatIndex()); ui->lockOrientationBox->addItem(tr("no lock")); ui->lockOrientationBox->addItem("0"); @@ -130,12 +130,13 @@ void Dialog::initUI() ui->lockOrientationBox->addItem("270"); ui->lockOrientationBox->setCurrentIndex(0); - ui->recordPathEdt->setText(Config::getInstance().getRecordPath()); - ui->framelessCheck->setChecked(Config::getInstance().getFramelessWindow()); + updateBootConfig(true); + + ui->userNameEdt->setText(Config::getInstance().getNickName(ui->serialBox->currentText())); on_useSingleModeCheck_clicked(); - updateConnectedList(); + on_updateDevice_clicked(); #ifdef Q_OS_OSX // mac need more width @@ -148,6 +149,45 @@ void Dialog::initUI() #endif } +void Dialog::updateBootConfig(bool toView) +{ + if (toView) { + UserBootConfig config = Config::getInstance().getUserBootConfig(); + + ui->bitRateBox->setCurrentIndex(config.bitRateIndex); + ui->maxSizeBox->setCurrentIndex(config.maxSizeIndex); + ui->formatBox->setCurrentIndex(config.recordFormatIndex); + ui->recordPathEdt->setText(config.recordPath); + ui->lockOrientationBox->setCurrentIndex(config.lockOrientationIndex); + ui->framelessCheck->setChecked(config.framelessWindow); + ui->recordScreenCheck->setChecked(config.recordScreen); + ui->notDisplayCheck->setChecked(config.recordBackground); + ui->useReverseCheck->setChecked(config.reverseConnect); + ui->fpsCheck->setChecked(config.showFPS); + ui->alwaysTopCheck->setChecked(config.windowOnTop); + ui->closeScreenCheck->setChecked(config.autoOffScreen); + ui->stayAwakeCheck->setChecked(config.keepAlive); + } else { + UserBootConfig config; + + config.bitRateIndex = ui->bitRateBox->currentIndex(); + config.maxSizeIndex = ui->maxSizeBox->currentIndex(); + config.recordFormatIndex = ui->formatBox->currentIndex(); + config.recordPath = ui->recordPathEdt->text(); + config.lockOrientationIndex = ui->lockOrientationBox->currentIndex(); + config.recordScreen = ui->recordScreenCheck->isChecked(); + config.recordBackground = ui->notDisplayCheck->isChecked(); + config.reverseConnect = ui->useReverseCheck->isChecked(); + config.showFPS = ui->fpsCheck->isChecked(); + config.windowOnTop = ui->alwaysTopCheck->isChecked(); + config.autoOffScreen = ui->closeScreenCheck->isChecked(); + config.framelessWindow = ui->framelessCheck->isChecked(); + config.keepAlive = ui->stayAwakeCheck->isChecked(); + + Config::getInstance().setUserBootConfig(config); + } +} + void Dialog::execAdbCmd() { if (checkAdbRun()) { @@ -198,33 +238,6 @@ void Dialog::slotActivated(QSystemTrayIcon::ActivationReason reason) } } -void Dialog::updateConnectedList() -{ - ui->connectedPhoneList->clear(); - QStringList list = Config::getInstance().getConnectedGroups(); - - QRegExp regIP("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\:([0-9]|[1-9]\\d|[1-9]\\d{2}|[1-9]\\d{3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])\\b"); - - for (int i = 0; i < list.length(); ++i) - { - QString phone = QString(list[i]); - if(phone != "common" /*&& regIP.exactMatch(phone)*/) - { - ui->connectedPhoneList->addItem(phone+"-"+Config::getInstance().getUserName(phone)); - } - } -} - -void Dialog::updateUser() -{ - -} - -void Dialog::loadUser() -{ - -} - void Dialog::closeEvent(QCloseEvent *event) { int res = QMessageBox::question(this,tr("warning"),tr("Quit or set tray?"),tr("Quit"),tr("Set tray"),tr("Cancel")); @@ -247,8 +260,6 @@ void Dialog::closeEvent(QCloseEvent *event) { event->ignore(); } - - } void Dialog::on_updateDevice_clicked() @@ -264,21 +275,6 @@ void Dialog::on_startServerBtn_clicked() { outLog("start server...", false); - UserBootConfig config; - - config.recordScreen = ui->recordScreenCheck->isChecked(); - config.recordBackground = ui->notDisplayCheck->isChecked(); - config.reverseConnect = ui->useReverseCheck->isChecked(); - config.showFPS = ui->fpsCheck->isChecked(); - config.windowOnTop = ui->alwaysTopCheck->isChecked(); - config.autoOffScreen = ui->closeScreenCheck->isChecked(); - config.windowFrameless = ui->framelessCheck->isChecked(); - config.keepAlive = ui->stayAwakeCheck->isChecked(); - - Config::getInstance().setUserBootConfig(ui->serialBox->currentText(),config); - - updateConnectedList(); - QString absFilePath; if (ui->recordScreenCheck->isChecked()) { QString fileDir(ui->recordPathEdt->text().trimmed()); @@ -308,6 +304,8 @@ void Dialog::on_startServerBtn_clicked() params.renderExpiredFrames = Config::getInstance().getRenderExpiredFrames(); params.lockVideoOrientation = ui->lockOrientationBox->currentIndex() - 1; params.stayAwake = ui->stayAwakeCheck->isChecked(); + params.framelessWindow = ui->framelessCheck->isChecked(); + params.recordPath = ui->recordPathEdt->text().trimmed(); m_deviceManage.connectDevice(params); @@ -454,7 +452,6 @@ void Dialog::on_selectRecordPathBtn_clicked() void Dialog::on_recordPathEdt_textChanged(const QString &arg1) { - Config::getInstance().setRecordPath(arg1); ui->recordPathEdt->setToolTip(arg1.trimmed()); ui->notDisplayCheck->setCheckable(!arg1.trimmed().isEmpty()); } @@ -515,34 +512,13 @@ void Dialog::on_recordScreenCheck_clicked(bool checked) } } -void Dialog::on_bitRateBox_activated(int index) -{ - Config::getInstance().setBitRateIndex(index); -} - -void Dialog::on_maxSizeBox_activated(int index) -{ - Config::getInstance().setMaxSizeIndex(index); -} - -void Dialog::on_formatBox_activated(int index) -{ - Config::getInstance().setRecordFormatIndex(index); -} - -void Dialog::on_framelessCheck_stateChanged(int arg1) -{ - Q_UNUSED(arg1) - Config::getInstance().setFramelessWindow(ui->framelessCheck->isChecked()); -} - void Dialog::on_usbConnectBtn_clicked() { on_stopAllServerBtn_clicked(); delayMs(200); on_updateDevice_clicked(); delayMs(200); - if(ui->serialBox->count()==0) + if(ui->serialBox->count() == 0) { qWarning() << "No device is found!"; return; @@ -552,6 +528,7 @@ void Dialog::on_usbConnectBtn_clicked() for (int i = 0; i < ui->serialBox->count(); ++i) { + // 连接第一个usb设备 if(!regIP.exactMatch(ui->serialBox->itemText(i))) { ui->serialBox->setCurrentIndex(i); @@ -559,8 +536,6 @@ void Dialog::on_usbConnectBtn_clicked() break; } } - - updateConnectedList(); } void Dialog::on_wifiConnectBtn_clicked() @@ -570,12 +545,30 @@ void Dialog::on_wifiConnectBtn_clicked() on_updateDevice_clicked(); delayMs(200); - if(ui->serialBox->count()==0) + if(ui->serialBox->count() == 0) { qWarning() << "No device is found!"; return; } + bool found = false; + QRegExp regIP("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\:([0-9]|[1-9]\\d|[1-9]\\d{2}|[1-9]\\d{3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])\\b"); + for (int i = 0; i < ui->serialBox->count(); ++i) + { + // 选中第一个usb设备 + if(!regIP.exactMatch(ui->serialBox->itemText(i))) + { + ui->serialBox->setCurrentIndex(i); + found = true; + break; + } + } + + if (!found) { + qWarning() << "No use device is found!"; + return; + } + on_getIPBtn_clicked(); delayMs(200); @@ -585,52 +578,49 @@ void Dialog::on_wifiConnectBtn_clicked() on_wirelessConnectBtn_clicked(); delayMs(2000); - ui->serialBox->clear(); - - ui->serialBox->addItem(ui->deviceIpEdt->text()+":5555"); - - on_startServerBtn_clicked(); + on_updateDevice_clicked(); delayMs(200); - updateConnectedList(); + // 找到第一个无线设备 + found = false; + for (int i = 0; i < ui->serialBox->count(); ++i) + { + if(regIP.exactMatch(ui->serialBox->itemText(i))) + { + ui->serialBox->setCurrentIndex(i); + found = true; + break; + } + } + + if (!found) { + qWarning() << "No wifi device is found!"; + return; + } + + on_startServerBtn_clicked(); } void Dialog::on_connectedPhoneList_itemDoubleClicked(QListWidgetItem *item) { - ui->serialBox->clear(); - ui->serialBox->addItem(item->text().split("-")[0]); - ui->serialBox->setCurrentIndex(0); - - UserBootConfig config = Config::getInstance().getUserBootConfig(ui->serialBox->currentText()); - - ui->recordScreenCheck->setChecked(config.recordScreen); - ui->notDisplayCheck->setChecked(config.recordBackground); - ui->useReverseCheck->setChecked(config.reverseConnect); - ui->fpsCheck->setChecked(config.showFPS); - ui->alwaysTopCheck->setChecked(config.windowOnTop); - ui->closeScreenCheck->setChecked(config.autoOffScreen); - ui->framelessCheck->setChecked(config.windowFrameless); - ui->stayAwakeCheck->setChecked(config.keepAlive); - ui->userNameEdt->setText(Config::getInstance().getUserName(ui->serialBox->currentText())); - + Q_UNUSED(item); + ui->serialBox->setCurrentIndex(ui->connectedPhoneList->currentRow()); on_startServerBtn_clicked(); } void Dialog::on_updateNameBtn_clicked() { - if(ui->serialBox->count()!=0) - { - if(ui->userNameEdt->text().isEmpty()) - Config::getInstance().setUserName(ui->serialBox->currentText(),"PHONE"); - else - Config::getInstance().setUserName(ui->serialBox->currentText(),ui->userNameEdt->text()); + if(ui->serialBox->count()!=0) { + if(ui->userNameEdt->text().isEmpty()) { + Config::getInstance().setNickName(ui->serialBox->currentText(), "Phone"); + } else { + Config::getInstance().setNickName(ui->serialBox->currentText(), ui->userNameEdt->text()); + } - updateConnectedList(); + on_updateDevice_clicked(); qDebug()<<"Update OK!"; - } - else - { + } else { qWarning()<<"No device is connected!"; } } diff --git a/QtScrcpy/dialog.h b/QtScrcpy/dialog.h index bae8044..6db054a 100644 --- a/QtScrcpy/dialog.h +++ b/QtScrcpy/dialog.h @@ -63,14 +63,6 @@ private slots: void on_recordScreenCheck_clicked(bool checked); - void on_bitRateBox_activated(int index); - - void on_maxSizeBox_activated(int index); - - void on_formatBox_activated(int index); - - void on_framelessCheck_stateChanged(int arg1); - void on_usbConnectBtn_clicked(); void on_wifiConnectBtn_clicked(); @@ -84,14 +76,12 @@ private slots: private: bool checkAdbRun(); void initUI(); + void updateBootConfig(bool toView = true); void execAdbCmd(); void delayMs(int ms); QString getGameScript(const QString &fileName); void slotShow(); void slotActivated(QSystemTrayIcon::ActivationReason reason); - void updateConnectedList(); - void updateUser(); - void loadUser(); protected: void closeEvent(QCloseEvent *event); diff --git a/QtScrcpy/util/config.cpp b/QtScrcpy/util/config.cpp index b9393ad..ee7397a 100644 --- a/QtScrcpy/util/config.cpp +++ b/QtScrcpy/util/config.cpp @@ -44,7 +44,7 @@ #define COMMON_CODEC_NAME_KEY "CodecName" #define COMMON_CODEC_NAME_DEF "-" -// user data +// user config #define COMMON_RECORD_KEY "RecordPath" #define COMMON_RECORD_DEF "" @@ -57,26 +57,41 @@ #define COMMON_RECORD_FORMAT_INDEX_KEY "RecordFormatIndex" #define COMMON_RECORD_FORMAT_INDEX_DEF 0 +#define COMMON_LOCK_ORIENTATION_INDEX_KEY "LockDirectionIndex" +#define COMMON_LOCK_ORIENTATION_INDEX_DEF 0 + +#define COMMON_RECORD_SCREEN_KEY "RecordScreen" +#define COMMON_RECORD_SCREEN_DEF false + +#define COMMON_RECORD_BACKGROUD_KEY "RecordBackGround" +#define COMMON_RECORD_BACKGROUD_DEF false + +#define COMMON_REVERSE_CONNECT_KEY "ReverseConnect" +#define COMMON_REVERSE_CONNECT_DEF true + +#define COMMON_SHOW_FPS_KEY "ShowFPS" +#define COMMON_SHOW_FPS_DEF false + +#define COMMON_WINDOW_ON_TOP_KEY "WindowOnTop" +#define COMMON_WINDOW_ON_TOP_DEF false + +#define COMMON_AUTO_OFF_SCREEN_KEY "AutoOffScreen" +#define COMMON_AUTO_OFF_SCREEN_DEF false + +#define COMMON_FRAMELESS_WINDOW_KEY "FramelessWindow" +#define COMMON_FRAMELESS_WINDOW_DEF false + +#define COMMON_KEEP_ALIVE_KEY "KeepAlive" +#define COMMON_KEEP_ALIVE_DEF false + +// device config #define SERIAL_WINDOW_RECT_KEY_X "WindowRectX" #define SERIAL_WINDOW_RECT_KEY_Y "WindowRectY" #define SERIAL_WINDOW_RECT_KEY_W "WindowRectW" #define SERIAL_WINDOW_RECT_KEY_H "WindowRectH" #define SERIAL_WINDOW_RECT_KEY_DEF -1 - -#define USER_NAME "PHONE" -#define USER_RECORD_SCREEN "RecordScreen" -#define USER_RECORD_BACKGROUD "RecordBackGround" -#define USER_REVERSE_CONNECT "ReverseConnect" -#define USER_SHOW_FPS "ShowFPS" -#define USER_WINDOW_ON_TOP "WindowOnTop" -#define USER_AUTO_OFF_SCREEN "AutoOffScreen" -#define USER_WINDOW_FRAMELESS "WindowFrameless" -#define USER_KEEP_ALIVE "KeepAlive" - -#define COMMON_FRAMELESS_WINDOW_KEY "FramelessWindow" -#define COMMON_FRAMELESS_WINDOW_DEF false - -// 最大尺寸 录制格式 +#define SERIAL_NICK_NAME_KEY "NickName" +#define SERIAL_NICK_NAME_DEF "Phone" QString Config::s_configPath = ""; @@ -110,101 +125,47 @@ const QString &Config::getConfigPath() return s_configPath; } -QString Config::getRecordPath() -{ - QString record; - m_userData->beginGroup(GROUP_COMMON); - record = m_userData->value(COMMON_RECORD_KEY, COMMON_RECORD_DEF).toString(); - m_userData->endGroup(); - return record; -} - -void Config::setRecordPath(const QString &path) +void Config::setUserBootConfig(const UserBootConfig &config) { m_userData->beginGroup(GROUP_COMMON); - m_userData->setValue(COMMON_RECORD_KEY, path); - m_userData->endGroup(); -} - -void Config::setUserBootConfig(const QString &serial, const UserBootConfig &config) -{ - m_userData->beginGroup(serial); - m_userData->setValue(USER_RECORD_SCREEN, config.recordScreen); - m_userData->setValue(USER_RECORD_BACKGROUD, config.recordBackground); - m_userData->setValue(USER_REVERSE_CONNECT, config.reverseConnect); - m_userData->setValue(USER_SHOW_FPS, config.showFPS); - m_userData->setValue(USER_WINDOW_ON_TOP, config.windowOnTop); - m_userData->setValue(USER_AUTO_OFF_SCREEN, config.autoOffScreen); - m_userData->setValue(USER_WINDOW_FRAMELESS, config.windowFrameless); - m_userData->setValue(USER_KEEP_ALIVE, config.keepAlive); + m_userData->setValue(COMMON_RECORD_KEY, config.recordPath); + m_userData->setValue(COMMON_BITRATE_INDEX_KEY, config.bitRateIndex); + m_userData->setValue(COMMON_MAX_SIZE_INDEX_KEY, config.maxSizeIndex); + m_userData->setValue(COMMON_RECORD_FORMAT_INDEX_KEY, config.recordFormatIndex); + m_userData->setValue(COMMON_FRAMELESS_WINDOW_KEY, config.framelessWindow); + m_userData->setValue(COMMON_LOCK_ORIENTATION_INDEX_KEY, config.lockOrientationIndex); + m_userData->setValue(COMMON_RECORD_SCREEN_KEY, config.recordScreen); + m_userData->setValue(COMMON_RECORD_BACKGROUD_KEY, config.recordBackground); + m_userData->setValue(COMMON_REVERSE_CONNECT_KEY, config.reverseConnect); + m_userData->setValue(COMMON_SHOW_FPS_KEY, config.showFPS); + m_userData->setValue(COMMON_WINDOW_ON_TOP_KEY, config.windowOnTop); + m_userData->setValue(COMMON_AUTO_OFF_SCREEN_KEY, config.autoOffScreen); + m_userData->setValue(COMMON_KEEP_ALIVE_KEY, config.keepAlive); m_userData->endGroup(); m_userData->sync(); } -UserBootConfig Config::getUserBootConfig(const QString &serial) +UserBootConfig Config::getUserBootConfig() { UserBootConfig config; - m_userData->beginGroup(serial); - config.recordScreen = m_userData->value(USER_RECORD_SCREEN, false).toBool(); - config.recordBackground = m_userData->value(USER_RECORD_BACKGROUD, false).toBool(); - config.reverseConnect = m_userData->value(USER_REVERSE_CONNECT, true).toBool(); - config.showFPS = m_userData->value(USER_SHOW_FPS, false).toBool(); - config.windowOnTop = m_userData->value(USER_WINDOW_ON_TOP, false).toBool(); - config.autoOffScreen = m_userData->value(USER_AUTO_OFF_SCREEN, false).toBool(); - config.windowFrameless = m_userData->value(USER_WINDOW_FRAMELESS, false).toBool(); - config.keepAlive = m_userData->value(USER_KEEP_ALIVE, false).toBool(); + m_userData->beginGroup(GROUP_COMMON); + config.recordPath = m_userData->value(COMMON_RECORD_KEY, COMMON_RECORD_DEF).toString(); + config.bitRateIndex = m_userData->value(COMMON_BITRATE_INDEX_KEY, COMMON_BITRATE_INDEX_DEF).toInt(); + config.maxSizeIndex = m_userData->value(COMMON_MAX_SIZE_INDEX_KEY, COMMON_MAX_SIZE_INDEX_DEF).toInt(); + config.recordFormatIndex = m_userData->value(COMMON_RECORD_FORMAT_INDEX_KEY, COMMON_RECORD_FORMAT_INDEX_DEF).toInt(); + config.lockOrientationIndex = m_userData->value(COMMON_LOCK_ORIENTATION_INDEX_KEY, COMMON_LOCK_ORIENTATION_INDEX_DEF).toInt(); + config.framelessWindow = m_userData->value(COMMON_FRAMELESS_WINDOW_KEY, COMMON_FRAMELESS_WINDOW_DEF).toBool(); + config.recordScreen = m_userData->value(COMMON_RECORD_SCREEN_KEY, COMMON_RECORD_SCREEN_DEF).toBool(); + config.recordBackground = m_userData->value(COMMON_RECORD_BACKGROUD_KEY, COMMON_RECORD_BACKGROUD_DEF).toBool(); + config.reverseConnect = m_userData->value(COMMON_REVERSE_CONNECT_KEY, COMMON_REVERSE_CONNECT_DEF).toBool(); + config.showFPS = m_userData->value(COMMON_SHOW_FPS_KEY, COMMON_SHOW_FPS_DEF).toBool(); + config.windowOnTop = m_userData->value(COMMON_WINDOW_ON_TOP_KEY, COMMON_WINDOW_ON_TOP_DEF).toBool(); + config.autoOffScreen = m_userData->value(COMMON_AUTO_OFF_SCREEN_KEY, COMMON_AUTO_OFF_SCREEN_DEF).toBool(); + config.keepAlive = m_userData->value(COMMON_KEEP_ALIVE_KEY, COMMON_KEEP_ALIVE_DEF).toBool(); m_userData->endGroup(); return config; } -int Config::getBitRateIndex() -{ - int bitRateIndex; - m_userData->beginGroup(GROUP_COMMON); - bitRateIndex = m_userData->value(COMMON_BITRATE_INDEX_KEY, COMMON_BITRATE_INDEX_DEF).toInt(); - m_userData->endGroup(); - return bitRateIndex; -} - -void Config::setBitRateIndex(int bitRateIndex) -{ - m_userData->beginGroup(GROUP_COMMON); - m_userData->setValue(COMMON_BITRATE_INDEX_KEY, bitRateIndex); - m_userData->endGroup(); -} - -int Config::getMaxSizeIndex() -{ - int maxSizeIndex; - m_userData->beginGroup(GROUP_COMMON); - maxSizeIndex = m_userData->value(COMMON_MAX_SIZE_INDEX_KEY, COMMON_MAX_SIZE_INDEX_DEF).toInt(); - m_userData->endGroup(); - return maxSizeIndex; -} - -void Config::setMaxSizeIndex(int maxSizeIndex) -{ - m_userData->beginGroup(GROUP_COMMON); - m_userData->setValue(COMMON_MAX_SIZE_INDEX_KEY, maxSizeIndex); - m_userData->endGroup(); -} - -int Config::getRecordFormatIndex() -{ - int recordFormatIndex; - m_userData->beginGroup(GROUP_COMMON); - recordFormatIndex = m_userData->value(COMMON_RECORD_FORMAT_INDEX_KEY, COMMON_RECORD_FORMAT_INDEX_DEF).toInt(); - m_userData->endGroup(); - return recordFormatIndex; -} - -void Config::setRecordFormatIndex(int recordFormatIndex) -{ - m_userData->beginGroup(GROUP_COMMON); - m_userData->setValue(COMMON_RECORD_FORMAT_INDEX_KEY, recordFormatIndex); - m_userData->endGroup(); -} - void Config::setRect(const QString &serial, const QRect &rc) { m_userData->beginGroup(serial); @@ -228,39 +189,23 @@ QRect Config::getRect(const QString &serial) return rc; } -void Config::setFramelessWindow(bool frameless) -{ - m_userData->beginGroup(GROUP_COMMON); - m_userData->setValue(COMMON_FRAMELESS_WINDOW_KEY, frameless); - m_userData->endGroup(); -} - -void Config::setUserName(const QString &serial, const QString &name) +void Config::setNickName(const QString &serial, const QString &name) { m_userData->beginGroup(serial); - m_userData->setValue(USER_NAME, name); + m_userData->setValue(SERIAL_NICK_NAME_KEY, name); m_userData->endGroup(); m_userData->sync(); } -QString Config::getUserName(const QString &serial) +QString Config::getNickName(const QString &serial) { QString name; m_userData->beginGroup(serial); - name = m_userData->value(USER_NAME,"PHONE").toString(); + name = m_userData->value(SERIAL_NICK_NAME_KEY, SERIAL_NICK_NAME_DEF).toString(); m_userData->endGroup(); return name; } -bool Config::getFramelessWindow() -{ - bool framelessWindow = false; - m_userData->beginGroup(GROUP_COMMON); - framelessWindow = m_userData->value(COMMON_FRAMELESS_WINDOW_KEY, COMMON_FRAMELESS_WINDOW_DEF).toBool(); - m_userData->endGroup(); - return framelessWindow; -} - QString Config::getServerVersion() { QString server; diff --git a/QtScrcpy/util/config.h b/QtScrcpy/util/config.h index af3104d..2049c4f 100644 --- a/QtScrcpy/util/config.h +++ b/QtScrcpy/util/config.h @@ -4,15 +4,21 @@ #include #include #include + struct UserBootConfig { + QString recordPath = ""; + int bitRateIndex = 0; + int maxSizeIndex = 0; + int recordFormatIndex = 0; + int lockOrientationIndex = 0; bool recordScreen = false; bool recordBackground = false; bool reverseConnect = true; bool showFPS = false; bool windowOnTop = false; bool autoOffScreen = false; - bool windowFrameless = false; + bool framelessWindow = false; bool keepAlive = false; }; @@ -23,6 +29,7 @@ class Config : public QObject public: static Config &getInstance(); + // config QString getTitle(); QString getServerVersion(); @@ -37,25 +44,18 @@ public: QString getCodecOptions(); QString getCodecName(); QStringList getConnectedGroups(); - void deleteGroup(const QString &serial); - // user data - QString getRecordPath(); - void setRecordPath(const QString &path); - int getBitRateIndex(); - void setBitRateIndex(int bitRateIndex); - int getMaxSizeIndex(); - void setMaxSizeIndex(int maxSizeIndex); - int getRecordFormatIndex(); - void setRecordFormatIndex(int recordFormatIndex); + // user data:common + void setUserBootConfig(const UserBootConfig &config); + UserBootConfig getUserBootConfig(); + + // user data:device + void setNickName(const QString &serial, const QString &name); + QString getNickName(const QString &serial); void setRect(const QString &serial, const QRect &rc); QRect getRect(const QString &serial); - bool getFramelessWindow(); - void setFramelessWindow(bool frameless); - void setUserName(const QString &serial, const QString &name); - QString getUserName(const QString &serial); - void setUserBootConfig(const QString &serial, const UserBootConfig &config); - UserBootConfig getUserBootConfig(const QString &serial); + + void deleteGroup(const QString &serial); private: explicit Config(QObject *parent = nullptr);