diff options
Diffstat (limited to 'src/net.h')
| -rw-r--r-- | src/net.h | 36 |
1 files changed, 24 insertions, 12 deletions
@@ -2,6 +2,7 @@ #define OXEN_NET_H #include <stdint.h> +#include <stdbool.h> #include "player.h" #include "hand.h" #include "table_stacks.h" @@ -20,7 +21,8 @@ typedef enum msg_type_init_stacks = 0x3, msg_type_selected_card = 0x4, msg_type_selected_stack_c = 0x5, - msg_type_selected_stack_s = 0x6 + msg_type_selected_stack_s = 0x6, + msg_type_initial_stack = 0x7 } msg_type_t; // Header format @@ -37,26 +39,36 @@ typedef struct uint8_t *payload; } msg_t; +// Socket list +typedef struct +{ + uint8_t count; + int sockets[MAX_PLAYERS]; +} socket_list_t; + + // generic receive function -void* net_recv(int sock, msg_type_t wanted); +bool net_recv(int sock, msg_type_t wanted); +bool net_send(int sock, const msg_type_t type, void* param); // Server side functions int server_start(const char* port); -int* server_get_players(int serversock, const uint8_t count); -void server_start_game(int* clients, const uint8_t clientcount, const player_list* players); -void server_deal_cards(int sock, const hand_t *h); +void server_get_players(int serversock, socket_list_t* client_socks, const uint8_t count); char* server_recv_hello(const uint8_t* payload, const uint8_t payload_len); card* server_recv_selected_card(const uint8_t* payload, const uint8_t payload_len); uint8_t* server_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len); -void server_send_selected_stack(int* clients, const uint8_t clientcount, const uint8_t stackindex); +uint8_t server_send_start_game(uint8_t* payload, const uint8_t payload_len); +uint8_t server_send_deal_cards(uint8_t* payload, const uint8_t payload_len, const void* param); +uint8_t server_send_selected_stack(uint8_t* payload, const uint8_t payload_len); +uint8_t server_send_initial_stacks(uint8_t* payload, const uint8_t payload_len); // Client side functions int client_connect_server(const char* host, const char* port); -void client_hello(int sock, const char* username); -void client_selected_card(int sock, const card c); -void client_send_selected_stack(int sock, const uint8_t stackindex); -void* client_recv_player_list(const uint8_t* payload, const uint8_t data_len); -hand_t *client_recv_deal_cards(const uint8_t* payload, const uint8_t payload_len); -uint8_t* client_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len); +uint8_t client_send_hello(uint8_t* payload, const uint8_t payload_len); +uint8_t client_send_selected_card(uint8_t* payload, const uint8_t payload_len); +uint8_t client_send_selected_stack(uint8_t* payload, const uint8_t payload_len); +bool client_recv_player_list(const uint8_t* payload, const uint8_t data_len); +bool client_recv_deal_cards(const uint8_t* payload, const uint8_t payload_len); +bool client_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len); #endif // OXEN_NET_H |
