Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–23 unchanged (23 lines)
24 private Rect crop;
25 private boolean control = true;
26 private int displayId;
27 private String cameraId;
28 private Size cameraSize;
29 private CameraFacing cameraFacing;
30 private boolean showTouches;
31 private boolean stayAwake;
32 private List<CodecOption> videoCodecOptions;
33 private List<CodecOption> audioCodecOptions;
34
35 private String videoEncoder;
36 private String audioEncoder;
…lines 37–126 unchanged (90 lines)
127 return cameraSize;
128 }
129
130 public CameraFacing getCameraFacing() {
131 return cameraFacing;
132 }
133
134 public boolean getShowTouches() {
135 return showTouches;
136 }
137
138 public boolean getStayAwake() {
139 return stayAwake;
…lines 140–370 unchanged (231 lines)
371 if (facing == null) {
372 throw new IllegalArgumentException("Camera facing " + value + " not supported");
373 }
374 options.cameraFacing = facing;
375 }
376 break;
377 case "send_device_meta":
378 options.sendDeviceMeta = Boolean.parseBoolean(value);
379 break;
380 case "send_frame_meta":
381 options.sendFrameMeta = Boolean.parseBoolean(value);
382 break;
383 case "send_dummy_byte":
…lines 384–423 unchanged (40 lines)
424 throw new IllegalArgumentException("Invalid size format (expected <width>x<height>): \"" + size + "\"");
425 }
426 int width = Integer.parseInt(tokens[0]);
427 int height = Integer.parseInt(tokens[1]);
428 return new Size(width, height);
429 }
430}
431

After

