VoIP: functionality to adjust incoming audio gain, per-user.

This commit is contained in:
Ryan C. Gordon 2008-06-04 21:50:00 +00:00
parent cc18323a99
commit 020704d2ff
4 changed files with 41 additions and 3 deletions

View file

@ -759,6 +759,33 @@ void CL_WritePacket( void ) {
}
#if USE_VOIP
// Move cl_voipSendTarget from a string to a
if (cl_voipSendTarget->modified) {
const char *target = cl_voipSendTarget->string;
if ((*target == '\0') || (Q_stricmp(target, "all") == 0)) {
clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0x7FFFFFFF;
} else if (Q_stricmp(target, "none") == 0) {
clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
} else {
clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
const char *ptr = target;
do {
if ((*ptr == ',') || (*ptr == '\0')) {
const int val = atoi(target);
target = ptr + 1;
if ((val >= 0) && (val < 31)) {
clc.voipTarget1 |= (1 << (val-0));
} else if ((val >= 31) && (val < 62)) {
clc.voipTarget2 |= (1 << (val-31));
} else if ((val >= 62) && (val < 93)) {
clc.voipTarget3 |= (1 << (val-62));
}
}
} while (*(ptr++));
}
cl_voipSendTarget->modified = qfalse;
}
if (clc.voipOutgoingDataSize > 0) { // only send if data.
MSG_WriteByte (&buf, clc_EOF); // placate legacy servers.
MSG_WriteByte (&buf, clc_extension);
@ -766,9 +793,9 @@ void CL_WritePacket( void ) {
MSG_WriteByte (&buf, clc.voipOutgoingGeneration);
MSG_WriteLong (&buf, clc.voipOutgoingSequence);
MSG_WriteByte (&buf, clc.voipOutgoingDataFrames);
MSG_WriteLong (&buf, 0x7FFFFFFF); // !!! FIXME: send to specific people.
MSG_WriteLong (&buf, 0x7FFFFFFF); // !!! FIXME: send to specific people.
MSG_WriteLong (&buf, 0x7FFFFFFF); // !!! FIXME: send to specific people.
MSG_WriteLong (&buf, clc.voipTarget1);
MSG_WriteLong (&buf, clc.voipTarget2);
MSG_WriteLong (&buf, clc.voipTarget3);
MSG_WriteShort (&buf, clc.voipOutgoingDataSize);
MSG_WriteData (&buf, clc.voipOutgoingData, clc.voipOutgoingDataSize);
clc.voipOutgoingSequence += clc.voipOutgoingDataFrames;