diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9000571..748be5c 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -68,7 +68,7 @@ jobs: - uses: actions/upload-artifact@v1 with: name: ${{ steps.package.outputs.package-name }}.zip - path: ci/build/${{ steps.package.outputs.package-name }}.app + path: ci/build/${{ steps.package.outputs.package-name }}.dmg # Upload to release - name: Upload Release if: startsWith(github.ref, 'refs/tags/') diff --git a/QtScrcpy/CMakeLists.txt b/QtScrcpy/CMakeLists.txt index deeb394..e2fbca4 100755 --- a/QtScrcpy/CMakeLists.txt +++ b/QtScrcpy/CMakeLists.txt @@ -163,6 +163,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(QC_UTIL_SOURCES ${QC_UTIL_SOURCES} util/mousetap/cocoamousetap.h util/mousetap/cocoamousetap.mm + util/path.h + util/path.mm ) endif() source_group(util FILES ${QC_UTIL_SOURCES}) diff --git a/QtScrcpy/QtScrcpyCore b/QtScrcpy/QtScrcpyCore index f81d369..9b81a31 160000 --- a/QtScrcpy/QtScrcpyCore +++ b/QtScrcpy/QtScrcpyCore @@ -1 +1 @@ -Subproject commit f81d3696cb79964e073415798bc070415337877d +Subproject commit 9b81a312ad2e8157c48dc042e973a81702357509 diff --git a/QtScrcpy/ui/dialog.cpp b/QtScrcpy/ui/dialog.cpp index 610e244..abc143f 100644 --- a/QtScrcpy/ui/dialog.cpp +++ b/QtScrcpy/ui/dialog.cpp @@ -292,7 +292,7 @@ void Dialog::on_startServerBtn_clicked() { outLog("start server...", false); - // this is ok that "native" toUshort is 0 + // this is ok that "original" toUshort is 0 quint16 videoSize = ui->maxSizeBox->currentText().trimmed().toUShort(); qsc::DeviceParams params; params.serial = ui->serialBox->currentText().trimmed(); diff --git a/QtScrcpy/util/config.cpp b/QtScrcpy/util/config.cpp index 7deca9a..49eeb2a 100644 --- a/QtScrcpy/util/config.cpp +++ b/QtScrcpy/util/config.cpp @@ -4,6 +4,9 @@ #include #include "config.h" +#ifdef Q_OS_OSX +#include "path.h" +#endif #define GROUP_COMMON "common" @@ -21,7 +24,7 @@ #define COMMON_SERVER_PATH_DEF "/data/local/tmp/scrcpy-server.jar" #define COMMON_MAX_FPS_KEY "MaxFps" -#define COMMON_MAX_FPS_DEF 60 +#define COMMON_MAX_FPS_DEF 0 #define COMMON_DESKTOP_OPENGL_KEY "UseDesktopOpenGL" #define COMMON_DESKTOP_OPENGL_DEF -1 @@ -125,7 +128,15 @@ const QString &Config::getConfigPath() QFileInfo fileInfo(s_configPath); if (s_configPath.isEmpty() || !fileInfo.isDir()) { // default application dir + // mac系统当从finder打开app时,默认工作目录不再是可执行程序的目录了,而是"/" + // 而Qt的获取工作目录的api都依赖QCoreApplication的初始化,所以使用mac api获取当前目录 +#ifdef Q_OS_OSX + // get */QtScrcpy.app path + s_configPath = Path::GetCurrentPath(); + s_configPath += "/Contents/MacOS/config"; +#else s_configPath = "config"; +#endif } } return s_configPath; @@ -227,7 +238,7 @@ QString Config::getServerVersion() int Config::getMaxFps() { - int fps = 60; + int fps = 0; m_settings->beginGroup(GROUP_COMMON); fps = m_settings->value(COMMON_MAX_FPS_KEY, COMMON_MAX_FPS_DEF).toInt(); m_settings->endGroup(); diff --git a/QtScrcpy/util/path.h b/QtScrcpy/util/path.h new file mode 100644 index 0000000..f8c9071 --- /dev/null +++ b/QtScrcpy/util/path.h @@ -0,0 +1,6 @@ +#pragma once + +class Path { +public: + static const char* GetCurrentPath(); +}; diff --git a/QtScrcpy/util/path.mm b/QtScrcpy/util/path.mm new file mode 100644 index 0000000..ee7e2b8 --- /dev/null +++ b/QtScrcpy/util/path.mm @@ -0,0 +1,7 @@ +#include "path.h" + +#import + +const char* Path::GetCurrentPath() { + return [[[NSBundle mainBundle] bundlePath] UTF8String]; +} diff --git a/config/config.ini b/config/config.ini index 593dfcd..87949f4 100644 --- a/config/config.ini +++ b/config/config.ini @@ -4,7 +4,7 @@ WindowTitle=QtScrcpy # 推送到安卓设备的文件保存路径(必须以/结尾) PushFilePath=/sdcard/ # 最大fps(仅支持Android 10以上) -MaxFps=60 +MaxFps=0 # 是否渲染过期视频帧(跳过过期视频帧意味着更低的延迟) RenderExpiredFrames=0 # 视频解码方式:-1 自动,0 软解,1 dx硬解,2 opengl硬解