first udp tries ...
[my-code/ivac.git] / src / ivac.h
index 2f14ab5..2bd69c5 100644 (file)
@@ -7,17 +7,81 @@
 #define _GNU_SOURCE
 #include <stdio.h>
 
+#include "network.h"
+#include "event.h"
+#include "input.h"
+#include "display.h"
+#include "audio.h"
+
 /* defines */
 #define CHAR_USERNAME 32
 #define ERROR -1
 #define SUCCESS 1
 
+#define IVAC_LISTEN_PORT 1025
+#define IVAC_UDP_PORT 1026
+
+#define IVAC_S_SEC 2
+#define IVAC_S_USEC 500
+
+#define IVAC_SEND_NAME 'n'
+#define IVAC_SEND_G_CAP 'g'
+#define IVAC_SEND_AV_CAP 'c'
+#define IVAC_SEND_QUIT 'q'
+
+#define NETWORK (1<<0)
+
+#define AUDIO (1<<0)
+#define VIDEO (1<<1)
+#define DUPLEX (1<<2)
+
+#define IVAC_CONSOLE_STRING_LEN 64
+
+#define IVAC_HEAD_LEN 3
+#define IVAC_PROMPT_LEN 3
+#define IVAC_CONSOLE_LEN 8
+
+#define IVAC_ARG_LEN CHAR_USERNAME
+#define IVAC_ARG_COUNT 4
+
 /* variables */
+typedef struct s_challenger {
+  char name[CHAR_USERNAME];
+  unsigned char g_cap;
+  unsigned short av_cap;
+} t_challenger;
 
-typedef s_ivac {
+typedef struct s_ivac {
   char username[CHAR_USERNAME];
+  unsigned char g_cap;
+  unsigned short av_cap;
   t_net net;
   t_event event;
+  t_input input;
+  t_display display;
+  t_challenger challenger[MAX_CONNECTIONS];
+  char console[IVAC_CONSOLE_LEN][IVAC_CONSOLE_STRING_LEN];
+  t_audio audio;
 } t_ivac;
 
+/* function prototypes */
+int usage(void);
+int ivac_shutdown(t_ivac *ivac);
+int ivac_send_info(int channel,t_ivac *ivac);
+int ivac_send_quit(int channel,t_ivac *ivac);
+int ivac_receive_info(int channel,t_ivac *ivac);
+int ivac_event_cb(t_event *event,void *ptr);
+int ivac_regular_cb(t_event *event,void *ptr);
+int ivac_parse_command(t_input *input,void *ptr);
+int ivac_display_head(t_display *display);
+int ivac_display_box(t_display *display);
+int ivac_display_box_content(t_ivac *ivac);
+int ivac_display_console(t_display *display);
+int ivac_display_console_content(t_ivac *ivac);
+int ivac_display_prompt(t_display *display);
+int ivac_display_prompt_content(t_ivac *ivac);
+int ivac_display(t_display *display);
+int ivac_display_content(t_ivac *ivac);
+int ivac_add_to_monitor(t_ivac *ivac,char *msg);
+
 #endif