UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
s_mumble.cpp
Go to the documentation of this file.
1 
7 #include "../client.h"
8 #include "s_mumble.h"
9 #include "s_local.h"
10 
11 #ifdef ANDROID
12 
13 void S_MumbleInit (void)
14 {
15 }
16 void S_MumbleLink (void)
17 {
18 }
19 void S_MumbleUnlink (void)
20 {
21 }
22 void S_MumbleUpdate (const vec3_t origin, const vec3_t forward, const vec3_t right, const vec3_t up)
23 {
24 }
25 
26 #else
27 #include <libmumblelink.h>
28 
32 
33 void S_MumbleInit (void)
34 {
35  snd_mumble = Cvar_Get("snd_mumble", "0", CVAR_ARCHIVE | CVAR_LATCH);
36  snd_mumble_alltalk = Cvar_Get("snd_mumble_alltalk", "0", CVAR_ARCHIVE | CVAR_LATCH);
37  snd_mumble_scale = Cvar_Get("snd_mumble_scale", "0.0254", CVAR_ARCHIVE);
38 }
39 
40 void S_MumbleLink (void)
41 {
42  if (!s_env.initialized)
43  return;
44 
45  if (!snd_mumble->integer)
46  return;
47 
48  if (!mumble_islinked()) {
49  int ret = mumble_link(GAME_TITLE_LONG);
50  Com_Printf("S_MumbleLink: Linking to Mumble application %s\n", ret == 0 ? "ok" : "failed");
51  }
52 }
53 
54 void S_MumbleUnlink (void)
55 {
56  if (!s_env.initialized)
57  return;
58 
59  if (!snd_mumble->integer)
60  return;
61 
62  if (mumble_islinked()) {
63  Com_Printf("S_MumbleUnlink: Unlinking from Mumble application\n");
64  mumble_unlink();
65  }
66 }
67 
68 void S_MumbleUpdate (const vec3_t origin, const vec3_t forward, const vec3_t right, const vec3_t up)
69 {
70  if (!s_env.initialized)
71  return;
72 
73  if (!snd_mumble->integer)
74  return;
75 
76  vec3_t mp, mf, mt;
77  VectorScale(origin, snd_mumble_scale->value, mp);
78  VectorSet(mf, forward[0], forward[2], forward[1]);
79  VectorSet(mt, up[0], up[2], up[1]);
80 
81  if (snd_mumble->integer == 2)
82  Com_Printf("S_MumbleUpdate:\n%f, %f, %f\n%f, %f, %f\n%f, %f, %f", mp[0], mp[1], mp[2], mf[0], mf[1], mf[2], mt[0], mt[1], mt[2]);
83 
84  mumble_update_coordinates(mp, mf, mt);
85 
86 #if 0
87  const unsigned int playerNum = CL_GetPlayerNum();
88  mumble_set_identity(CL_PlayerGetName(playerNum));
89 #endif
90 
91  char context[256];
92  if (snd_mumble_alltalk->integer)
93  Q_strncpyz(context, "*", sizeof(context));
94  else
95  Q_strncpyz(context, va("%i", cls.team), sizeof(context));
96  mumble_set_context(context, strlen(context) + 1);
97 }
98 
99 #endif
void S_MumbleUnlink(void)
Definition: s_mumble.cpp:54
#define VectorSet(v, x, y, z)
Definition: vector.h:59
void S_MumbleInit(void)
Definition: s_mumble.cpp:33
const char * va(const char *format,...)
does a varargs printf into a temp buffer, so I don't need to have varargs versions of all text functi...
Definition: shared.cpp:410
This is a cvar definition. Cvars can be user modified and used in our menus e.g.
Definition: cvar.h:71
voidpf uLong int origin
Definition: ioapi.h:45
bool initialized
Definition: s_local.h:70
void S_MumbleUpdate(const vec3_t origin, const vec3_t forward, const vec3_t right, const vec3_t up)
Definition: s_mumble.cpp:68
float value
Definition: cvar.h:80
static cvar_t * snd_mumble
Definition: s_mumble.cpp:29
void Com_Printf(const char *const fmt,...)
Definition: common.cpp:386
static cvar_t * snd_mumble_scale
Definition: s_mumble.cpp:31
int integer
Definition: cvar.h:81
#define VectorScale(in, scale, out)
Definition: vector.h:79
#define CVAR_ARCHIVE
Definition: cvar.h:40
client_static_t cls
Definition: cl_main.cpp:83
void Q_strncpyz(char *dest, const char *src, size_t destsize)
Safe strncpy that ensures a trailing zero.
Definition: shared.cpp:457
#define GAME_TITLE_LONG
Definition: common.h:38
cvar_t * Cvar_Get(const char *var_name, const char *var_value, int flags, const char *desc)
Init or return a cvar.
Definition: cvar.cpp:342
s_env_t s_env
Definition: s_main.cpp:40
const char * CL_PlayerGetName(unsigned int player)
Get the player name.
Definition: cl_parse.cpp:113
#define CVAR_LATCH
Definition: cvar.h:44
static cvar_t * snd_mumble_alltalk
Definition: s_mumble.cpp:30
int CL_GetPlayerNum(void)
Definition: cl_parse.cpp:103
vec_t vec3_t[3]
Definition: ufotypes.h:39
void S_MumbleLink(void)
Definition: s_mumble.cpp:40