Initialize server struct dynamically

This will allow to add mutex/cond fields.
This commit is contained in:
Romain Vimont
2021-01-01 16:34:47 +01:00
parent 90f8356630
commit 83910d3b9c
3 changed files with 41 additions and 34 deletions

View File

@@ -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