69 lines
2.0 KiB
C++
69 lines
2.0 KiB
C++
#include "ChatServerVoice.h"
|
|
|
|
void ChatServerVoice::onLoad() {
|
|
ServerModule* sm = (ServerModule*) moduleInstances[ServerModule()];
|
|
|
|
sm->startServer(9932);
|
|
}
|
|
|
|
//void ChatServerVoice::run() {}
|
|
|
|
bool ChatServerVoice::onEvent(const Archimedes::Event& event) {
|
|
|
|
unsigned int type = app->getEventType(event);
|
|
|
|
|
|
/*if(type == app->getEventType("DataSentEvent")) {
|
|
//we did this?
|
|
return true;
|
|
} else */
|
|
|
|
if(type == app->getEventType(Archimedes::DataRecievedEvent())) {
|
|
|
|
static ServerModule* sm; { sm = (ServerModule*) moduleInstances[ServerModule()]; }
|
|
|
|
Archimedes::DataRecievedEvent& e = (Archimedes::DataRecievedEvent&) event;
|
|
static std::string s;
|
|
|
|
if(((char*)e.msg->m_pData)[0] == 'a' && ((char*)e.msg->m_pData)[1] == '0' && ((char*)e.msg->m_pData)[2] == ' ' && ((char*)e.msg->m_pData)[3] == 'o') {
|
|
s = std::string((const char*)e.msg->m_pData + 4, e.msg->m_cbSize - 4);
|
|
|
|
if(s == "/quit") {
|
|
sm->disconnectClient(e.msg->m_conn);
|
|
} else if(s == "/shutdown") {
|
|
sm->stopServer();
|
|
app->end();
|
|
}
|
|
|
|
for(auto& it : sm->getClients()) {
|
|
if(it.first != e.msg->m_conn)
|
|
sm->sendReliable(it.first, e.msg->m_pData, e.msg->m_cbSize);
|
|
else
|
|
sm->sendReliable(e.msg->m_conn, "a0 o\nMessage sent\n", strlen("a0 o\nMessage sent\n"));
|
|
}
|
|
|
|
|
|
} else {
|
|
s = "audio data";
|
|
|
|
for(auto& it : sm->getClients()) {
|
|
if(it.first != e.msg->m_conn)
|
|
sm->sendReliable(it.first, e.msg->m_pData, e.msg->m_cbSize);
|
|
}
|
|
}
|
|
|
|
std::cerr << "Server Recieved: " << s << std::endl;
|
|
|
|
return true;
|
|
|
|
} /*else if(type == app->getEventType("ConnectionStatusChangedEvent")) {
|
|
|
|
//Archimedes::ConnectionStatusChangedEvent& e = (Archimedes::ConnectionStatusChangedEvent&) event;
|
|
|
|
return false;
|
|
|
|
}*/
|
|
|
|
return false;
|
|
}
|