refactor: add QtScrcpyCore

This commit is contained in:
Barry 2022-06-05 18:03:08 +08:00
commit f675e11f3c
73 changed files with 72 additions and 471 deletions

View file

@ -94,10 +94,10 @@ message(STATUS "[${PROJECT_NAME}] Qt version is: ${QT_VERSION_MAJOR}.${QT_VERSIO
# adb
set(QC_ADB_SOURCES
adb/adbprocess.h
adb/adbprocess.cpp
QtScrcpyCore/src/adb/adbprocess.h
QtScrcpyCore/src/adb/adbprocess.cpp
)
source_group(adb FILES ${QC_ADB_SOURCES})
source_group(QtScrcpyCore/src/adb FILES ${QC_ADB_SOURCES})
# common
set(QC_COMMON_SOURCES
@ -107,64 +107,64 @@ source_group(common FILES ${QC_COMMON_SOURCES})
# include
set(QC_INCLUDE_SOURCES
include/QtScrcpyCore.h
include/QtScrcpyCoreDef.h
QtScrcpyCore/include/QtScrcpyCore.h
QtScrcpyCore/include/QtScrcpyCoreDef.h
)
source_group(include FILES ${QC_INCLUDE_SOURCES})
source_group(QtScrcpyCore/include FILES ${QC_INCLUDE_SOURCES})
# device
set(QC_DEVICE_SOURCES
device/device.h
device/device.cpp
device/android/input.h
device/android/keycodes.h
device/controller/controller.h
device/controller/controller.cpp
device/controller/inputconvert/inputconvertbase.h
device/controller/inputconvert/inputconvertbase.cpp
device/controller/inputconvert/inputconvertnormal.h
device/controller/inputconvert/inputconvertnormal.cpp
device/controller/inputconvert/inputconvertgame.h
device/controller/inputconvert/inputconvertgame.cpp
device/controller/inputconvert/controlmsg.h
device/controller/inputconvert/controlmsg.cpp
device/controller/inputconvert/keymap/keymap.h
device/controller/inputconvert/keymap/keymap.cpp
device/controller/receiver/devicemsg.h
device/controller/receiver/devicemsg.cpp
device/controller/receiver/receiver.h
device/controller/receiver/receiver.cpp
device/decoder/avframeconvert.h
device/decoder/avframeconvert.cpp
device/decoder/decoder.h
device/decoder/decoder.cpp
device/decoder/fpscounter.h
device/decoder/fpscounter.cpp
device/decoder/videobuffer.h
device/decoder/videobuffer.cpp
device/filehandler/filehandler.h
device/filehandler/filehandler.cpp
device/recorder/recorder.h
device/recorder/recorder.cpp
device/render/qyuvopenglwidget.h
device/render/qyuvopenglwidget.cpp
device/server/server.h
device/server/server.cpp
device/server/tcpserver.h
device/server/tcpserver.cpp
device/server/videosocket.h
device/server/videosocket.cpp
device/stream/stream.h
device/stream/stream.cpp
QtScrcpyCore/src/device/device.h
QtScrcpyCore/src/device/device.cpp
QtScrcpyCore/src/device/android/input.h
QtScrcpyCore/src/device/android/keycodes.h
QtScrcpyCore/src/device/controller/controller.h
QtScrcpyCore/src/device/controller/controller.cpp
QtScrcpyCore/src/device/controller/inputconvert/inputconvertbase.h
QtScrcpyCore/src/device/controller/inputconvert/inputconvertbase.cpp
QtScrcpyCore/src/device/controller/inputconvert/inputconvertnormal.h
QtScrcpyCore/src/device/controller/inputconvert/inputconvertnormal.cpp
QtScrcpyCore/src/device/controller/inputconvert/inputconvertgame.h
QtScrcpyCore/src/device/controller/inputconvert/inputconvertgame.cpp
QtScrcpyCore/src/device/controller/inputconvert/controlmsg.h
QtScrcpyCore/src/device/controller/inputconvert/controlmsg.cpp
QtScrcpyCore/src/device/controller/inputconvert/keymap/keymap.h
QtScrcpyCore/src/device/controller/inputconvert/keymap/keymap.cpp
QtScrcpyCore/src/device/controller/receiver/devicemsg.h
QtScrcpyCore/src/device/controller/receiver/devicemsg.cpp
QtScrcpyCore/src/device/controller/receiver/receiver.h
QtScrcpyCore/src/device/controller/receiver/receiver.cpp
QtScrcpyCore/src/device/decoder/avframeconvert.h
QtScrcpyCore/src/device/decoder/avframeconvert.cpp
QtScrcpyCore/src/device/decoder/decoder.h
QtScrcpyCore/src/device/decoder/decoder.cpp
QtScrcpyCore/src/device/decoder/fpscounter.h
QtScrcpyCore/src/device/decoder/fpscounter.cpp
QtScrcpyCore/src/device/decoder/videobuffer.h
QtScrcpyCore/src/device/decoder/videobuffer.cpp
QtScrcpyCore/src/device/filehandler/filehandler.h
QtScrcpyCore/src/device/filehandler/filehandler.cpp
QtScrcpyCore/src/device/recorder/recorder.h
QtScrcpyCore/src/device/recorder/recorder.cpp
QtScrcpyCore/src/device/render/qyuvopenglwidget.h
QtScrcpyCore/src/device/render/qyuvopenglwidget.cpp
QtScrcpyCore/src/device/server/server.h
QtScrcpyCore/src/device/server/server.cpp
QtScrcpyCore/src/device/server/tcpserver.h
QtScrcpyCore/src/device/server/tcpserver.cpp
QtScrcpyCore/src/device/server/videosocket.h
QtScrcpyCore/src/device/server/videosocket.cpp
QtScrcpyCore/src/device/stream/stream.h
QtScrcpyCore/src/device/stream/stream.cpp
)
source_group(device FILES ${QC_DEVICE_SOURCES})
source_group(QtScrcpyCore/src/device FILES ${QC_DEVICE_SOURCES})
# devicemanage
set(QC_DEVICEMANAGE_SOURCES
devicemanage/devicemanage.h
devicemanage/devicemanage.cpp
QtScrcpyCore/src/devicemanage/devicemanage.h
QtScrcpyCore/src/devicemanage/devicemanage.cpp
)
source_group(devicemanage FILES ${QC_DEVICEMANAGE_SOURCES})
source_group(QtScrcpyCore/src/devicemanage FILES ${QC_DEVICEMANAGE_SOURCES})
# fontawesome
set(QC_FONTAWESOME_SOURCES
@ -293,22 +293,22 @@ add_executable(${PROJECT_NAME} ${QC_RUNTIME_TYPE} ${QC_PROJECT_SOURCES})
# Internal include path (todo: remove this, use absolute path include)
#
target_include_directories(${PROJECT_NAME} PRIVATE adb)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/adb)
target_include_directories(${PROJECT_NAME} PRIVATE common)
target_include_directories(${PROJECT_NAME} PRIVATE device)
target_include_directories(${PROJECT_NAME} PRIVATE device/filehandler)
target_include_directories(${PROJECT_NAME} PRIVATE device/android)
target_include_directories(${PROJECT_NAME} PRIVATE device/decoder)
target_include_directories(${PROJECT_NAME} PRIVATE device/controller)
target_include_directories(${PROJECT_NAME} PRIVATE device/controller/receiver)
target_include_directories(${PROJECT_NAME} PRIVATE device/controller/inputconvert)
target_include_directories(${PROJECT_NAME} PRIVATE device/controller/inputconvert/keymap)
target_include_directories(${PROJECT_NAME} PRIVATE device/server)
target_include_directories(${PROJECT_NAME} PRIVATE device/stream)
target_include_directories(${PROJECT_NAME} PRIVATE device/render)
target_include_directories(${PROJECT_NAME} PRIVATE device/ui)
target_include_directories(${PROJECT_NAME} PRIVATE device/recorder)
target_include_directories(${PROJECT_NAME} PRIVATE devicemanage)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/filehandler)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/android)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/decoder)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/controller)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/controller/receiver)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/controller/inputconvert)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/controller/inputconvert/keymap)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/server)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/stream)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/render)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/ui)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/device/recorder)
target_include_directories(${PROJECT_NAME} PRIVATE QtScrcpyCore/src/devicemanage)
target_include_directories(${PROJECT_NAME} PRIVATE fontawesome)
target_include_directories(${PROJECT_NAME} PRIVATE util)
target_include_directories(${PROJECT_NAME} PRIVATE uibase)

