Skip to content

Commit ed3b2e9

Browse files
committed
2 parents 1f8a6b1 + 8b6f74f commit ed3b2e9

3 files changed

Lines changed: 65 additions & 3 deletions

File tree

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ b-fast:
66
${MAKE} --no-print-directory -C backend fast
77
b-run:
88
${MAKE} --no-print-directory -C backend run
9-
109
js:
1110
m4 -DTS MessageType.m4 > MessageType.ts
1211
cp MessageType.ts frontend/MessageType.ts # TODO
@@ -21,6 +20,7 @@ f-freezed:
2120

2221
f-run:
2322
${MAKE} --no-print-directory -C rentnerend flutter
24-
23+
e-run:
24+
${MAKE} --no-print-directory -C echo run
2525
clean:
2626
rm -f frontend/script.js MessageType.js MessageType.ts backend/interscore-backend

echo/src/MessageType.zig

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
3+
4+
5+
6+
7+
8+
9+
10+
11+
12+
13+
pub const MessageType = enum(u8) {
14+
15+
DATA_META = 0, DATA_META_GAME = 1, DATA_META_TIME = 2, DATA_META_OBS = 3, DATA_META_WIDGETS = 4, DATA_GAMES = 5, DATA_GAME = 6, DATA_GAMEACTIONS = 7, DATA_GAMEACTION = 8, DATA_FORMATS = 9, DATA_FORMAT = 10, DATA_TEAMS = 11, DATA_TEAM = 12, DATA_GROUPS = 13, DATA_GROUP = 14, DATA_IM_BOSS = 15, DATA_TIMESTAMP = 16, DATA_JSON = 17, IM_THE_BOSS = 18, PLS_SEND_META = 19, PLS_SEND_META_GAME = 20, PLS_SEND_META_TIME = 21, PLS_SEND_META_OBS = 22, PLS_SEND_META_WIDGETS = 23, PLS_SEND_GAMES = 24, PLS_SEND_GAME = 25, PLS_SEND_GAMEACTIONS = 26, PLS_SEND_GAMEACTION = 27, PLS_SEND_FORMATS = 28, PLS_SEND_FORMAT = 29, PLS_SEND_TEAMS = 30, PLS_SEND_TEAM = 31, PLS_SEND_GROUPS = 32, PLS_SEND_GROUP = 33, PLS_SEND_IM_BOSS = 34, PLS_SEND_TIMESTAMP = 35, PLS_SEND_JSON
16+
= 36,
17+
};
18+
19+
20+

echo/src/main.zig

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const std = @import("std");
22
const ws = @import("websocket");
33
const AllocatorWrapper = @import("allocator.zig").AllocatorWrapper;
4+
const MessageType = @import("MessageType.zig").MessageType;
45

56
const log = std.log.scoped(.interscore);
67
const ziglog = std.log.scoped(.zig);
@@ -56,7 +57,48 @@ const Handler = struct {
5657

5758
// Callback running when client sends message
5859
pub fn clientMessage(self: *Handler, data: []const u8) !void {
59-
try self.conn.write(data);
60+
const msg: MessageType = @enumFromInt(data[0]);
61+
switch (msg) {
62+
.PLS_SEND_SIDES_SWITCHED,
63+
.PLS_SEND_GAMEPART,
64+
.PLS_SEND_GAMEINDEX,
65+
.PLS_SEND_IS_PAUSE,
66+
.PLS_SEND_TIME,
67+
.PLS_SEND_JSON,
68+
.PLS_SEND_OBS_REPLAY_ON,
69+
.PLS_SEND_OBS_STREAM_ON,
70+
.PLS_SEND_WIDGET_AD_ON,
71+
.PLS_SEND_WIDGET_GAMESTART_ON,
72+
.PLS_SEND_WIDGET_GAMEPLAN_ON,
73+
.PLS_SEND_WIDGET_LIVETABLE_ON,
74+
.PLS_SEND_WIDGET_SCOREBOARD_ON,
75+
.PLS_SEND_GAME_ACTION,
76+
.PLS_SEND_TIMESTAMP,
77+
.PLS_SEND_GAME => {
78+
// Forwarding to frontend
79+
try self.conn.write(data);
80+
},
81+
.PLS_SEND_IM_BOSS => {
82+
const msg_byte: u8 = @intFromEnum(MessageType.DATA_IM_BOSS);
83+
const is_boss: u8 = @intFromBool(self.conn == self.app.boss);
84+
try self.conn.write(&.{msg_byte, is_boss});
85+
},
86+
.DATA_OBS_STREAM_ON => {
87+
// TODO
88+
},
89+
.DATA_OBS_REPLAY_ON => {
90+
// TODO
91+
},
92+
.IM_THE_BOSS => {
93+
// TODO
94+
},
95+
.DATA_GAMEINDEX => {
96+
// TODO
97+
},
98+
else => {
99+
// TODO
100+
}
101+
}
60102
}
61103

62104
// Callback running when connection is about to be terminated

0 commit comments

Comments
 (0)