diff --git a/app/src/main.c b/app/src/main.c index b4f8953d..e322cf7a 100644 --- a/app/src/main.c +++ b/app/src/main.c @@ -17,6 +17,7 @@ struct args { const char *serial; const char *crop; const char *record_filename; + const char *window_title; enum recorder_format record_format; bool fullscreen; bool no_control; @@ -103,6 +104,9 @@ static void usage(const char *arg0) { " -v, --version\n" " Print the version of scrcpy.\n" "\n" + " --window-title text\n" + " Set a custom window title.\n" + "\n" "Shortcuts:\n" "\n" " Ctrl+f\n" @@ -295,6 +299,7 @@ guess_record_format(const char *filename) { } #define OPT_RENDER_EXPIRED_FRAMES 1000 +#define OPT_WINDOW_TITLE 1001 static bool parse_args(struct args *args, int argc, char *argv[]) { @@ -316,6 +321,8 @@ parse_args(struct args *args, int argc, char *argv[]) { {"show-touches", no_argument, NULL, 't'}, {"turn-screen-off", no_argument, NULL, 'S'}, {"version", no_argument, NULL, 'v'}, + {"window-title", required_argument, NULL, + OPT_WINDOW_TITLE}, {NULL, 0, NULL, 0 }, }; int c; @@ -378,6 +385,9 @@ parse_args(struct args *args, int argc, char *argv[]) { case OPT_RENDER_EXPIRED_FRAMES: args->render_expired_frames = true; break; + case OPT_WINDOW_TITLE: + args->window_title = optarg; + break; default: // getopt prints the error message on stderr return false; @@ -434,6 +444,7 @@ main(int argc, char *argv[]) { .serial = NULL, .crop = NULL, .record_filename = NULL, + .window_title = NULL, .record_format = 0, .help = false, .version = false, @@ -478,6 +489,7 @@ main(int argc, char *argv[]) { .crop = args.crop, .port = args.port, .record_filename = args.record_filename, + .window_title = args.window_title, .record_format = args.record_format, .max_size = args.max_size, .bit_rate = args.bit_rate, diff --git a/app/src/scrcpy.c b/app/src/scrcpy.c index ede34dd7..d9088155 100644 --- a/app/src/scrcpy.c +++ b/app/src/scrcpy.c @@ -380,7 +380,10 @@ scrcpy(const struct scrcpy_options *options) { controller_started = true; } - if (!screen_init_rendering(&screen, device_name, frame_size, + const char *window_title = + options->window_title ? options->window_title : device_name; + + if (!screen_init_rendering(&screen, window_title, frame_size, options->always_on_top)) { goto end; } diff --git a/app/src/scrcpy.h b/app/src/scrcpy.h index d705d2db..fd86bad1 100644 --- a/app/src/scrcpy.h +++ b/app/src/scrcpy.h @@ -9,6 +9,7 @@ struct scrcpy_options { const char *serial; const char *crop; const char *record_filename; + const char *window_title; enum recorder_format record_format; uint16_t port; uint16_t max_size; diff --git a/app/src/screen.c b/app/src/screen.c index 159d6a47..18d24dda 100644 --- a/app/src/screen.c +++ b/app/src/screen.c @@ -134,7 +134,7 @@ create_texture(SDL_Renderer *renderer, struct size frame_size) { } bool -screen_init_rendering(struct screen *screen, const char *device_name, +screen_init_rendering(struct screen *screen, const char *window_title, struct size frame_size, bool always_on_top) { screen->frame_size = frame_size; @@ -152,7 +152,7 @@ screen_init_rendering(struct screen *screen, const char *device_name, #endif } - screen->window = SDL_CreateWindow(device_name, SDL_WINDOWPOS_UNDEFINED, + screen->window = SDL_CreateWindow(window_title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, window_size.width, window_size.height, window_flags); diff --git a/app/src/screen.h b/app/src/screen.h index 5734fdc2..63da6aa5 100644 --- a/app/src/screen.h +++ b/app/src/screen.h @@ -44,7 +44,7 @@ screen_init(struct screen *screen); // initialize screen, create window, renderer and texture (window is hidden) bool -screen_init_rendering(struct screen *screen, const char *device_name, +screen_init_rendering(struct screen *screen, const char *window_title, struct size frame_size, bool always_on_top); // show the window