Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github_28344065
scrcpy
提交
83910d3b
S
scrcpy
项目概览
github_28344065
/
scrcpy
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
scrcpy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
83910d3b
编写于
1月 01, 2021
作者:
R
Romain Vimont
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Initialize server struct dynamically
This will allow to add mutex/cond fields.
上级
90f83566
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
34 deletion
+41
-34
app/src/scrcpy.c
app/src/scrcpy.c
+21
-14
app/src/server.c
app/src/server.c
+19
-2
app/src/server.h
app/src/server.h
+1
-18
未找到文件。
app/src/scrcpy.c
浏览文件 @
83910d3b
...
...
@@ -34,7 +34,7 @@
#include "util/log.h"
#include "util/net.h"
static
struct
server
server
=
SERVER_INITIALIZER
;
static
struct
server
server
;
static
struct
screen
screen
=
SCREEN_INITIALIZER
;
static
struct
fps_counter
fps_counter
;
static
struct
video_buffer
video_buffer
;
...
...
@@ -304,6 +304,19 @@ av_log_callback(void *avcl, int level, const char *fmt, va_list vl) {
bool
scrcpy
(
const
struct
scrcpy_options
*
options
)
{
if
(
!
server_init
(
&
server
))
{
return
false
;
}
bool
server_started
=
false
;
bool
fps_counter_initialized
=
false
;
bool
video_buffer_initialized
=
false
;
bool
file_handler_initialized
=
false
;
bool
recorder_initialized
=
false
;
bool
stream_started
=
false
;
bool
controller_initialized
=
false
;
bool
controller_started
=
false
;
bool
record
=
!!
options
->
record_filename
;
struct
server_params
params
=
{
.
log_level
=
options
->
log_level
,
...
...
@@ -322,18 +335,10 @@ scrcpy(const struct scrcpy_options *options) {
.
force_adb_forward
=
options
->
force_adb_forward
,
};
if
(
!
server_start
(
&
server
,
options
->
serial
,
&
params
))
{
return
false
;
goto
end
;
}
bool
ret
=
false
;
bool
fps_counter_initialized
=
false
;
bool
video_buffer_initialized
=
false
;
bool
file_handler_initialized
=
false
;
bool
recorder_initialized
=
false
;
bool
stream_started
=
false
;
bool
controller_initialized
=
false
;
bool
controller_started
=
false
;
server_started
=
true
;
if
(
!
sdl_init_and_configure
(
options
->
display
,
options
->
render_driver
,
options
->
disable_screensaver
))
{
...
...
@@ -444,7 +449,7 @@ scrcpy(const struct scrcpy_options *options) {
input_manager_init
(
&
input_manager
,
options
);
ret
=
event_loop
(
options
);
bool
ret
=
event_loop
(
options
);
LOGD
(
"quit..."
);
screen_destroy
(
&
screen
);
...
...
@@ -465,8 +470,10 @@ end:
fps_counter_interrupt
(
&
fps_counter
);
}
// shutdown the sockets and kill the server
server_stop
(
&
server
);
if
(
server_started
)
{
// shutdown the sockets and kill the server
server_stop
(
&
server
);
}
// now that the sockets are shutdown, the stream and controller are
// interrupted, we can join them
...
...
app/src/server.c
浏览文件 @
83910d3b
...
...
@@ -353,9 +353,26 @@ close_socket(socket_t socket) {
}
}
void
bool
server_init
(
struct
server
*
server
)
{
*
server
=
(
struct
server
)
SERVER_INITIALIZER
;
server
->
serial
=
NULL
;
server
->
process
=
PROCESS_NONE
;
server
->
wait_server_thread
=
NULL
;
atomic_flag_clear_explicit
(
&
server
->
server_socket_closed
,
memory_order_relaxed
);
server
->
server_socket
=
INVALID_SOCKET
;
server
->
video_socket
=
INVALID_SOCKET
;
server
->
control_socket
=
INVALID_SOCKET
;
server
->
port_range
.
first
=
0
;
server
->
port_range
.
last
=
0
;
server
->
local_port
=
0
;
server
->
tunnel_enabled
=
false
;
server
->
tunnel_forward
=
false
;
return
true
;
}
static
int
...
...
app/src/server.h
浏览文件 @
83910d3b
...
...
@@ -27,23 +27,6 @@ struct server {
bool
tunnel_forward
;
// use "adb forward" instead of "adb reverse"
};
#define SERVER_INITIALIZER { \
.serial = NULL, \
.process = PROCESS_NONE, \
.wait_server_thread = NULL, \
.server_socket_closed = ATOMIC_FLAG_INIT, \
.server_socket = INVALID_SOCKET, \
.video_socket = INVALID_SOCKET, \
.control_socket = INVALID_SOCKET, \
.port_range = { \
.first = 0, \
.last = 0, \
}, \
.local_port = 0, \
.tunnel_enabled = false, \
.tunnel_forward = false, \
}
struct
server_params
{
enum
sc_log_level
log_level
;
const
char
*
crop
;
...
...
@@ -62,7 +45,7 @@ struct server_params {
};
// init default values
void
bool
server_init
(
struct
server
*
server
);
// push, enable tunnel et start the server
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录