X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fmessagehandler.c;h=cb7f48621dd791d0eeb93f9b523e219954bed8c2;hb=bc7bbbdfcc9933129d7838224cdef3983ce53c26;hp=504c66b0e40b0e258ce8ff4b079f533c403ac2eb;hpb=b4fa369428493692d1f72085641364eeeef79218;p=umurmur.git diff --git a/src/messagehandler.c b/src/messagehandler.c index 504c66b..cb7f486 100644 --- a/src/messagehandler.c +++ b/src/messagehandler.c @@ -45,10 +45,15 @@ #define MAX_TEXT 512 #define MAX_USERNAME 128 +#define NO_CELT_MESSAGE "WARNING: Your client doesn't support the CELT codec, you won't be able to talk to or hear most clients. Please make sure your client was built with CELT support." + + extern channel_t *defaultChan; extern int iCodecAlpha, iCodecBeta; extern bool_t bPreferAlpha, bOpus; +static bool_t fake_celt_support; + static void sendServerReject(client_t *client, const char *reason, MumbleProto__Reject__RejectType type) { message_t *msg = Msg_create(Reject); @@ -224,8 +229,9 @@ void Mh_handle_message(client_t *client, message_t *msg) Log_debug("Client %d CELT codec ver 0x%x", client->sessionId, codec_itr->codec); } else { - Client_codec_add(client, (int32_t)0x8000000a); + Client_codec_add(client, (int32_t)0x8000000b); client->codec_count = 1; + fake_celt_support = true; } if (msg->payload.authenticate->opus) client->bOpus = true; @@ -236,8 +242,14 @@ void Mh_handle_message(client_t *client, message_t *msg) sendmsg->payload.codecVersion->alpha = iCodecAlpha; sendmsg->payload.codecVersion->beta = iCodecBeta; sendmsg->payload.codecVersion->prefer_alpha = bPreferAlpha; + sendmsg->payload.codecVersion->has_opus = true; + sendmsg->payload.codecVersion->opus = bOpus; Client_send_message(client, sendmsg); - + + if (!bOpus && client->bOpus && fake_celt_support) { + Client_textmessage(client, NO_CELT_MESSAGE); + } + /* Iterate channels and send channel info */ ch_itr = NULL; while (Chan_iterate(&ch_itr) != NULL) {