chatRoom::chatRoom(int rId, QTcpSocket *socket, QTabWidget *tab, MainUser* mainUser, QMap<int, User*>* global) : ui(new Ui::ChatRoom) { ui->setupUi(this); this->tab = tab; this->roomID = rId; this->tabID = tab->count(); //asd //ChatRoomInterFace *inf = new ChatRoomInterFace; this->mainUser = mainUser; QString roomName = intToChar(rId); tab->addTab(this, "Private(" + roomName + ")"); this->display = ui->plainTextEdit; this->input = ui->textEdit; this->sendButton = ui->pushButton; this->sendFile = ui->pushButton_4; this->leaveRoom = ui->pushButton_3; this->add = ui->pushButton_2; this->userlist = ui->listWidget; this->socket = socket; this->uname = ui->lineEdit; this->sendButton->installEventFilter(this); this->input->installEventFilter(this); connect(sendButton, SIGNAL(clicked()), this, SLOT(sendText())); connect(leaveRoom, SIGNAL(clicked()), this, SLOT(leave())); connect(add, SIGNAL(clicked()), this, SLOT(inviteUser())); connect(sendFile, SIGNAL(clicked()), this, SLOT(sendFileSlot())); this->global = global; userNr = 0; //if() }
int main(int argc, char* argv[]) { struct prg_data prg; struct sigListenConfig lconf; prg.sigData = calloc( 1, sizeof(struct sig_data) ); prg.mediaCnf = calloc( 1, sizeof(struct mediaConfig) ); /* struct mediaConfig mconf; */ /* struct addrinfo servinfo, * p; */ /* Intializes random number generator */ time_t t; srand( (unsigned) time(&t) ); /* struct sockaddr_storage taddr; */ /* Set up the pointer(s).. */ lconf.prg = &prg; /* lconf.mconf = &mconf; */ pthread_t sigSocketListenThread; pthread_t stunTickThread; pthread_t iceTickThread; /* pthread_t turnTickThread; */ if (argc < 3) { fprintf(stderr,"usage: icebox hostname user remoteuser\n"); exit(1); } lconf.sigsock = createTcpSocket(argv[1], SERVERPORT); lconf.signal_path_handler = signalPathHandler; /* lconf.msock = createUdpSocket(argv[1], */ /* STUNPORT, */ /* "turnclient", */ /* 0, */ /* &servinfo, */ /* &p); */ /* if (lconf.msock == -1) */ /* { */ /* return 1; */ /* } */ /* else if (lconf.msock == -2) */ /* { */ /* return 2; */ /* } */ pthread_create(&sigSocketListenThread, NULL, sigSocketListen, (void*)&lconf); strncpy(prg.user, argv[2], MAX_USER_LEN); registerUser(&prg.sigData->state, lconf.sigsock, prg.user); /* Setup ICE */ ICELIB_CONFIGURATION iceConfig; iceConfig.tickIntervalMS = 20; iceConfig.keepAliveIntervalS = 15; iceConfig.maxCheckListPairs = ICELIB_MAX_PAIRS; iceConfig.aggressiveNomination = false; iceConfig.iceLite = false; iceConfig.logLevel = ICELIB_logDebug; /* iceConfig.logLevel = ICELIB_logDisable; */ prg.mediaCnf->icelib = malloc( sizeof(ICELIB_INSTANCE) ); ICELIB_Constructor(prg.mediaCnf->icelib, &iceConfig); /* ICELIB_setCallbackLog(prg.mediaCnf->icelib, */ /* ICELIB_printLog, */ /* NULL, */ /* ICELIB_logDebug); */ ICELIB_setCallbackOutgoingBindingRequest(prg.mediaCnf->icelib, sendConnectivityCheck, &prg); ICELIB_setCallbackOutgoingBindingResponse(prg.mediaCnf->icelib, sendConnectivityResp, &prg); ICELIB_setCallbackConnecitivityChecksComplete(prg.mediaCnf->icelib, complete, &prg); ICELIB_setCallbackNominated(prg.mediaCnf->icelib, nominated, &prg); ICELIB_setCallbackOutgoingCancelRequest(prg.mediaCnf->icelib, cancelSTUNtrans, &prg); /* Setup stun */ StunClient_Alloc(&prg.mediaCnf->stunInstance); /* StunClient_RegisterLogger(prg.mediaCnf->stunInstance, */ /* stunLog, */ /* &prg); */ /* Signal path set up, time to gather the candidates */ /* Turn setup */ /* if ( 0 != getSockaddrFromFqdn( (struct sockaddr*)&taddr, argv[1] ) ) */ /* { */ /* printf("Error getting TURN Server IP\n"); */ /* return 1; */ /* } */ /* TurnClient_StartAllocateTransaction(&lconf.turnInst, */ /* 50, */ /* turnInfoFunc, */ /* "icebox", */ /* &lconf.msock, / * *userCtx * / */ /* (struct sockaddr*)&taddr, */ /* / "test\0", / *argv[2],* / */ /* "pass\0", / *argv[2],* / */ /* AF_INET, */ /* turnSendFunc, */ /* turnCbFunc, */ /* false, */ /* 0); */ /* pthread_create(&turnTickThread, NULL, tickTurn, (void*)lconf.turnInst); */ pthread_create(&stunTickThread, NULL, tickStun, (void*)prg.mediaCnf->stunInstance); pthread_create(&iceTickThread, NULL, tickIce, (void*)prg.mediaCnf->icelib); if (argc == 4) { /* Ok got nothing better to do. Busywaiting */ while (prg.sigData->state != REGISTERED) { } char* sdp = NULL; harvest(prg.mediaCnf->icelib); printf("Completed harvesting\n"); crateCandidateJson(prg.mediaCnf->icelib, &sdp); /* Start to listen here.. */ pthread_create(&prg.mediaCnf->mSocketListenThread, NULL, mSocketListen, (void*)prg.mediaCnf); inviteUser(&prg.sigData->state, lconf.sigsock, argv[3], prg.user, sdp); if (sdp != NULL) { free(sdp); } } /* Just wait a bit for now.. */ sleep(100); printf("Done sleeping teardown\n"); close(lconf.sigsock); StunClient_free(prg.mediaCnf->stunInstance); free(prg.mediaCnf); free(prg.sigData->sdp); free(prg.sigData->msgBuf); free(prg.sigData); return 0; }