Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev #469

Merged
merged 4 commits into from
Aug 8, 2021
Merged

Dev #469

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 5 additions & 14 deletions QtScrcpy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,17 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# ***********************************************************
# Qt Package finding
# ***********************************************************

find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Network LinguistTools REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Network LinguistTools REQUIRED)

# ***********************************************************
# Cross-platform settings
# ***********************************************************

if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")

if(MSVC)
# FFmpeg cannot be compiled natively by MSVC version < 12.0 (2013)
if(MSVC_VERSION LESS 1800)
message(FATAL_ERROR "[QtScrcpy] FATAL ERROR: MSVC version is older than 12.0 (2013).")
endif()

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")

endif()


Expand Down Expand Up @@ -145,6 +135,7 @@ if(WIN32)
endif()

set(QS_DLL_PATH "${PROJECT_SOURCE_DIR}/third_party/ffmpeg/bin/x64")

elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) # Compiler is 32-bit
message(STATUS "[QtScrcpy] 32-bit compiler detected.")

Expand Down Expand Up @@ -173,17 +164,17 @@ if(WIN32)
)
endforeach()

# If MinGW is used, it is not appropriate to link static MSVC libs.
# Instead, we link DLLs directly
if(MSVC)
message(STATUS "[QtScrcpy] Microsoft Visual C++ is used.")
link_directories(${QS_LIB_PATH})
target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE ${QS_LIB_PATH})
set(QS_EXTERNAL_LIBS_FFMPEG
avformat
avcodec
avutil
swscale
)
# If MinGW is used, it is not appropriate to link static MSVC libs.
# Instead, we link DLLs directly
elseif(MINGW)
message(STATUS "[QtScrcpy] MinGW GCC is used.")
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE
Expand Down
4 changes: 2 additions & 2 deletions QtScrcpy/device/device.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#ifndef DEVICE_H
#ifndef DEVICE_H
#define DEVICE_H

#include <QElapsedTimer>
Expand Down Expand Up @@ -30,7 +30,7 @@ class Device : public QObject
QString serial = ""; // 设备序列号
quint16 localPort = 27183; // reverse时本地监听端口
quint16 maxSize = 720; // 视频分辨率
quint32 bitRate = 8000000; // 视频比特率
quint32 bitRate = 2000000; // 视频比特率
quint32 maxFps = 60; // 视频最大帧率
bool closeScreen = false; // 启动时自动息屏
bool useReverse = true; // true:先使用adb reverse,失败后自动使用adb forward;false:直接使用adb forward
Expand Down
8 changes: 8 additions & 0 deletions QtScrcpy/device/ui/videoform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,14 @@ void VideoForm::mousePressEvent(QMouseEvent *event)
if (event->button() == Qt::MiddleButton) {
if (m_device && !m_device->isCurrentCustomKeymap()) {
emit m_device->postGoHome();
return;
}
}

if (event->button() == Qt::RightButton) {
if (m_device && !m_device->isCurrentCustomKeymap()) {
emit m_device->postGoBack();
return;
}
}

Expand Down
36 changes: 22 additions & 14 deletions QtScrcpy/dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog)

