Skip to content

Commit 023d43e

Browse files
feat: allow custom ip for cemuhook server (kozec#2)
* feat: allow custom ip for cemuhook server
1 parent 17a9cb8 commit 023d43e

File tree

11 files changed

+34
-28
lines changed

11 files changed

+34
-28
lines changed

scc/actions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2400,7 +2400,7 @@ def __init__(self, press_level, *params):
24002400
raise TypeError("Invalid number of parameters")
24012401
self.pressed = False
24022402
# Having AxisAction as child of TriggerAction is special case,
2403-
# child action recieves trigger events instead of button presses
2403+
# child action receives trigger events instead of button presses
24042404
# and button_releases.
24052405
self.child_is_axis = isinstance(self.action.strip(), AxisAction)
24062406

scc/cemuhook_server.c

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,15 @@ static void parse_message(int fd, const char* buffer, size_t size, struct sockad
172172
struct Message out;
173173
int i, x;
174174
if ((size < 20) || (buffer[0] != 'D') || (buffer[1]!='S') || (buffer[2] != 'U') || (buffer[3] != 'C')) {
175-
WARN("Recieved invalid message: Invalid header");
175+
WARN("Received invalid message: Invalid header");
176176
return;
177177
}
178178
if (msg->protocol_version > MAX_PROTO_VERSION) {
179-
WARN("Recieved invalid message: Unsupported version");
179+
WARN("Received invalid message: Unsupported version");
180180
return;
181181
}
182182
if (size < msg->packet_size + 20 - 4) {
183-
WARN("Recieved invalid message: Invalid size (expected %i, got %zu)", msg->packet_size + 20 - 4, size);
183+
WARN("Received invalid message: Invalid size (expected %i, got %zu)", msg->packet_size + 20 - 4, size);
184184
return;
185185
}
186186

@@ -256,7 +256,7 @@ static void parse_message(int fd, const char* buffer, size_t size, struct sockad
256256
break;
257257
}
258258
default:
259-
// WARN("Recieved invalid message: Unknown message type");
259+
// WARN("Received invalid message: Unknown message type");
260260
return;
261261
}
262262
}
@@ -302,10 +302,10 @@ const int cemuhook_module_version(void) {
302302
return CEMUHOOK_MODULE_VERSION;
303303
}
304304

