qnetdice

annotate src/main.cc @ 3:2e57c80653af

more stuff
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 23 Dec 2013 06:09:25 +0200
parents 92377189a5c6
children
rev   line source
nuclear@1 1 #include <stdlib.h>
nuclear@1 2 #include <time.h>
nuclear@1 3 #include <vector>
nuclear@1 4 #include <QApplication>
nuclear@1 5 #include <QStatusBar>
nuclear@1 6 #include "main.h"
nuclear@0 7 #include "mainwin.h"
nuclear@1 8 #include "roll.h"
nuclear@1 9 #include "logger.h"
nuclear@1 10
nuclear@1 11 static void new_client();
nuclear@1 12 static void status_log(const char *msg, void *cls);
nuclear@1 13
nuclear@1 14 std::vector<Roll*> dice;
nuclear@1 15 QTcpServer *server;
nuclear@1 16 std::vector<QTcpSocket*> clients;
nuclear@1 17
nuclear@1 18 QTcpSocket *socket;
nuclear@1 19
nuclear@1 20 static std::string srv_passwd;
nuclear@3 21 static MainWindow *win_main;
nuclear@0 22
nuclear@0 23 int main(int argc, char *argv[])
nuclear@0 24 {
nuclear@1 25 srand(time(0));
nuclear@0 26
nuclear@1 27 QApplication app(argc, argv);
nuclear@3 28
nuclear@3 29 win_main = new MainWindow;
nuclear@3 30 win_main->show();
nuclear@1 31
nuclear@1 32 set_log_file(stdout);
nuclear@3 33 set_log_callback(status_log, win_main->statusBar());
nuclear@1 34
nuclear@1 35 return app.exec();
nuclear@0 36 }
nuclear@1 37
nuclear@1 38
nuclear@1 39 void start_server(int port, const char *passwd)
nuclear@1 40 {
nuclear@1 41 if(server) return;
nuclear@1 42
nuclear@1 43 log_message("starting server on port: %d\n", port);
nuclear@1 44
nuclear@1 45 server = new QTcpServer;
nuclear@1 46 server->listen(QHostAddress::Any, port);
nuclear@1 47 srv_passwd = passwd;
nuclear@1 48
nuclear@1 49 QObject::connect(server, &QTcpServer::newConnection, new_client);
nuclear@1 50 }
nuclear@1 51
nuclear@1 52
nuclear@1 53 static void new_client()
nuclear@1 54 {
nuclear@1 55 QTcpSocket *sock = server->nextPendingConnection();
nuclear@1 56 if(!sock) return;
nuclear@1 57
nuclear@1 58 QHostAddress client_addr = sock->peerAddress();
nuclear@1 59 clients.push_back(sock);
nuclear@1 60
nuclear@1 61 log_message("received connection request from: %s\n", client_addr.toString().toUtf8().data());
nuclear@1 62 }
nuclear@1 63
nuclear@3 64 void start_client(const char *host, int port, const char *passwd)
nuclear@1 65 {
nuclear@1 66 log_message("connecting to host: %s port: %d\n", host, port);
nuclear@1 67 }
nuclear@1 68
nuclear@1 69
nuclear@1 70 static void status_log(const char *msg, void *cls)
nuclear@1 71 {
nuclear@1 72 QStatusBar *sbar = (QStatusBar*)cls;
nuclear@1 73 sbar->showMessage(msg);
nuclear@1 74 }