View file

@ -1,214 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2018-10-07T12:36:10
#
#-------------------------------------------------
QT += core gui
QT += network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = QtScrcpy
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
msvc{
QMAKE_CFLAGS += -source-charset:utf-8
QMAKE_CXXFLAGS += -source-charset:utf-8
}
# warning as error
#4566 https://github.com/Chuyu-Team/VC-LTL/issues/27
*g++*: QMAKE_CXXFLAGS += -Werror
*msvc*: QMAKE_CXXFLAGS += /WX /wd4566
# run a server debugger and wait for a client to be attached
# DEFINES += SERVER_DEBUGGER
# select the debugger method ('old' for Android < 9, 'new' for Android >= 9)
# DEFINES += SERVER_DEBUGGER_METHOD_NEW
# 源码
SOURCES += \
main.cpp
# 子工程
include ($$PWD/include/include.pri)
include ($$PWD/common/common.pri)
include ($$PWD/adb/adb.pri)
include ($$PWD/uibase/uibase.pri)
include ($$PWD/ui/ui.pri)
include ($$PWD/fontawesome/fontawesome.pri)
include ($$PWD/util/util.pri)
include ($$PWD/device/device.pri)
include ($$PWD/devicemanage/devicemanage.pri)
# 附加包含路径
INCLUDEPATH += \
$$PWD/common \
$$PWD/adb \
$$PWD/uibase \
$$PWD/ui \
$$PWD/util \
$$PWD/device \
$$PWD/devicemanage \
$$PWD/fontawesome
# 如果变量没有定义
# !defined(TEST_VAR, var) {
# message("test")
# }
# 从文件读取版本号
CAT_VERSION = $$cat($$PWD/version)
# 拆分出版本号
VERSION_MAJOR = $$section(CAT_VERSION, ., 0, 0)
VERSION_MINOR = $$section(CAT_VERSION, ., 1, 1)
VERSION_PATCH = $$section(CAT_VERSION, ., 2, 2)
message("version:" $${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_PATCH})
# qmake变量的方式定义版本号
VERSION = $${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_PATCH}
# ***********************************************************
# Win平台下配置
# ***********************************************************
win32 {
# 通过rc的方式的话VERSION变量rc中获取不到,定义为宏方便rc中使用
DEFINES += VERSION_MAJOR=$${VERSION_MAJOR}
DEFINES += VERSION_MINOR=$${VERSION_MINOR}
DEFINES += VERSION_PATCH=$${VERSION_PATCH}
DEFINES += VERSION_RC_STR=\\\"$${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_PATCH}\\\"
contains(QT_ARCH, x86_64) {
message("x64")
# 输出目录
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../output/x64/debug
} else {
DESTDIR = $$PWD/../output/x64/release
}
# 依赖模块
LIBS += \
-L$$PWD/../third_party/ffmpeg/lib/x64 -lavformat \
-L$$PWD/../third_party/ffmpeg/lib/x64 -lavcodec \
-L$$PWD/../third_party/ffmpeg/lib/x64 -lavutil \
-L$$PWD/../third_party/ffmpeg/lib/x64 -lswscale
WIN_FFMPEG_SRC = $$PWD/../third_party/ffmpeg/bin/x64/*.dll
} else {
message("x86")
# 输出目录
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../output/x86/debug
} else {
DESTDIR = $$PWD/../output/x86/release
}
# 依赖模块
LIBS += \
-L$$PWD/../third_party/ffmpeg/lib/x86 -lavformat \
-L$$PWD/../third_party/ffmpeg/lib/x86 -lavcodec \
-L$$PWD/../third_party/ffmpeg/lib/x86 -lavutil \
-L$$PWD/../third_party/ffmpeg/lib/x86 -lswscale
WIN_FFMPEG_SRC = $$PWD/../third_party/ffmpeg/bin/x86/*.dll
}
# 复制依赖库
WIN_DST = $$DESTDIR
WIN_FFMPEG_SRC ~= s,/,\\,g
WIN_DST ~= s,/,\\,g
QMAKE_POST_LINK += $$quote($$QMAKE_COPY $$WIN_FFMPEG_SRC $$WIN_DST$$escape_expand(\n\t))
# windows rc file
RC_FILE = $$PWD/res/QtScrcpy.rc
}
# ***********************************************************
# Mac平台下配置
# ***********************************************************
macos {
# 输出目录
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../output/debug
} else {
DESTDIR = $$PWD/../output/release
}
# 依赖模块
LIBS += \
-L$$PWD/../third_party/ffmpeg/lib -lavformat.58 \
-L$$PWD/../third_party/ffmpeg/lib -lavcodec.58 \
-L$$PWD/../third_party/ffmpeg/lib -lavutil.56 \
-L$$PWD/../third_party/ffmpeg/lib -lswscale.5
# mac bundle file
APP_SCRCPY_SERVER.files = $$files($$PWD/../third_party/scrcpy-server)
APP_SCRCPY_SERVER.path = Contents/MacOS
QMAKE_BUNDLE_DATA += APP_SCRCPY_SERVER
APP_ADB.files = $$files($$PWD/../third_party/adb/mac/adb)
APP_ADB.path = Contents/MacOS
QMAKE_BUNDLE_DATA += APP_ADB
APP_FFMPEG.files = $$files($$PWD/../third_party/ffmpeg/lib/*.dylib)
APP_FFMPEG.path = Contents/MacOS
QMAKE_BUNDLE_DATA += APP_FFMPEG
APP_CONFIG.files = $$files($$PWD/../config/config.ini)
APP_CONFIG.path = Contents/MacOS/config
QMAKE_BUNDLE_DATA += APP_CONFIG
# mac application icon
ICON = $$PWD/res/QtScrcpy.icns
QMAKE_INFO_PLIST = $$PWD/res/Info_Mac.plist
# 定义目标命令(修改版本号字段)
plistupdate.commands = /usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString $$VERSION\" \
-c \"Set :CFBundleVersion $$VERSION\" \
$$DESTDIR/$${TARGET}.app/Contents/Info.plist
# 增加额外目标
QMAKE_EXTRA_TARGETS += plistupdate
# 设置为前置依赖
PRE_TARGETDEPS += plistupdate
}
# ***********************************************************
# Linux平台下配置
# ***********************************************************
linux {
# 输出目录
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../output/debug
} else {
DESTDIR = $$PWD/../output/release
}
# 依赖模块
LIBS += \
-L$$PWD/../third_party/ffmpeg/lib -lavformat \
-L$$PWD/../third_party/ffmpeg/lib -lavcodec \
-L$$PWD/../third_party/ffmpeg/lib -lavutil \
-L$$PWD/../third_party/ffmpeg/lib -lswscale
# linux set app icon: https://blog.csdn.net/MrNoboday/article/details/82870853
}
# message("test")
RESOURCES += \
res/res.qrc

View file

@ -6,7 +6,7 @@
#include <QPointer>
#include <QTime>
#include "../include/QtScrcpyCore.h"
#include "../../include/QtScrcpyCore.h"
#include "controlmsg.h"

View file

@ -4,7 +4,7 @@
#include <QMap>
#include <QPointer>
#include "../include/QtScrcpyCore.h"
#include "../../include/QtScrcpyCore.h"
namespace qsc {

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/adbprocess.h
SOURCES += \
$$PWD/adbprocess.cpp

View file

@ -1,3 +0,0 @@
HEADERS += \
$$PWD/input.h \
$$PWD/keycodes.h

View file

@ -1,14 +0,0 @@
HEADERS += \
$$PWD/controller.h
SOURCES += \
$$PWD/controller.cpp
include ($$PWD/receiver/receiver.pri)
include ($$PWD/inputconvert/inputconvert.pri)
INCLUDEPATH += \
$$PWD/receiver \
$$PWD/inputconvert

View file

@ -1,17 +0,0 @@
HEADERS += \
$$PWD/inputconvertbase.h \
$$PWD/inputconvertgame.h \
$$PWD/inputconvertnormal.h \
$$PWD/controlmsg.h
SOURCES += \
$$PWD/inputconvertbase.cpp \
$$PWD/inputconvertgame.cpp \
$$PWD/inputconvertnormal.cpp \
$$PWD/controlmsg.cpp
include ($$PWD/keymap/keymap.pri)
INCLUDEPATH += \
$$PWD/keymap

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/keymap.h
SOURCES += \
$$PWD/keymap.cpp

View file

@ -1,7 +0,0 @@
HEADERS += \
$$PWD/devicemsg.h \
$$PWD/receiver.h
SOURCES += \
$$PWD/devicemsg.cpp \
$$PWD/receiver.cpp

View file

@ -1,11 +0,0 @@
HEADERS += \
$$PWD/decoder.h \
$$PWD/fpscounter.h \
$$PWD/avframeconvert.h \
$$PWD/videobuffer.h
SOURCES += \
$$PWD/decoder.cpp \
$$PWD/fpscounter.cpp \
$$PWD/avframeconvert.cpp \
$$PWD/videobuffer.cpp

View file

@ -1,25 +0,0 @@
HEADERS += \
$$PWD/device.h
SOURCES += \
$$PWD/device.cpp
include ($$PWD/server/server.pri)
include ($$PWD/decoder/decoder.pri)
include ($$PWD/render/render.pri)
include ($$PWD/stream/stream.pri)
include ($$PWD/android/android.pri)
include ($$PWD/controller/controller.pri)
include ($$PWD/filehandler/filehandler.pri)
include ($$PWD/recorder/recorder.pri)
INCLUDEPATH += \
$$PWD/../../third_party/ffmpeg/include \
$$PWD/server \
$$PWD/decoder \
$$PWD/render \
$$PWD/stream \
$$PWD/android \
$$PWD/controller \
$$PWD/filehandler \
$$PWD/recorder

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/filehandler.h
SOURCES += \
$$PWD/filehandler.cpp

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/recorder.h
SOURCES += \
$$PWD/recorder.cpp

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/qyuvopenglwidget.h
SOURCES += \
$$PWD/qyuvopenglwidget.cpp

View file

@ -1,9 +0,0 @@
HEADERS += \
$$PWD/server.h \
$$PWD/tcpserver.h \
$$PWD/videosocket.h
SOURCES += \
$$PWD/server.cpp \
$$PWD/tcpserver.cpp \
$$PWD/videosocket.cpp

View file

@ -1,6 +0,0 @@
HEADERS += \
$$PWD/stream.h
SOURCES += \
$$PWD/stream.cpp

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/devicemanage.h
SOURCES += \
$$PWD/devicemanage.cpp

View file

@ -1,5 +0,0 @@
HEADERS += \
$$PWD/iconhelper.h
SOURCES += \
$$PWD/iconhelper.cpp

View file

@ -10,7 +10,7 @@
#include "adbprocess.h"
#include "../include/QtScrcpyCore.h"
#include "../QtScrcpyCore/include/QtScrcpyCore.h"
namespace Ui
{

View file

@ -4,7 +4,7 @@
#include <QPointer>
#include <QWidget>
#include "../include/QtScrcpyCore.h"
#include "../QtScrcpyCore/include/QtScrcpyCore.h"
#include "magneticwidget.h"
namespace Ui

View file

@ -1,14 +0,0 @@
SOURCES += \
$$PWD/videoform.cpp \
$$PWD/toolform.cpp \
$$PWD/dialog.cpp
HEADERS += \
$$PWD/videoform.h \
$$PWD/toolform.h \
$$PWD/dialog.h
FORMS += \
$$PWD/videoform.ui \
$$PWD/toolform.ui \
$$PWD/dialog.ui

View file

@ -4,7 +4,7 @@
#include <QPointer>
#include <QWidget>
#include "../include/QtScrcpyCore.h"
#include "../QtScrcpyCore/include/QtScrcpyCore.h"
namespace Ui
{

View file

@ -1,9 +0,0 @@
FORMS +=
HEADERS += \
$$PWD/keepratiowidget.h \
$$PWD/magneticwidget.h
SOURCES += \
$$PWD/keepratiowidget.cpp \
$$PWD/magneticwidget.cpp

View file

@ -1,25 +0,0 @@
HEADERS += \
$$PWD/mousetap.h
SOURCES += \
$$PWD/mousetap.cpp
win32 {
HEADERS += $$PWD/winmousetap.h
SOURCES += $$PWD/winmousetap.cpp
LIBS += -lUser32
}
mac {
HEADERS += $$PWD/cocoamousetap.h
OBJECTIVE_SOURCES += $$PWD/cocoamousetap.mm
LIBS += -framework Appkit
QMAKE_CFLAGS += -mmacosx-version-min=10.6
}
linux {
HEADERS += $$PWD/xmousetap.h
SOURCES += $$PWD/xmousetap.cpp
LIBS += -lxcb
QT += x11extras
}

View file

@ -1,10 +0,0 @@
include ($$PWD/mousetap/mousetap.pri)
HEADERS += \
$$PWD/compat.h \
$$PWD/bufferutil.h \
$$PWD/config.h
SOURCES += \
$$PWD/bufferutil.cpp \
$$PWD/config.cpp