305-
void cemuhook_data_recieved(int fd, int port, const char* buffer, size_t size) {
305+
void cemuhook_data_received(int fd, const char* ip, int port, const char* buffer, size_t size) {
306306
struct sockaddr_in source;
307307
source.sin_family = AF_INET;
308-
source.sin_addr.s_addr = inet_addr("127.0.0.1");
308+
source.sin_addr.s_addr = inet_addr(ip);
309309
source.sin_port = htons(port);
310310

311311
parse_message(fd, buffer, size, &source);
@@ -321,7 +321,7 @@ bool cemuhook_socket_enable() {
321321

322322
#else
323323

324-
static void on_data_recieved(Daemon* d, int fd, void* userdata) {
324+
static void on_data_received(Daemon* d, int fd, void* userdata) {
325325
char buffer[BUFFER_SIZE];
326326
struct sockaddr_in source;
327327
socklen_t len = sizeof(struct sockaddr_in);
@@ -345,7 +345,11 @@ bool sccd_cemuhook_socket_enable() {
345345
struct sockaddr_in server_addr;
346346
memset(&server_addr, 0, sizeof(struct sockaddr_in));
347347
server_addr.sin_family = AF_INET;
348-
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
348+
if (const char* custom_ip = getenv("SCC_SERVER_IP")) {
349+
server_addr.sin_addr.s_addr = inet_addr(custom_ip);
350+
} else {
351+
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
352+
}
349353
if (const char* custom_port = getenv("SCC_SERVER_PORT")) {
350354
server_addr.sin_port = atoi(custom_port);
351355
} else {
@@ -381,7 +385,7 @@ bool sccd_cemuhook_socket_enable() {
381385
return false;
382386
}
383387

384-
if (!sccd_poller_add(sock, &on_data_recieved, NULL)) {
388+
if (!sccd_poller_add(sock, &on_data_received, NULL)) {
385389
LERROR("sccd_poller_add failed to add listening socket");
386390
return false;
387391
}

scc/cemuhook_server.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
log = logging.getLogger("CemuHook")
1818

1919
BUFFER_SIZE = 1024
20+
IP = '127.0.0.1'
2021
PORT = 26760
2122

2223

@@ -35,8 +36,8 @@ class CemuhookServer:
3536

3637
def __init__(self, daemon):
3738
self._lib = find_library('libcemuhook')
38-
self._lib.cemuhook_data_recieved.argtypes = [ c_int, c_int, c_char_p, c_size_t ]
39-
self._lib.cemuhook_data_recieved.restype = None
39+
self._lib.cemuhook_data_received.argtypes = [ c_int, c_char_p, c_int, c_char_p, c_size_t ]
40+
self._lib.cemuhook_data_received.restype = None
4041
self._lib.cemuhook_feed.argtypes = [ c_int, c_int, CemuhookServer.C_DATA_T ]
4142
self._lib.cemuhook_feed.restype = None
4243
self._lib.cemuhook_socket_enable.argtypes = []
@@ -50,10 +51,11 @@ def __init__(self, daemon):
5051
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
5152

5253
poller = daemon.get_poller()
53-
daemon.poller.register(self.socket.fileno(), poller.POLLIN, self.on_data_recieved)
54+
daemon.poller.register(self.socket.fileno(), poller.POLLIN, self.on_data_received)
5455

5556
server_port = int(os.getenv('SCC_SERVER_PORT') or PORT);
56-
self.socket.bind(('127.0.0.1', server_port))
57+
server_ip = os.getenv('SCC_SERVER_IP') or IP;
58+
self.socket.bind((server_ip, server_port))
5759
log.info("Created CemuHookUDP Motion Provider")
5860

5961
Thread(target=self._keepalive).start()
@@ -66,11 +68,11 @@ def _keepalive(self):
6668
self.feed((0.0, 0.0, 0.0, 0.0, 0.0, 0.0))
6769
sleep(1)
6870

69-
def on_data_recieved(self, fd, event_type):
71+
def on_data_received(self, fd, event_type):
7072
if fd != self.socket.fileno(): return
7173
message, (ip, port) = self.socket.recvfrom(BUFFER_SIZE)
7274
buffer = create_string_buffer(BUFFER_SIZE)
73-
self._lib.cemuhook_data_recieved(fd, port, message, len(message), buffer)
75+
self._lib.cemuhook_data_received(fd, ip.encode('utf-8'), port, message, len(message), buffer)
7476

7577

7678
def feed(self, data):

scc/drivers/sc_dongle.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def close(self):
9393
def _add_controller(self, endpoint):
9494
"""
9595
Called when new controller is detected either by HOTPLUG message or
96-
by recieving first input event.
96+
by receiving first input event.
9797
"""
9898
ccidx = FIRST_CONTROLIDX + endpoint - FIRST_ENDPOINT
9999
c = SCController(self, ccidx, endpoint)

scc/drivers/usb.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def set_input_interrupt(self, endpoint, size, callback):
2929
"""
3030
Helper method for setting up input transfer.
3131
32-
callback(endpoint, data) is called repeadedly with every packed recieved.
32+
callback(endpoint, data) is called repeadedly with every packed received.
3333
"""
3434
def callback_wrapper(transfer):
3535
if (transfer.getStatus() != usb1.TRANSFER_COMPLETED or
@@ -40,7 +40,7 @@ def callback_wrapper(transfer):
4040
try:
4141
callback(endpoint, data)
4242
except Exception as e:
43-
log.error("Failed to handle recieved data")
43+
log.error("Failed to handle received data")
4444
log.error(e)
4545
log.error(traceback.format_exc())
4646
finally:
@@ -87,7 +87,7 @@ def overwrite_control(self, index, data):
8787
def make_request(self, index, callback, data, size=64):
8888
"""
8989
Schedules synchronous request that requires response.
90-
Request is done ASAP and provided callback is called with recieved data.
90+
Request is done ASAP and provided callback is called with received data.
9191
"""
9292
self._rmsg.append((
9393
(

scc/gui/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1078,7 +1078,7 @@ def on_daemon_error(self, daemon, error):
10781078
msg = _('There was an error with enabling emulation: <b>%s</b>') % (error,)
10791079
# Known errors are handled with aditional message
10801080
if "Device not found" in error:
1081-
msg += "\n" + _("Please, check if you have reciever dongle connected to USB port.")
1081+
msg += "\n" + _("Please, check if you have receiver dongle connected to USB port.")
10821082
elif "LIBUSB_ERROR_ACCESS" in error:
10831083
msg += "\n" + _("You don't have access to controller device.")
10841084
msg += "\n\n" + ( _("Consult your distribution manual, try installing Steam package or <a href='%s'>install required udev rules manually</a>.") %

scc/gui/daemon_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class DaemonManager(GObject.GObject):
5454
5555
unknown-msg (message)
5656
Emited when message that can't be parsed internally
57-
is recieved from daemon.
57+
is received from daemon.
5858
5959
version (ver)
6060
Emited daemon reports its version - usually only once per connection.
@@ -163,7 +163,7 @@ def _on_read_data(self, sc, results):
163163
try:
164164
response = sc.read_bytes_finish(results)
165165
if response == None:
166-
raise Exception("No data recieved")
166+
raise Exception("No data received")
167167
except Exception as e:
168168
# Broken sonnection, daemon was probbaly terminated
169169
self._on_daemon_died()

scc/lib/eudevmonitor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ def __next__(self):
221221

222222
class Monitor:
223223
"""
224-
Monitor object recieves device events.
224+
Monitor object receives device events.
225225
receive_device method blocks until next event is processed, so it can be
226226
used either in dumb loop, or called when select syscall reports descriptor
227227
returned by get_fd has data available.

scc/lib/xwrappers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ def get_current_window(dpy):
370370
def get_window_type(dpy, window):
371371
"""
372372
Returns _NET_WM_WINDOW_TYPE value for window specified or None if anything
373-
fails while recieving it.
373+
fails while receiving it.
374374
"""
375375
trash, prop = get_window_prop(dpy, window, "_NET_WM_WINDOW_TYPE")
376376
if prop is not None and prop.value is not None:

scc/sccdaemon.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def add_on_exit(self, fn):
176176

177177
def add_on_rescan(self, fn):
178178
"""
179-
Adds function that is called when `Rescan.` message is recieved.
179+
Adds function that is called when `Rescan.` message is received.
180180
"""
181181
if fn not in self.on_exit_cbs:
182182
self.rescan_cbs.append(fn)
@@ -758,7 +758,7 @@ def _sshandler(self, connection, rfile, wfile):
758758

759759
def _handle_message(self, client, message):
760760
"""
761-
Handles message recieved from client.
761+
Handles message received from client.
762762
"""
763763
if message.startswith(b"Profile:"):
764764
with self.lock:

0 commit comments

Comments
 (0)