diff --git a/QtScrcpy/CMakeLists.txt b/QtScrcpy/CMakeLists.txt index 81b642d..cc35681 100755 --- a/QtScrcpy/CMakeLists.txt +++ b/QtScrcpy/CMakeLists.txt @@ -268,6 +268,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD # config file copy to Contents/MacOS/config COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/../config/config.ini" "${MACOS_BUNDLE_PATH}/MacOS/config/config.ini" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.sh" "${MACOS_BUNDLE_PATH}/MacOS" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.apk" "${MACOS_BUNDLE_PATH}/MacOS" ) # Step 2. ues MACOSX_PACKAGE_LOCATION copy icns to Resources @@ -297,6 +299,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") get_target_property(QSC_BIN_OUTPUT_PATH ${PROJECT_NAME} RUNTIME_OUTPUT_DIRECTORY) set(QSC_DEPLOY_PATH ${QSC_BIN_OUTPUT_PATH}) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.sh" "${QSC_BIN_OUTPUT_PATH}" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/sndcpy/sndcpy.apk" "${QSC_BIN_OUTPUT_PATH}" + ) + set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) diff --git a/QtScrcpy/audio/audiooutput.cpp b/QtScrcpy/audio/audiooutput.cpp index db5c88e..5d71db0 100644 --- a/QtScrcpy/audio/audiooutput.cpp +++ b/QtScrcpy/audio/audiooutput.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include "audiooutput.h" @@ -67,10 +68,18 @@ bool AudioOutput::runSndcpyProcess(const QString &serial, int port) m_sndcpy.kill(); } +#ifdef Q_OS_WIN32 QStringList params; params << serial; params << QString("%1").arg(port); m_sndcpy.start("sndcpy.bat", params); +#else + QStringList params; + params << "sndcpy.sh"; + params << serial; + params << QString("%1").arg(port); + m_sndcpy.start("bash", params); +#endif /* if (!m_sndcpy.waitForStarted()) { qWarning() << "AudioOutput::start sndcpy.bat failed"; @@ -159,9 +168,15 @@ void AudioOutput::startRecvData(int port) qInfo() << "AudioOutput::audio socket state changed:" << state; }); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) connect(audioSocket, &QTcpSocket::errorOccurred, audioSocket, [](QAbstractSocket::SocketError error) { qInfo() << "AudioOutput::audio socket error occurred:" << error; }); +#else + connect(audioSocket, QOverload::of(&QAbstractSocket::error), audioSocket, [](QAbstractSocket::SocketError error) { + qInfo() << "AudioOutput::audio socket error occurred:" << error; + }); +#endif m_workerThread.start(); emit connectTo(port); diff --git a/QtScrcpy/main.cpp b/QtScrcpy/main.cpp index 7471877..371ec52 100644 --- a/QtScrcpy/main.cpp +++ b/QtScrcpy/main.cpp @@ -29,7 +29,10 @@ int main(int argc, char *argv[]) #endif #ifdef Q_OS_OSX - qputenv("QTSCRCPY_KEYMAP_PATH", "../../../../../keymap"); + qputenv("QTSCRCPY_ADB_PATH", "../../../../../../QtScrcpy/QtScrcpyCore/src/third_party/adb/mac/adb"); + qputenv("QTSCRCPY_SERVER_PATH", "../../../../../../QtScrcpy/QtScrcpyCore/src/third_party/scrcpy-server"); + qputenv("QTSCRCPY_KEYMAP_PATH", "../../../../../../keymap"); + qputenv("QTSCRCPY_CONFIG_PATH", "../../../../../../config"); #endif #ifdef Q_OS_LINUX diff --git a/QtScrcpy/sndcpy/sndcpy.sh b/QtScrcpy/sndcpy/sndcpy.sh new file mode 100755 index 0000000..6b35f2b --- /dev/null +++ b/QtScrcpy/sndcpy/sndcpy.sh @@ -0,0 +1 @@ +echo aaaa \ No newline at end of file