…lines 1–23 unchanged (23 lines)
24 private Rect crop;
25 private boolean control = true;
26 private int displayId;
27 private String cameraId;
28 private Size cameraSize;
29 private CameraFacing cameraFacing;
30 private CameraAspectRatio cameraAspectRatio;
31 private boolean showTouches;
32 private boolean stayAwake;
33 private List<CodecOption> videoCodecOptions;
34 private List<CodecOption> audioCodecOptions;
35
36 private String videoEncoder;
…lines 37–128 unchanged (92 lines)
129 }
130
131 public CameraFacing getCameraFacing() {
132 return cameraFacing;
133 }
134
135 public CameraAspectRatio getCameraAspectRatio() {
136 return cameraAspectRatio;
137 }
138
139 public boolean getShowTouches() {
140 return showTouches;
141 }
142
143 public boolean getStayAwake() {
…lines 144–375 unchanged (232 lines)
376 if (facing == null) {
377 throw new IllegalArgumentException("Camera facing " + value + " not supported");
378 }
379 options.cameraFacing = facing;
380 }
381 break;
382 case "camera_ar":
383 if (!value.isEmpty()) {
384 options.cameraAspectRatio = parseCameraAspectRatio(value);
385 }
386 break;
387 case "send_device_meta":
388 options.sendDeviceMeta = Boolean.parseBoolean(value);
389 break;
390 case "send_frame_meta":
391 options.sendFrameMeta = Boolean.parseBoolean(value);
392 break;
…lines 393–434 unchanged (42 lines)
435 }
436 int width = Integer.parseInt(tokens[0]);
437 int height = Integer.parseInt(tokens[1]);
438 return new Size(width, height);
439 }
440
441 private static CameraAspectRatio parseCameraAspectRatio(String ar) {
442 if ("sensor".equals(ar)) {
443 return CameraAspectRatio.sensorAspectRatio();
444 }
445
446 String[] tokens = ar.split(":");
447 if (tokens.length == 2) {
448 int w = Integer.parseInt(tokens[0]);
449 int h = Integer.parseInt(tokens[1]);
450 return CameraAspectRatio.fromFraction(w, h);
451 }
452
453 float floatAr = Float.parseFloat(tokens[0]);
454 return CameraAspectRatio.fromFloat(floatAr);
455 }
456}
457

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "graphics"
. "."
identifier "Rect"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Locale"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "Options"
class_body
{ "{"
field_declaration
modifiers
private "private"
scoped_type_identifier
type_identifier "Ln"
. "."
type_identifier "Level"
variable_declarator
identifier "logLevel"
= "="
field_access
field_access
identifier "Ln"
. "."
identifier "Level"
. "."
identifier "DEBUG"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "scid"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
line_comment "// 31-bit non-negative value, or -1"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "video"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "audio"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "maxSize"
; ";"
field_declaration
modifiers
private "private"
type_identifier "VideoCodec"
variable_declarator
identifier "videoCodec"
= "="
field_access
identifier "VideoCodec"
. "."
identifier "H264"
; ";"
field_declaration
modifiers
private "private"
type_identifier "AudioCodec"
variable_declarator
identifier "audioCodec"
= "="
field_access
identifier "AudioCodec"
. "."
identifier "OPUS"
; ";"
field_declaration
modifiers
private "private"
type_identifier "VideoSource"
variable_declarator
identifier "videoSource"
= "="
field_access
identifier "VideoSource"
. "."
identifier "DISPLAY"
; ";"
field_declaration
modifiers
private "private"
type_identifier "AudioSource"
variable_declarator
identifier "audioSource"
= "="
field_access
identifier "AudioSource"
. "."
identifier "OUTPUT"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "videoBitRate"
= "="
decimal_integer_literal "8000000"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "audioBitRate"
= "="
decimal_integer_literal "128000"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "maxFps"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lockVideoOrientation"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "tunnelForward"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Rect"
variable_declarator
identifier "crop"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "control"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "displayId"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "cameraId"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Size"
variable_declarator
identifier "cameraSize"
; ";"
field_declaration
modifiers
private "private"
type_identifier "CameraFacing"
variable_declarator
identifier "cameraFacing"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "showTouches"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "stayAwake"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "videoCodecOptions"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "audioCodecOptions"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "videoEncoder"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "audioEncoder"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "powerOffScreenOnClose"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "clipboardAutosync"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "downsizeOnError"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "cleanup"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "powerOn"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listEncoders"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listDisplays"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listCameras"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listCameraSizes"
; ";"
line_comment "// Options not used by the scrcpy client, but useful to use "...
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendDeviceMeta"
= "="
true "true"
; ";"
line_comment "// send device name and size"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendFrameMeta"
= "="
true "true"
; ";"
line_comment "// send PTS so that the client may record properly"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendDummyByte"
= "="
true "true"
; ";"
line_comment "// write a byte on start to detect connection issues"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendCodecMeta"
= "="
true "true"
; ";"
line_comment "// write the codec metadata before the stream"
method_declaration
modifiers
public "public"
scoped_type_identifier
type_identifier "Ln"
. "."
type_identifier "Level"
identifier "getLogLevel"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "logLevel"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getScid"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "scid"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getVideo"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "video"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getAudio"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audio"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getMaxSize"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "maxSize"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "VideoCodec"
identifier "getVideoCodec"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoCodec"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "AudioCodec"
identifier "getAudioCodec"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioCodec"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "VideoSource"
identifier "getVideoSource"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoSource"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "AudioSource"
identifier "getAudioSource"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioSource"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getVideoBitRate"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoBitRate"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getAudioBitRate"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioBitRate"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getMaxFps"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "maxFps"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getLockVideoOrientation"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lockVideoOrientation"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isTunnelForward"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "tunnelForward"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "Rect"
identifier "getCrop"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "crop"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getControl"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "control"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getDisplayId"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "displayId"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getCameraId"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraId"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "Size"
identifier "getCameraSize"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraSize"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "CameraFacing"
identifier "getCameraFacing"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraFacing"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getShowTouches"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "showTouches"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getStayAwake"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "stayAwake"
; ";"
} "}"
method_declaration
modifiers
public "public"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
identifier "getVideoCodecOptions"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoCodecOptions"
; ";"
} "}"
method_declaration
modifiers
public "public"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
identifier "getAudioCodecOptions"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioCodecOptions"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getVideoEncoder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoEncoder"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getAudioEncoder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioEncoder"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getPowerOffScreenOnClose"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
field_access
this "this"
. "."
identifier "powerOffScreenOnClose"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getClipboardAutosync"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "clipboardAutosync"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getDownsizeOnError"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "downsizeOnError"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getCleanup"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cleanup"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getPowerOn"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "powerOn"
; ";"
} "}"
method_declaration (+24 nodes collapsed)
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListEncoders"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listEncoders"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListDisplays"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listDisplays"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListCameras"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listCameras"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListCameraSizes"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listCameraSizes"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendDeviceMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendDeviceMeta"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendFrameMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendFrameMeta"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendDummyByte"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendDummyByte"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendCodecMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendCodecMeta"
; ";"
} "}"
method_declaration
modifiers
annotation
@ "@"
identifier "SuppressWarnings"
annotation_argument_list
( "("
string_literal
" "\""
string_fragment "MethodLength"
" "\""
) ")"
public "public"
static "static"
type_identifier "Options"
identifier "parse"
formal_parameters
( "("
spread_parameter
type_identifier "String"
... "..."
variable_declarator
identifier "args"
) ")"
block
{ "{"
if_statement (+28 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "clientVersion"
= "="
array_access
identifier "args"
[ "["
decimal_integer_literal "0"
] "]"
; ";"
if_statement (+61 nodes collapsed)
local_variable_declaration
type_identifier "Options"
variable_declarator
identifier "options"
= "="
object_creation_expression
new "new"
type_identifier "Options"
argument_list
( "("
) ")"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
decimal_integer_literal "1"
; ";"
binary_expression
identifier "i"
< "<"
field_access
identifier "args"
. "."
identifier "length"
; ";"
update_expression
++ "++"
identifier "i"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "arg"
= "="
array_access
identifier "args"
[ "["
identifier "i"
] "]"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "equalIndex"
= "="
method_invocation
identifier "arg"
. "."
identifier "indexOf"
argument_list
( "("
character_literal "'='"
) ")"
; ";"
if_statement (+37 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "key"
= "="
method_invocation
identifier "arg"
. "."
identifier "substring"
argument_list
( "("
decimal_integer_literal "0"
, ","
identifier "equalIndex"
) ")"
; ";"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "value"
= "="
method_invocation
identifier "arg"
. "."
identifier "substring"
argument_list
( "("
binary_expression
identifier "equalIndex"
+ "+"
decimal_integer_literal "1"
) ")"
; ";"
switch_expression
switch "switch"
parenthesized_expression
( "("
identifier "key"
) ")"
switch_block
{ "{"
switch_block_statement_group (+67 nodes collapsed)
switch_block_statement_group (+40 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+33 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+42 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+37 nodes collapsed)
switch_block_statement_group (+34 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+37 nodes collapsed)
switch_block_statement_group (+42 nodes collapsed)
switch_block_statement_group (+85 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+70 nodes collapsed)
switch_block_statement_group (+23 nodes collapsed)
} "}"
} "}"
return_statement
return "return"
identifier "options"
; ";"
} "}"
method_declaration (+173 nodes collapsed)
method_declaration (+125 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "graphics"
. "."
identifier "Rect"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Locale"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "Options"
class_body
{ "{"
field_declaration
modifiers
private "private"
scoped_type_identifier
type_identifier "Ln"
. "."
type_identifier "Level"
variable_declarator
identifier "logLevel"
= "="
field_access
field_access
identifier "Ln"
. "."
identifier "Level"
. "."
identifier "DEBUG"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "scid"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
line_comment "// 31-bit non-negative value, or -1"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "video"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "audio"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "maxSize"
; ";"
field_declaration
modifiers
private "private"
type_identifier "VideoCodec"
variable_declarator
identifier "videoCodec"
= "="
field_access
identifier "VideoCodec"
. "."
identifier "H264"
; ";"
field_declaration
modifiers
private "private"
type_identifier "AudioCodec"
variable_declarator
identifier "audioCodec"
= "="
field_access
identifier "AudioCodec"
. "."
identifier "OPUS"
; ";"
field_declaration
modifiers
private "private"
type_identifier "VideoSource"
variable_declarator
identifier "videoSource"
= "="
field_access
identifier "VideoSource"
. "."
identifier "DISPLAY"
; ";"
field_declaration
modifiers
private "private"
type_identifier "AudioSource"
variable_declarator
identifier "audioSource"
= "="
field_access
identifier "AudioSource"
. "."
identifier "OUTPUT"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "videoBitRate"
= "="
decimal_integer_literal "8000000"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "audioBitRate"
= "="
decimal_integer_literal "128000"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "maxFps"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "lockVideoOrientation"
= "="
unary_expression
- "-"
decimal_integer_literal "1"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "tunnelForward"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Rect"
variable_declarator
identifier "crop"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "control"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "displayId"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "cameraId"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Size"
variable_declarator
identifier "cameraSize"
; ";"
field_declaration
modifiers
private "private"
type_identifier "CameraFacing"
variable_declarator
identifier "cameraFacing"
; ";"
field_declaration
modifiers
private "private"
type_identifier "CameraAspectRatio"
variable_declarator
identifier "cameraAspectRatio"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "showTouches"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "stayAwake"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "videoCodecOptions"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "audioCodecOptions"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "videoEncoder"
; ";"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "audioEncoder"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "powerOffScreenOnClose"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "clipboardAutosync"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "downsizeOnError"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "cleanup"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "powerOn"
= "="
true "true"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listEncoders"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listDisplays"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listCameras"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "listCameraSizes"
; ";"
line_comment "// Options not used by the scrcpy client, but useful to use "...
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendDeviceMeta"
= "="
true "true"
; ";"
line_comment "// send device name and size"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendFrameMeta"
= "="
true "true"
; ";"
line_comment "// send PTS so that the client may record properly"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendDummyByte"
= "="
true "true"
; ";"
line_comment "// write a byte on start to detect connection issues"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "sendCodecMeta"
= "="
true "true"
; ";"
line_comment "// write the codec metadata before the stream"
method_declaration
modifiers
public "public"
scoped_type_identifier
type_identifier "Ln"
. "."
type_identifier "Level"
identifier "getLogLevel"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "logLevel"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getScid"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "scid"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getVideo"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "video"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getAudio"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audio"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getMaxSize"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "maxSize"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "VideoCodec"
identifier "getVideoCodec"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoCodec"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "AudioCodec"
identifier "getAudioCodec"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioCodec"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "VideoSource"
identifier "getVideoSource"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoSource"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "AudioSource"
identifier "getAudioSource"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioSource"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getVideoBitRate"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoBitRate"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getAudioBitRate"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioBitRate"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getMaxFps"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "maxFps"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getLockVideoOrientation"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "lockVideoOrientation"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isTunnelForward"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "tunnelForward"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "Rect"
identifier "getCrop"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "crop"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getControl"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "control"
; ";"
} "}"
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "getDisplayId"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "displayId"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getCameraId"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraId"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "Size"
identifier "getCameraSize"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraSize"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "CameraFacing"
identifier "getCameraFacing"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraFacing"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "CameraAspectRatio"
identifier "getCameraAspectRatio"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cameraAspectRatio"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getShowTouches"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "showTouches"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getStayAwake"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "stayAwake"
; ";"
} "}"
method_declaration
modifiers
public "public"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
identifier "getVideoCodecOptions"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoCodecOptions"
; ";"
} "}"
method_declaration
modifiers
public "public"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
identifier "getAudioCodecOptions"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioCodecOptions"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getVideoEncoder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "videoEncoder"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getAudioEncoder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "audioEncoder"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getPowerOffScreenOnClose"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
field_access
this "this"
. "."
identifier "powerOffScreenOnClose"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getClipboardAutosync"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "clipboardAutosync"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getDownsizeOnError"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "downsizeOnError"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getCleanup"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "cleanup"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getPowerOn"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "powerOn"
; ";"
} "}"
method_declaration (+24 nodes collapsed)
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListEncoders"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listEncoders"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListDisplays"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listDisplays"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListCameras"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listCameras"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getListCameraSizes"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "listCameraSizes"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendDeviceMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendDeviceMeta"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendFrameMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendFrameMeta"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendDummyByte"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendDummyByte"
; ";"
} "}"
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "getSendCodecMeta"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "sendCodecMeta"
; ";"
} "}"
method_declaration
modifiers
annotation
@ "@"
identifier "SuppressWarnings"
annotation_argument_list
( "("
string_literal
" "\""
string_fragment "MethodLength"
" "\""
) ")"
public "public"
static "static"
type_identifier "Options"
identifier "parse"
formal_parameters
( "("
spread_parameter
type_identifier "String"
... "..."
variable_declarator
identifier "args"
) ")"
block
{ "{"
if_statement (+28 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "clientVersion"
= "="
array_access
identifier "args"
[ "["
decimal_integer_literal "0"
] "]"
; ";"
if_statement (+61 nodes collapsed)
local_variable_declaration
type_identifier "Options"
variable_declarator
identifier "options"
= "="
object_creation_expression
new "new"
type_identifier "Options"
argument_list
( "("
) ")"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
decimal_integer_literal "1"
; ";"
binary_expression
identifier "i"
< "<"
field_access
identifier "args"
. "."
identifier "length"
; ";"
update_expression
++ "++"
identifier "i"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "arg"
= "="
array_access
identifier "args"
[ "["
identifier "i"
] "]"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "equalIndex"
= "="
method_invocation
identifier "arg"
. "."
identifier "indexOf"
argument_list
( "("
character_literal "'='"
) ")"
; ";"
if_statement (+37 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "key"
= "="
method_invocation
identifier "arg"
. "."
identifier "substring"
argument_list
( "("
decimal_integer_literal "0"
, ","
identifier "equalIndex"
) ")"
; ";"
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "value"
= "="
method_invocation
identifier "arg"
. "."
identifier "substring"
argument_list
( "("
binary_expression
identifier "equalIndex"
+ "+"
decimal_integer_literal "1"
) ")"
; ";"
switch_expression
switch "switch"
parenthesized_expression
( "("
identifier "key"
) ")"
switch_block
{ "{"
switch_block_statement_group (+67 nodes collapsed)
switch_block_statement_group (+40 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+68 nodes collapsed)
switch_block_statement_group (+33 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+42 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+37 nodes collapsed)
switch_block_statement_group (+34 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+37 nodes collapsed)
switch_block_statement_group (+42 nodes collapsed)
switch_block_statement_group (+85 nodes collapsed)
switch_block_statement_group
switch_label
case "case"
string_literal
" "\""
string_fragment "camera_ar"
" "\""
: ":"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
method_invocation
identifier "value"
. "."
identifier "isEmpty"
argument_list
( "("
) ")"
) ")"
block
{ "{"
expression_statement
assignment_expression
field_access
identifier "options"
. "."
identifier "cameraAspectRatio"
= "="
method_invocation
identifier "parseCameraAspectRatio"
argument_list
( "("
identifier "value"
) ")"
; ";"
} "}"
break_statement
break "break"
; ";"
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+27 nodes collapsed)
switch_block_statement_group (+70 nodes collapsed)
switch_block_statement_group (+23 nodes collapsed)
} "}"
} "}"
return_statement
return "return"
identifier "options"
; ";"
} "}"
method_declaration (+173 nodes collapsed)
method_declaration (+125 nodes collapsed)
method_declaration
modifiers
private "private"
static "static"
type_identifier "CameraAspectRatio"
identifier "parseCameraAspectRatio"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "ar"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
string_literal
" "\""
string_fragment "sensor"
" "\""
. "."
identifier "equals"
argument_list
( "("
identifier "ar"
) ")"
) ")"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "CameraAspectRatio"
. "."
identifier "sensorAspectRatio"
argument_list
( "("
) ")"
; ";"
} "}"
local_variable_declaration
array_type
type_identifier "String"
dimensions
[ "["
] "]"
variable_declarator
identifier "tokens"
= "="
method_invocation
identifier "ar"
. "."
identifier "split"
argument_list
( "("
string_literal
" "\""
string_fragment ":"
" "\""
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
field_access
identifier "tokens"
. "."
identifier "length"
== "=="
decimal_integer_literal "2"
) ")"
block
{ "{"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "w"
= "="
method_invocation
identifier "Integer"
. "."
identifier "parseInt"
argument_list
( "("
array_access
identifier "tokens"
[ "["
decimal_integer_literal "0"
] "]"
) ")"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "h"
= "="
method_invocation
identifier "Integer"
. "."
identifier "parseInt"
argument_list
( "("
array_access
identifier "tokens"
[ "["
decimal_integer_literal "1"
] "]"
) ")"
; ";"
return_statement
return "return"
method_invocation
identifier "CameraAspectRatio"
. "."
identifier "fromFraction"
argument_list
( "("
identifier "w"
, ","
identifier "h"
) ")"
; ";"
} "}"
local_variable_declaration
floating_point_type
float "float"
variable_declarator
identifier "floatAr"
= "="
method_invocation
identifier "Float"
. "."
identifier "parseFloat"
argument_list
( "("
array_access
identifier "tokens"
[ "["
decimal_integer_literal "0"
] "]"
) ")"
; ";"
return_statement
return "return"
method_invocation
identifier "CameraAspectRatio"
. "."
identifier "fromFloat"
argument_list
( "("
identifier "floatAr"
) ")"
; ";"
} "}"
} "}"