diff options
Diffstat (limited to 'src/client/session.h')
-rw-r--r-- | src/client/session.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/client/session.h b/src/client/session.h new file mode 100644 index 0000000..0a91755 --- /dev/null +++ b/src/client/session.h @@ -0,0 +1,42 @@ +#ifndef SESSION_H +#define SESSION_H + +#include <basic/arena.h> +#include <basic/string32.h> +#include <basic/time.h> +#include <os/os.h> + +struct Fscord; + +typedef struct { + String32Buffer *name; +} User; + +typedef struct { + Time creation_time; + String32Buffer *sender_name; + String32Buffer *content; +} ChatMessage; + +typedef struct { + size_t cur_user_count; + size_t max_user_count; + User *users; + + size_t message0; + size_t cur_message_count; + size_t max_message_count; + ChatMessage *messages; + + String32Buffer *prompt; +} Session; + +Session *session_create(Arena *arena, struct Fscord *fscord); +void session_reset(Session *session); +void session_process_event(Session *session, OSEvent *event); +void session_draw(Session *session); +void session_add_chat_message(Session *session, Time creation_time, String32 *sender_name, String32 *content); +void session_add_user(Session *session, String32 *username); +void session_rm_user(Session *session, String32 *username); + +#endif // SESSION_H |