mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-30 04:50:11 +08:00
Compare commits
10 Commits
linux_remo
...
stable
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8980f0082 | ||
|
|
e88bb017fa | ||
|
|
87466d6074 | ||
|
|
fbbbfc5e6a | ||
|
|
d2cefd1827 | ||
|
|
a350e06529 | ||
|
|
8c742ffa08 | ||
|
|
475005b8a4 | ||
|
|
4da5188759 | ||
|
|
d8df4df5ae |
18
README.md
18
README.md
@@ -3,9 +3,9 @@
|
|||||||
#### More than remote desktop
|
#### More than remote desktop
|
||||||
|
|
||||||
----
|
----
|
||||||
[Chinese](README_CN.md) / [English](README.md)
|
[中文](README_CN.md) / [English](README.md)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Intro
|
# Intro
|
||||||
|
|
||||||
@@ -17,30 +17,30 @@ Continuous Desk is an experimental application of [Projectx](https://github.com/
|
|||||||
|
|
||||||
Enter the remote desktop ID in the 'REMOTE ID' field on the menu bar, and click 'Connect' button to initiate the remote connection.
|
Enter the remote desktop ID in the 'REMOTE ID' field on the menu bar, and click 'Connect' button to initiate the remote connection.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
If the remote desktop is set with a connection password, the local end needs to enter the correct password to initiate the remote connection. If the password is incorrect, an "Incorrect password" alert will appear in the status bar.
|
If the remote desktop is set with a connection password, the local end needs to enter the correct password to initiate the remote connection. If the password is incorrect, an "Incorrect password" alert will appear in the status bar.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
After connection successfully established, the status bar will display the message "ClientConnected."
|
After connection successfully established, the status bar will display the message "ClientConnected."
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## How to build
|
## How to build
|
||||||
|
|
||||||
Requirements<EFBFBD><EFBFBD>
|
Requirements:
|
||||||
- [xmake](https://xmake.io/#/guide/installation)
|
- [xmake](https://xmake.io/#/guide/installation)
|
||||||
- [cmake](https://cmake.org/download/)
|
- [cmake](https://cmake.org/download/)
|
||||||
- [vcpkg](https://vcpkg.io/en/getting-started)
|
- [vcpkg](https://vcpkg.io/en/getting-started)
|
||||||
|
|
||||||
Following packages need to be installed on Linux<EFBFBD><EFBFBD>
|
Following packages need to be installed on Linux:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install -y nvidia-cuda-toolkit libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxcb-shm0-dev libxv-dev libasound2-dev libsndio-dev libasound2-dev libpulse-dev
|
sudo apt-get install -y nvidia-cuda-toolkit libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxcb-shm0-dev libxv-dev libasound2-dev libsndio-dev libasound2-dev libpulse-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Commands
|
Commands:
|
||||||
```
|
```
|
||||||
git clone https://github.com/dijunkun/continuous-desk
|
git clone https://github.com/dijunkun/continuous-desk
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ git submodule update
|
|||||||
|
|
||||||
xmake b remote_desk
|
xmake b remote_desk
|
||||||
```
|
```
|
||||||
Run
|
Run:
|
||||||
```
|
```
|
||||||
# Windows/MacOS
|
# Windows/MacOS
|
||||||
xmake r remote_desk
|
xmake r remote_desk
|
||||||
|
|||||||
42
README_CN.md
42
README_CN.md
@@ -1,47 +1,47 @@
|
|||||||
# Continuous Desk
|
# Continuous Desk
|
||||||
|
|
||||||
#### <EFBFBD><EFBFBD>ֹԶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#### 不止远程桌面
|
||||||
|
|
||||||
----
|
----
|
||||||
[English](README.md) / [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>](README_CN.md)
|
[English](README.md) / [中文](README_CN.md)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
## 简介
|
||||||
|
|
||||||
Continuous Desk <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ƽ̨Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ͬһʱ<EFBFBD><EFBFBD>Զ<EFBFBD>̲ٿ<EFBFBD>ͬһ̨<EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֶ˵<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䣬<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
Continuous Desk 是一个轻量级的跨平台远程桌面软件。它允许多个用户在同一时间远程操控同一台电脑。除桌面图像传输外,它还支持端到端的语音传输,在远程桌面基础上提供额外的协作能力。
|
||||||
|
|
||||||
Continuous Desk <EFBFBD><EFBFBD> [Projectx](https://github.com/dijunkun/projectx) ʵʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>á<EFBFBD>Projectx <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ƽ̨ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>⡣<EFBFBD><E2A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>[RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루H264<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루[Opus](https://github.com/xiph/opus)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>[TCP over UDP](https://libnice.freedesktop.org/)<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
Continuous Desk 是 [Projectx](https://github.com/dijunkun/projectx) 实时音视频传输库的实验性应用。Projectx 是一个轻量级的跨平台实时音视频传输库。它具有网络透传([RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)),视频软硬编解码(H264),音频编解码([Opus](https://github.com/xiph/opus)),信令交互,网络拥塞控制([TCP over UDP](https://libnice.freedesktop.org/))等基础能力。
|
||||||
|
|
||||||
|
|
||||||
## ʹ<EFBFBD><EFBFBD>
|
## 使用
|
||||||
|
|
||||||
<EFBFBD>ڲ˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>REMOTE ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Connect<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>
|
在菜单栏“REMOTE ID”处输入远端桌面的ID,点击“Connect”即可发起远程连接。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>Incorrect password<EFBFBD><EFBFBD><EFBFBD>澯<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>
|
如果远端桌面设置了连接密码,则本端需填写正确的连接密码才能成功发起远程连接。密码错误时,状态栏会出现“Incorrect password”告警提示。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ClientConnected<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
连接成功建立后,状态栏会有“ClientConnected”相关字样。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
## 编译
|
||||||
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
依赖:
|
||||||
- [xmake](https://xmake.io/#/guide/installation)
|
- [xmake](https://xmake.io/#/guide/installation)
|
||||||
- [cmake](https://cmake.org/download/)
|
- [cmake](https://cmake.org/download/)
|
||||||
- [vcpkg](https://vcpkg.io/en/getting-started)
|
- [vcpkg](https://vcpkg.io/en/getting-started)
|
||||||
|
|
||||||
Linux<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>谲װ<EFBFBD><EFBFBD><EFBFBD>°<EFBFBD><EFBFBD><EFBFBD>
|
Linux环境下需安装以下包:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install -y nvidia-cuda-toolkit libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxcb-shm0-dev libxv-dev libasound2-dev libsndio-dev libasound2-dev libpulse-dev
|
sudo apt-get install -y nvidia-cuda-toolkit libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxcb-shm0-dev libxv-dev libasound2-dev libsndio-dev libasound2-dev libpulse-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
编译命令
|
||||||
```
|
```
|
||||||
git clone https://github.com/dijunkun/continuous-desk
|
git clone https://github.com/dijunkun/continuous-desk
|
||||||
|
|
||||||
@@ -53,15 +53,15 @@ git submodule update
|
|||||||
|
|
||||||
xmake b remote_desk
|
xmake b remote_desk
|
||||||
```
|
```
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
运行
|
||||||
```
|
```
|
||||||
# Windows/MacOS
|
# Windows/MacOS
|
||||||
xmake r remote_desk
|
xmake r remote_desk
|
||||||
|
|
||||||
# Linux<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>rootȨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
# Linux下需使用root权限运行
|
||||||
./remote_desk
|
./remote_desk
|
||||||
```
|
```
|
||||||
|
|
||||||
## <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤
|
## 许可证
|
||||||
|
|
||||||
Continuous Desk ʹ<EFBFBD><EFBFBD> MIT <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>зַ<EFBFBD><EFBFBD><EFBFBD>
|
Continuous Desk 使用 MIT 许可证,其中使用到的第三方库根据自身许可证进行分发。
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ uint32_t start_time, end_time, elapsed_time;
|
|||||||
uint32_t frame_count = 0;
|
uint32_t frame_count = 0;
|
||||||
int fps = 0;
|
int fps = 0;
|
||||||
|
|
||||||
static std::atomic<bool> audio_buffer_fresh = false;
|
static std::atomic<bool> audio_buffer_fresh{false};
|
||||||
static uint32_t last_ts = 0;
|
static uint32_t last_ts = 0;
|
||||||
|
|
||||||
int64_t src_ch_layout = AV_CH_LAYOUT_MONO;
|
int64_t src_ch_layout = AV_CH_LAYOUT_MONO;
|
||||||
@@ -92,19 +92,19 @@ std::string client_connection_status_str = "-";
|
|||||||
std::string server_signal_status_str = "-";
|
std::string server_signal_status_str = "-";
|
||||||
std::string client_signal_status_str = "-";
|
std::string client_signal_status_str = "-";
|
||||||
|
|
||||||
std::atomic<ConnectionStatus> server_connection_status =
|
std::atomic<ConnectionStatus> server_connection_status{
|
||||||
ConnectionStatus::Closed;
|
ConnectionStatus::Closed};
|
||||||
std::atomic<ConnectionStatus> client_connection_status =
|
std::atomic<ConnectionStatus> client_connection_status{
|
||||||
ConnectionStatus::Closed;
|
ConnectionStatus::Closed};
|
||||||
std::atomic<SignalStatus> server_signal_status = SignalStatus::SignalClosed;
|
std::atomic<SignalStatus> server_signal_status{SignalStatus::SignalClosed};
|
||||||
std::atomic<SignalStatus> client_signal_status = SignalStatus::SignalClosed;
|
std::atomic<SignalStatus> client_signal_status{SignalStatus::SignalClosed};
|
||||||
|
|
||||||
// Refresh Event
|
// Refresh Event
|
||||||
#define REFRESH_EVENT (SDL_USEREVENT + 1)
|
#define REFRESH_EVENT (SDL_USEREVENT + 1)
|
||||||
#define QUIT_EVENT (SDL_USEREVENT + 2)
|
#define QUIT_EVENT (SDL_USEREVENT + 2)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char password[16];
|
char password[7];
|
||||||
} CDCache;
|
} CDCache;
|
||||||
|
|
||||||
int thread_exit = 0;
|
int thread_exit = 0;
|
||||||
|
|||||||
2
thirdparty/projectx
vendored
2
thirdparty/projectx
vendored
Submodule thirdparty/projectx updated: 82dafa9782...a309627ca3
Reference in New Issue
Block a user