Dialog::~Dialog()
{
qDebug() << "~Dialog()";
updateBootConfig(false);
m_deviceManage.disconnectAllDevice();
delete ui;
Expand All @@ -108,14 +109,9 @@ void Dialog::initUI()
setAttribute(Qt::WA_DeleteOnClose);
setWindowFlags(windowFlags() | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);

ui->bitRateBox->addItem("2000000");
ui->bitRateBox->addItem("6000000");
ui->bitRateBox->addItem("8000000");
ui->bitRateBox->addItem("10000000");
ui->bitRateBox->addItem("20000000");
ui->bitRateBox->addItem("50000000");
ui->bitRateBox->addItem("100000000");
ui->bitRateBox->addItem("200000000");
setWindowTitle(Config::getInstance().getTitle());

ui->bitRateEdit->setValidator(new QIntValidator(1, 99999, this));

ui->maxSizeBox->addItem("640");
ui->maxSizeBox->addItem("720");
Expand Down Expand Up @@ -156,7 +152,16 @@ void Dialog::updateBootConfig(bool toView)
if (toView) {
UserBootConfig config = Config::getInstance().getUserBootConfig();

ui->bitRateBox->setCurrentIndex(config.bitRateIndex);
if(config.bitRate == 0) {
ui->bitRateBox->setCurrentText("Mbps");
} else if(config.bitRate % 1000000 == 0) {
ui->bitRateEdit->setText(QString::number(config.bitRate / 1000000));
ui->bitRateBox->setCurrentText("Mbps");
} else {
ui->bitRateEdit->setText(QString::number(config.bitRate / 1000));
ui->bitRateBox->setCurrentText("Kbps");
}

ui->maxSizeBox->setCurrentIndex(config.maxSizeIndex);
ui->formatBox->setCurrentIndex(config.recordFormatIndex);
ui->recordPathEdt->setText(config.recordPath);
Expand All @@ -173,7 +178,7 @@ void Dialog::updateBootConfig(bool toView)
} else {
UserBootConfig config;

config.bitRateIndex = ui->bitRateBox->currentIndex();
config.bitRate = getBitRate();
config.maxSizeIndex = ui->maxSizeBox->currentIndex();
config.recordFormatIndex = ui->formatBox->currentIndex();
config.recordPath = ui->recordPathEdt->text();
Expand All @@ -187,7 +192,6 @@ void Dialog::updateBootConfig(bool toView)
config.framelessWindow = ui->framelessCheck->isChecked();
config.keepAlive = ui->stayAwakeCheck->isChecked();
config.simpleMode = ui->useSingleModeCheck->isChecked();

Config::getInstance().setUserBootConfig(config);
}
}
Expand Down Expand Up @@ -235,7 +239,6 @@ void Dialog::slotActivated(QSystemTrayIcon::ActivationReason reason)
switch (reason) {
case QSystemTrayIcon::Trigger:
this->show();
m_hideIcon->hide();
break;
default:
break;
Expand Down Expand Up @@ -278,13 +281,12 @@ void Dialog::on_startServerBtn_clicked()
}
}

quint32 bitRate = ui->bitRateBox->currentText().trimmed().toUInt();
// this is ok that "native" toUshort is 0
quint16 videoSize = ui->maxSizeBox->currentText().trimmed().toUShort();
Device::DeviceParams params;
params.serial = ui->serialBox->currentText().trimmed();
params.maxSize = videoSize;
params.bitRate = bitRate;
params.bitRate = getBitRate();
// on devices with Android >= 10, the capture frame rate can be limited
params.maxFps = static_cast<quint32>(Config::getInstance().getMaxFps());
params.recordFileName = absFilePath;
Expand Down Expand Up @@ -621,3 +623,9 @@ void Dialog::on_serialBox_currentIndexChanged(const QString &arg1)
{
ui->userNameEdt->setText(Config::getInstance().getNickName(arg1));
}

quint32 Dialog::getBitRate()
{
return ui->bitRateEdit->text().trimmed().toUInt() *
(ui->bitRateBox->currentText() == QString("Mbps") ? 1000000 : 1000);
}
22 changes: 1 addition & 21 deletions QtScrcpy/dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,47 +32,26 @@ class Dialog : public QDialog

private slots:
void on_updateDevice_clicked();

void on_startServerBtn_clicked();

void on_stopServerBtn_clicked();

void on_wirelessConnectBtn_clicked();

void on_startAdbdBtn_clicked();

void on_getIPBtn_clicked();

void on_wirelessDisConnectBtn_clicked();

void on_selectRecordPathBtn_clicked();

void on_recordPathEdt_textChanged(const QString &arg1);

void on_adbCommandBtn_clicked();

void on_stopAdbBtn_clicked();

void on_clearOut_clicked();

void on_stopAllServerBtn_clicked();

void on_refreshGameScriptBtn_clicked();

void on_applyScriptBtn_clicked();

void on_recordScreenCheck_clicked(bool checked);

void on_usbConnectBtn_clicked();

void on_wifiConnectBtn_clicked();

void on_connectedPhoneList_itemDoubleClicked(QListWidgetItem *item);

void on_updateNameBtn_clicked();

void on_useSingleModeCheck_clicked();

void on_serialBox_currentIndexChanged(const QString &arg1);

private:
Expand All @@ -85,6 +64,7 @@ private slots:
void slotShow();
void slotActivated(QSystemTrayIcon::ActivationReason reason);
int findDeviceFromeSerialBox(bool wifi);
quint32 getBitRate();

protected:
void closeEvent(QCloseEvent *event);
Expand Down
Loading