summaryrefslogtreecommitdiff
path: root/protocols/Xfire/src/Xfire_voicechat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Xfire/src/Xfire_voicechat.cpp')
-rw-r--r--protocols/Xfire/src/Xfire_voicechat.cpp316
1 files changed, 158 insertions, 158 deletions
diff --git a/protocols/Xfire/src/Xfire_voicechat.cpp b/protocols/Xfire/src/Xfire_voicechat.cpp
index bae2d4a2d1..66454c026e 100644
--- a/protocols/Xfire/src/Xfire_voicechat.cpp
+++ b/protocols/Xfire/src/Xfire_voicechat.cpp
@@ -4,10 +4,10 @@
//konstruktor
Xfire_voicechat::Xfire_voicechat() {
this->resetCurrentvoicestatus();
- ipport=NULL;
- tsrDLL=NULL;
- tsrGetServerInfo=NULL;
- pid=0;
+ ipport = NULL;
+ tsrDLL = NULL;
+ tsrGetServerInfo = NULL;
+ pid = 0;
}
//dekonstruktor
@@ -16,7 +16,7 @@ Xfire_voicechat::~Xfire_voicechat()
//geladene tsr remote dll freigeben
if (tsrDLL) {
FreeLibrary(tsrDLL);
- tsrDLL=NULL;
+ tsrDLL = NULL;
}
}
@@ -24,21 +24,21 @@ Xfire_voicechat::~Xfire_voicechat()
void Xfire_voicechat::initVoicechat()
{
//tsremotedll laden
- tsrDLL=this->loadTSR();
+ tsrDLL = this->loadTSR();
}
//prüft ob das paket schonmal versendet wurde, soll unnötigen nwtraffic reduzieren, *ÜBERLEGUNG* ob wirklich notwendig
BOOL Xfire_voicechat::alreadySend(SendGameStatus2Packet* packet) {
- if (packet==NULL)
+ if (packet == NULL)
return FALSE;
-
+
if (packet->ip[3] != lastpacket.ip[3] ||
- packet->ip[2] != lastpacket.ip[2] ||
- packet->ip[1] != lastpacket.ip[1] ||
- packet->ip[0] != lastpacket.ip[0] ||
- packet->port != lastpacket.port) {
- lastpacket=*packet;
- return TRUE;
+ packet->ip[2] != lastpacket.ip[2] ||
+ packet->ip[1] != lastpacket.ip[1] ||
+ packet->ip[0] != lastpacket.ip[0] ||
+ packet->port != lastpacket.port) {
+ lastpacket = *packet;
+ return TRUE;
}
return FALSE;
@@ -47,66 +47,66 @@ BOOL Xfire_voicechat::alreadySend(SendGameStatus2Packet* packet) {
//prüft nach laufenden voicechat anwendungen
BOOL Xfire_voicechat::checkVoicechat(SendGameStatus2Packet* packet) {
//kein gültiger verweis?
- if (packet==NULL)
+ if (packet == NULL)
return FALSE;
//jeh nach letzten status handeln
- switch(currentvoice) {
- case XFIREVOICECHAT_TS2:
- if (checkforTS2(packet)) {
- return alreadySend(packet);
- }
- else
- {
- //kein ts2 mehr? dann paket restten
- resetSendGameStatus2Packet(packet);
- resetCurrentvoicestatus();
- //in db schreiben
- writeToDatabase(packet);
- return TRUE;
- }
- break;
- case XFIREVOICECHAT_TS3:
- if (checkforTS3(packet)) {
- return alreadySend(packet);
- }
- else
- {
- //kein ts3 mehr? dann paket restten
- resetSendGameStatus2Packet(packet);
- resetCurrentvoicestatus();
- //in db schreiben
- writeToDatabase(packet);
- return TRUE;
- }
- break;
- case XFIREVOICECHAT_MUMBLE:
- if (checkforMumble(packet)) {
- return alreadySend(packet);
- }
- else
- {
- //kein mumble mehr? dann paket restten
- resetSendGameStatus2Packet(packet);
- resetCurrentvoicestatus();
- //in db schreiben
- writeToDatabase(packet);
- return TRUE;
- }
- break;
- default:
- //prüfe nach ts3
- if (checkforTS3(packet)) {
- return alreadySend(packet);
- }
- //prüfe nach ts2
- else if (checkforTS2(packet)) {
- return alreadySend(packet);
- }
- //prüfe nach mumble
- else if (checkforMumble(packet)) {
- return alreadySend(packet);
- }
- break;
+ switch (currentvoice) {
+ case XFIREVOICECHAT_TS2:
+ if (checkforTS2(packet)) {
+ return alreadySend(packet);
+ }
+ else
+ {
+ //kein ts2 mehr? dann paket restten
+ resetSendGameStatus2Packet(packet);
+ resetCurrentvoicestatus();
+ //in db schreiben
+ writeToDatabase(packet);
+ return TRUE;
+ }
+ break;
+ case XFIREVOICECHAT_TS3:
+ if (checkforTS3(packet)) {
+ return alreadySend(packet);
+ }
+ else
+ {
+ //kein ts3 mehr? dann paket restten
+ resetSendGameStatus2Packet(packet);
+ resetCurrentvoicestatus();
+ //in db schreiben
+ writeToDatabase(packet);
+ return TRUE;
+ }
+ break;
+ case XFIREVOICECHAT_MUMBLE:
+ if (checkforMumble(packet)) {
+ return alreadySend(packet);
+ }
+ else
+ {
+ //kein mumble mehr? dann paket restten
+ resetSendGameStatus2Packet(packet);
+ resetCurrentvoicestatus();
+ //in db schreiben
+ writeToDatabase(packet);
+ return TRUE;
+ }
+ break;
+ default:
+ //prüfe nach ts3
+ if (checkforTS3(packet)) {
+ return alreadySend(packet);
+ }
+ //prüfe nach ts2
+ else if (checkforTS2(packet)) {
+ return alreadySend(packet);
+ }
+ //prüfe nach mumble
+ else if (checkforMumble(packet)) {
+ return alreadySend(packet);
+ }
+ break;
};
return FALSE;
@@ -114,70 +114,70 @@ BOOL Xfire_voicechat::checkVoicechat(SendGameStatus2Packet* packet) {
//setzte currentvoice auf 0 zurück, falls es einen disconnect gab
void Xfire_voicechat::resetCurrentvoicestatus() {
- currentvoice=XFIREVOICECHAT_NOVOICE;
- lastpacket.ip[3]=0;
- lastpacket.ip[2]=0;
- lastpacket.ip[1]=0;
- lastpacket.ip[0]=0;
- lastpacket.port=0;
- pid=0;
+ currentvoice = XFIREVOICECHAT_NOVOICE;
+ lastpacket.ip[3] = 0;
+ lastpacket.ip[2] = 0;
+ lastpacket.ip[1] = 0;
+ lastpacket.ip[0] = 0;
+ lastpacket.port = 0;
+ pid = 0;
}
//resettet das packet auf 0
void Xfire_voicechat::resetSendGameStatus2Packet(SendGameStatus2Packet* packet) {
- if (packet==NULL)
+ if (packet == NULL)
return;
//voiceid
- packet->gameid=XFIREVOICECHAT_NOVOICE;
+ packet->gameid = XFIREVOICECHAT_NOVOICE;
//ip zuweisen
- packet->ip[3]=0;
- packet->ip[2]=0;
- packet->ip[1]=0;
- packet->ip[0]=0;
+ packet->ip[3] = 0;
+ packet->ip[2] = 0;
+ packet->ip[1] = 0;
+ packet->ip[0] = 0;
//port zuweisen
- packet->port=0;
+ packet->port = 0;
}
//schreibt derzetigen status in die mirandadb für variables usw
void Xfire_voicechat::writeToDatabase(SendGameStatus2Packet* packet) {
//für sprintf
- char temp[32]="";
+ char temp[32] = "";
- if (packet==NULL || packet->gameid==XFIREVOICECHAT_NOVOICE) {
+ if (packet == NULL || packet->gameid == XFIREVOICECHAT_NOVOICE) {
//einträge aus der db entfernen
- db_unset(NULL,protocolname, "VServerIP");
- db_unset(NULL,protocolname, "currentvoicename");
+ db_unset(NULL, protocolname, "VServerIP");
+ db_unset(NULL, protocolname, "currentvoicename");
//zurück
return;
}
//ip speichern
- mir_snprintf(temp,32,"%d.%d.%d.%d:%d",(unsigned char)packet->ip[3],(unsigned char)packet->ip[2],(unsigned char)packet->ip[1],(unsigned char)packet->ip[0],packet->port);
+ mir_snprintf(temp, 32, "%d.%d.%d.%d:%d", (unsigned char)packet->ip[3], (unsigned char)packet->ip[2], (unsigned char)packet->ip[1], (unsigned char)packet->ip[0], packet->port);
db_set_s(NULL, protocolname, "VServerIP", temp);
//namen jeh nach id schreiben
- switch(packet->gameid) {
- case XFIREVOICECHAT_TS3:
- db_set_s(NULL, protocolname, "currentvoicename", "Teamspeak 3");
- break;
- case XFIREVOICECHAT_TS2:
- db_set_s(NULL, protocolname, "currentvoicename", "Teamspeak 2");
- break;
- case XFIREVOICECHAT_MUMBLE:
- db_set_s(NULL, protocolname, "currentvoicename", "Mumble");
- break;
- case XFIREVOICECHAT_VENTRILO:
- db_set_s(NULL, protocolname, "currentvoicename", "Ventrilo");
- break;
+ switch (packet->gameid) {
+ case XFIREVOICECHAT_TS3:
+ db_set_s(NULL, protocolname, "currentvoicename", "Teamspeak 3");
+ break;
+ case XFIREVOICECHAT_TS2:
+ db_set_s(NULL, protocolname, "currentvoicename", "Teamspeak 2");
+ break;
+ case XFIREVOICECHAT_MUMBLE:
+ db_set_s(NULL, protocolname, "currentvoicename", "Mumble");
+ break;
+ case XFIREVOICECHAT_VENTRILO:
+ db_set_s(NULL, protocolname, "currentvoicename", "Ventrilo");
+ break;
};
}
//versucht die TSR zuladen
-HMODULE Xfire_voicechat::loadTSR(char* path,BOOL nolocaltest) {
+HMODULE Xfire_voicechat::loadTSR(char* path, BOOL nolocaltest) {
TCHAR pathtotsr[MAX_PATH] = _T("");
/*if (path)
; was tun*/
- _tcscat_s(pathtotsr,MAX_PATH,_T("TSRemote.dll"));
-
+ _tcscat_s(pathtotsr, MAX_PATH, _T("TSRemote.dll"));
+
//versuche dll zuladen
HMODULE tsrDLL = LoadLibrary(pathtotsr);
//konnte nicht geladen werden
@@ -193,22 +193,22 @@ HMODULE Xfire_voicechat::loadTSR(char* path,BOOL nolocaltest) {
if (!tsrDLL) {
XFireLog("TSRemote.dll load faild (using standard installationpath)!");
-
+
//deutsches sys?
tsrDLL = LoadLibrary(_T("C:\\Programme\\Teamspeak2_RC2\\client_sdk\\TSRemote.dll"));
if (!tsrDLL)
XFireLog("TSRemote.dll load failed (using standard installationpath2)!");
-
- //aufgeben
- return NULL;
+
+ //aufgeben
+ return NULL;
}
}
XFireLog("TSRemote.dll successfully loaded!");
//getserverinfo funktion holen
- tsrGetServerInfo = (LPtsrGetServerInfo)GetProcAddress(tsrDLL,"tsrGetServerInfo");
+ tsrGetServerInfo = (LPtsrGetServerInfo)GetProcAddress(tsrDLL, "tsrGetServerInfo");
return tsrDLL;
}
@@ -216,9 +216,9 @@ HMODULE Xfire_voicechat::loadTSR(char* path,BOOL nolocaltest) {
//teamspeak 3 detection, benötigt ts3plugin
BOOL Xfire_voicechat::checkforTS3(SendGameStatus2Packet* packet) {
- ts3IPPORT* ipport=NULL;
+ ts3IPPORT* ipport = NULL;
//kein gültiger verweis?
- if (packet==NULL)
+ if (packet == NULL)
return FALSE;
//existiert ein filemap?
HANDLE hMapObject = OpenFileMappingA(FILE_MAP_READ, FALSE, "$ts3info4xfire$");
@@ -226,16 +226,16 @@ BOOL Xfire_voicechat::checkforTS3(SendGameStatus2Packet* packet) {
if (hMapObject == NULL)
return FALSE;
//versuch ipport zubesorgen
- ipport = (ts3IPPORT *) MapViewOfFile(hMapObject, FILE_MAP_READ, 0, 0, sizeof(ts3IPPORT));
+ ipport = (ts3IPPORT *)MapViewOfFile(hMapObject, FILE_MAP_READ, 0, 0, sizeof(ts3IPPORT));
//fehler beim zugriff auf filemap?
- if (ipport==NULL)
+ if (ipport == NULL)
{
CloseHandle(hMapObject);
return FALSE;
}
//wenn kein port, dann stimmt was mit der ip nicht, paket resetten
- if (ipport->port==0) {
+ if (ipport->port == 0) {
//packet resetten
resetSendGameStatus2Packet(packet);
//in db schreiben
@@ -244,30 +244,30 @@ BOOL Xfire_voicechat::checkforTS3(SendGameStatus2Packet* packet) {
}
//voiceid zuweisen
- this->currentvoice=XFIREVOICECHAT_TS3;
- packet->gameid=XFIREVOICECHAT_TS3;
+ this->currentvoice = XFIREVOICECHAT_TS3;
+ packet->gameid = XFIREVOICECHAT_TS3;
//ip zuweisen
- packet->ip[3]=ipport->ip[3];
- packet->ip[2]=ipport->ip[2];
- packet->ip[1]=ipport->ip[1];
- packet->ip[0]=ipport->ip[0];
+ packet->ip[3] = ipport->ip[3];
+ packet->ip[2] = ipport->ip[2];
+ packet->ip[1] = ipport->ip[1];
+ packet->ip[0] = ipport->ip[0];
//port zuweisen
- packet->port=ipport->port;
+ packet->port = ipport->port;
//unmap, handle schließem
UnmapViewOfFile(ipport);
CloseHandle(hMapObject);
//in db schreiben
writeToDatabase(packet);
//ts3 gefunden
- return TRUE;
+ return TRUE;
}
//teamspeak 2 detection mit hilfe der tsr
BOOL Xfire_voicechat::checkforTS2(SendGameStatus2Packet* packet) {
- TtsrServerInfo serverinfo={0};
+ TtsrServerInfo serverinfo = { 0 };
//get funktion ist nicht initialisiert
- if (this->tsrGetServerInfo==NULL || packet==NULL)
+ if (this->tsrGetServerInfo == NULL || packet == NULL)
{
return FALSE;
}
@@ -276,29 +276,29 @@ BOOL Xfire_voicechat::checkforTS2(SendGameStatus2Packet* packet) {
this->tsrGetServerInfo(&serverinfo);
//auswerten wenn serverip gesetzt
- if (serverinfo.ServerIp[0]!=0)
+ if (serverinfo.ServerIp[0] != 0)
{
- char * pos=strrchr(serverinfo.ServerIp,':');
- if (pos==0)
+ char * pos = strrchr(serverinfo.ServerIp, ':');
+ if (pos == 0)
{
return FALSE;
}
- *pos=0;
- unsigned int ip=inet_addr(serverinfo.ServerIp);
+ *pos = 0;
+ unsigned int ip = inet_addr(serverinfo.ServerIp);
pos++;
- int port=atoi(pos);
+ int port = atoi(pos);
//port zuweisen
- packet->port=port;
+ packet->port = port;
//ip zuweisen
- packet->ip[3]=LOBYTE(LOWORD(ip));
- packet->ip[2]=HIBYTE(LOWORD(ip));
- packet->ip[1]=LOBYTE(HIWORD(ip));
- packet->ip[0]=HIBYTE(HIWORD(ip));
+ packet->ip[3] = LOBYTE(LOWORD(ip));
+ packet->ip[2] = HIBYTE(LOWORD(ip));
+ packet->ip[1] = LOBYTE(HIWORD(ip));
+ packet->ip[0] = HIBYTE(HIWORD(ip));
//gameid/voice zuweisen
- packet->gameid=XFIREVOICECHAT_TS2;
- this->currentvoice=XFIREVOICECHAT_TS2;
+ packet->gameid = XFIREVOICECHAT_TS2;
+ this->currentvoice = XFIREVOICECHAT_TS2;
//ab in die db
writeToDatabase(packet);
@@ -311,47 +311,47 @@ BOOL Xfire_voicechat::checkforTS2(SendGameStatus2Packet* packet) {
//detection für mumble
BOOL Xfire_voicechat::checkforMumble(SendGameStatus2Packet* packet) {
//kein gültiger verweis?
- if (packet==NULL)
+ if (packet == NULL)
return FALSE;
//gültige pid
- if (this->pid!=0 && !this->isValidPid(this->pid))
+ if (this->pid != 0 && !this->isValidPid(this->pid))
{
- this->pid=0;
+ this->pid = 0;
return FALSE;
}
else {
- if (!this->getPidByProcessName(_T("mumble.exe"),&this->pid)) {
+ if (!this->getPidByProcessName(_T("mumble.exe"), &this->pid)) {
return FALSE;
}
}
- DWORD size=0;
- MIB_TCPTABLE_OWNER_PID* ptab=NULL;
+ DWORD size = 0;
+ MIB_TCPTABLE_OWNER_PID* ptab = NULL;
//tcptabelle holen
GetExtendedTcpTable(NULL, &size, FALSE, AF_INET, TCP_TABLE_OWNER_PID_CONNECTIONS, 0);
//überhaupt was drin?
if (size) {
- ptab=(MIB_TCPTABLE_OWNER_PID*)malloc(size);
+ ptab = (MIB_TCPTABLE_OWNER_PID*)malloc(size);
//liste auslesen
if (GetExtendedTcpTable(ptab, &size, FALSE, AF_INET, TCP_TABLE_OWNER_PID_CONNECTIONS, 0) == NO_ERROR)
{
- for(unsigned int i=0;i<ptab->dwNumEntries;i++)
+ for (unsigned int i = 0; i < ptab->dwNumEntries; i++)
{
- if (ptab->table[i].dwOwningPid==this->pid && ptab->table[i].dwLocalAddr!=ptab->table[i].dwRemoteAddr) //verbindung gefunden, hoffentlich
+ if (ptab->table[i].dwOwningPid == this->pid && ptab->table[i].dwLocalAddr != ptab->table[i].dwRemoteAddr) //verbindung gefunden, hoffentlich
{
- unsigned char*rip=(unsigned char*)&ptab->table[i].dwRemoteAddr;
- XFireLog("IP %x,%x",ptab->table[i].dwRemoteAddr,ptab->table[i].dwRemotePort);
+ unsigned char*rip = (unsigned char*)&ptab->table[i].dwRemoteAddr;
+ XFireLog("IP %x,%x", ptab->table[i].dwRemoteAddr, ptab->table[i].dwRemotePort);
//ipzuweisen
- packet->ip[3]=rip[0];
- packet->ip[2]=rip[1];
- packet->ip[1]=rip[2];
- packet->ip[0]=rip[3];
+ packet->ip[3] = rip[0];
+ packet->ip[2] = rip[1];
+ packet->ip[1] = rip[2];
+ packet->ip[0] = rip[3];
//portzuweisen
- packet->port=r(ptab->table[i].dwRemotePort);
+ packet->port = r(ptab->table[i].dwRemotePort);
//mumble
- packet->gameid=XFIREVOICECHAT_MUMBLE;
- this->currentvoice=XFIREVOICECHAT_MUMBLE;
+ packet->gameid = XFIREVOICECHAT_MUMBLE;
+ this->currentvoice = XFIREVOICECHAT_MUMBLE;
//table wieder freigeben
delete ptab;
//mumble läuft + ip gefunden also TRUE