aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/bindings/lang/clang/binding_example/tcp_client.c35
-rw-r--r--core/bindings/lang/clang/binding_example/tcp_server.c43
2 files changed, 78 insertions, 0 deletions
diff --git a/core/bindings/lang/clang/binding_example/tcp_client.c b/core/bindings/lang/clang/binding_example/tcp_client.c
new file mode 100644
index 0000000..ba219a9
--- /dev/null
+++ b/core/bindings/lang/clang/binding_example/tcp_client.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+#include "include/nogamepads_data.h"
+
+int main(void) {
+
+ printf("//////////////////////////////////////// \n");
+ printf("///// NoGamepads C Binding ///////////// \n");
+ printf("///// Example: Connect to a server ///// \n");
+ printf("//////////////////////////////////////// \n");
+ printf("\n");
+
+ FfiPlayer *player = player_register("juliet", "12345678");
+ player_set_hsv(player, 120, 0.5, 0.9);
+ player_set_nickname(player, "IM JULIET");
+ printf("Player created. \n");
+
+ FfiControllerData *controller = controller_data_new();
+ controller_data_bind_player(controller, player);
+ printf("Controller data created. \n");
+
+ FfiControllerRuntime *rt = controller_data_build_runtime(controller);
+ printf("Runtime created. \n");
+
+ FfiTcpClientService *client = tcp_client_build(rt);
+ printf("Tcp client built. \n");
+
+ tcp_client_bind_address_v4(client, 127, 0, 0, 1, 5989);
+ printf("Address bind. \n");
+
+ printf("Connecting \n");
+ tcp_client_connect(client);
+ printf("Disconnected \n");
+
+ return 0;
+}
diff --git a/core/bindings/lang/clang/binding_example/tcp_server.c b/core/bindings/lang/clang/binding_example/tcp_server.c
new file mode 100644
index 0000000..b0ff629
--- /dev/null
+++ b/core/bindings/lang/clang/binding_example/tcp_server.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <pthread.h>
+#include "include/nogamepads_data.h"
+
+void* server_thread(void* arg) {
+ FfiTcpServerService *server = arg;
+ tcp_server_listening_block_on(server);
+
+ printf("Server stopped. \n");
+ return NULL;
+}
+
+int main(void) {
+
+ printf("//////////////////////////////////// \n");
+ printf("///// NoGamepads C Binding ///////// \n");
+ printf("///// Example: Start a server. ///// \n");
+ printf("//////////////////////////////////// \n");
+ printf("\n");
+
+ FfiGameData *data = game_data_new();
+ printf("Data created. \n");
+
+ FfiGameRuntime *rt = game_data_build_runtime(data);
+ printf("Runtime created. \n");
+
+ FfiTcpServerService *server = tcp_server_build(rt);
+ printf("Tcp services created. \n");
+
+ tcp_server_bind_address_v4(server, 127, 0, 0, 1, 5989);
+ printf("Address bind. \n");
+
+ pthread_t thread;
+ pthread_create(&thread, NULL, server_thread, server);
+
+ printf("Server started. Press Enter to stop...\n");
+
+ getchar();
+
+ printf("Process stopped. \n");
+
+ return 0;
+} \ No newline at end of file