Compare commits
3 Commits
printf_flo
...
meson_sour
Author | SHA1 | Date | |
---|---|---|---|
3a66b5fd01 | |||
9c1722f428 | |||
d19606eb0c |
@ -159,8 +159,8 @@ net_connect(sc_socket socket, uint32_t addr, uint16_t port) {
|
||||
}
|
||||
|
||||
bool
|
||||
net_listen(sc_socket socket, uint32_t addr, uint16_t port, int backlog) {
|
||||
sc_raw_socket raw_sock = unwrap(socket);
|
||||
net_listen(sc_socket server_socket, uint32_t addr, uint16_t port, int backlog) {
|
||||
sc_raw_socket raw_sock = unwrap(server_socket);
|
||||
|
||||
int reuse = 1;
|
||||
if (setsockopt(raw_sock, SOL_SOCKET, SO_REUSEADDR, (const void *) &reuse,
|
||||
|
@ -39,7 +39,7 @@ bool
|
||||
net_connect(sc_socket socket, uint32_t addr, uint16_t port);
|
||||
|
||||
bool
|
||||
net_listen(sc_socket socket, uint32_t addr, uint16_t port, int backlog);
|
||||
net_listen(sc_socket server_socket, uint32_t addr, uint16_t port, int backlog);
|
||||
|
||||
sc_socket
|
||||
net_accept(sc_socket server_socket);
|
||||
|
@ -15,14 +15,14 @@ net_connect_intr(struct sc_intr *intr, sc_socket socket, uint32_t addr,
|
||||
}
|
||||
|
||||
bool
|
||||
net_listen_intr(struct sc_intr *intr, sc_socket socket, uint32_t addr,
|
||||
net_listen_intr(struct sc_intr *intr, sc_socket server_socket, uint32_t addr,
|
||||
uint16_t port, int backlog) {
|
||||
if (!sc_intr_set_socket(intr, socket)) {
|
||||
if (!sc_intr_set_socket(intr, server_socket)) {
|
||||
// Already interrupted
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ret = net_listen(socket, addr, port, backlog);
|
||||
bool ret = net_listen(server_socket, addr, port, backlog);
|
||||
|
||||
sc_intr_set_socket(intr, SC_SOCKET_NONE);
|
||||
return ret;
|
||||
|
@ -11,7 +11,7 @@ net_connect_intr(struct sc_intr *intr, sc_socket socket, uint32_t addr,
|
||||
uint16_t port);
|
||||
|
||||
bool
|
||||
net_listen_intr(struct sc_intr *intr, sc_socket socket, uint32_t addr,
|
||||
net_listen_intr(struct sc_intr *intr, sc_socket server_socket, uint32_t addr,
|
||||
uint16_t port, int backlog);
|
||||
|
||||
sc_socket
|
||||
|
@ -13,8 +13,8 @@ if prebuilt_server == ''
|
||||
install_dir: 'share/scrcpy')
|
||||
else
|
||||
if not prebuilt_server.startswith('/')
|
||||
# relative path needs some trick
|
||||
prebuilt_server = meson.source_root() + '/' + prebuilt_server
|
||||
# prebuilt server path is relative to the root scrcpy directory
|
||||
prebuilt_server = '../' + prebuilt_server
|
||||
endif
|
||||
custom_target('scrcpy-server-prebuilt',
|
||||
input: prebuilt_server,
|
||||
|
@ -3,12 +3,10 @@ package com.genymobile.scrcpy.wrappers;
|
||||
import com.genymobile.scrcpy.DisplayInfo;
|
||||
import com.genymobile.scrcpy.Size;
|
||||
|
||||
import android.os.IInterface;
|
||||
|
||||
public final class DisplayManager {
|
||||
private final IInterface manager;
|
||||
private final Object manager; // instance of hidden class android.hardware.display.DisplayManagerGlobal
|
||||
|
||||
public DisplayManager(IInterface manager) {
|
||||
public DisplayManager(Object manager) {
|
||||
this.manager = manager;
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,14 @@ public final class ServiceManager {
|
||||
|
||||
public DisplayManager getDisplayManager() {
|
||||
if (displayManager == null) {
|
||||
displayManager = new DisplayManager(getService("display", "android.hardware.display.IDisplayManager"));
|
||||
try {
|
||||
Class<?> clazz = Class.forName("android.hardware.display.DisplayManagerGlobal");
|
||||
Method getInstanceMethod = clazz.getDeclaredMethod("getInstance");
|
||||
Object dmg = getInstanceMethod.invoke(null);
|
||||
displayManager = new DisplayManager(dmg);
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
return displayManager;
|
||||
}
|
||||
|
Reference in New Issue
Block a user