# vx_evt_participant_updated

> Reference the Vivox Core SDK API.

**Module:** **[Group Voice and Text Communications](./group__session.md)**

Received when the properties of the participant change For example: mod muted, speaking, volume, energy, or typing notifications.

`#include <VxcEvents.h>`

## Public Attributes

|                                                                                                        | Name                                                                                                                                                                                                                     |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [vx\_evt\_base\_t](./_vxc_8h.md#typedef-vx_evt_base_t)                                                 | **[base](./structvx__evt__participant__updated.md#variable-base)** The common properties for all events.                                                                                                                 |
| [VX\_HANDLE](./_vxc_8h.md#typedef-vx_handle)                                                           | **[sessiongroup\_handle](./structvx__evt__participant__updated.md#variable-sessiongroup_handle)** The handle returned from a successful session group create request.                                                    |
| [VX\_HANDLE](./_vxc_8h.md#typedef-vx_handle)                                                           | **[session\_handle](./structvx__evt__participant__updated.md#variable-session_handle)** The handle returned from a successful session create request.                                                                    |
| char \*                                                                                                | **[participant\_uri](./structvx__evt__participant__updated.md#variable-participant_uri)** The URI of the participant whose properties are being updated.                                                                 |
| int                                                                                                    | **[is\_moderator\_muted](./structvx__evt__participant__updated.md#variable-is_moderator_muted)** Used to determine if the user has been muted by the moderator.                                                          |
| int                                                                                                    | **[is\_speaking](./structvx__evt__participant__updated.md#variable-is_speaking)** Indicates if the participant is speaking.                                                                                              |
| int                                                                                                    | **[volume](./structvx__evt__participant__updated.md#variable-volume)** This is the volume level that has been set by the user.                                                                                           |
| double                                                                                                 | **[energy](./structvx__evt__participant__updated.md#variable-energy)** The energy, or the intensity, of the participant audio.                                                                                           |
| int                                                                                                    | **[active\_media](./structvx__evt__participant__updated.md#variable-active_media)** This indicates which media the user is participating in.                                                                             |
| int                                                                                                    | **[is\_muted\_for\_me](./structvx__evt__participant__updated.md#variable-is_muted_for_me)** Indicates whether the participant's audio is locally muted for the user.                                                     |
| int                                                                                                    | **[is\_text\_muted\_for\_me](./structvx__evt__participant__updated.md#variable-is_text_muted_for_me)** Indicates whether the participant's text is locally muted for the user.                                           |
| int                                                                                                    | **[is\_moderator\_text\_muted](./structvx__evt__participant__updated.md#variable-is_moderator_text_muted)** Used to determine if the user's text has been muted by the moderator.                                        |
| [vx\_participant\_type](./_vxc_8h.md#enum-vx_participant_type)                                         | **[type](./structvx__evt__participant__updated.md#variable-type)** The type of the participant.                                                                                                                          |
| [vx\_participant\_diagnostic\_state\_t](./_vxc_events_8h.md#enum-vx_participant_diagnostic_state_t) \* | **[diagnostic\_states](./structvx__evt__participant__updated.md#variable-diagnostic_states)** A list of diagnostic states, which tells the application the following information:                                        |
| int                                                                                                    | **[diagnostic\_state\_count](./structvx__evt__participant__updated.md#variable-diagnostic_state_count)** The total number of diagnostic states.                                                                          |
| char \*                                                                                                | **[alias\_username](./structvx__evt__participant__updated.md#variable-alias_username)** The identity of the user if P2P, or NULL if a channel call.                                                                      |
| char \*                                                                                                | **[encoded\_uri\_with\_tag](./structvx__evt__participant__updated.md#variable-encoded_uri_with_tag)** The encoded URI for the user with the tag.                                                                         |
| int                                                                                                    | **[is\_current\_user](./structvx__evt__participant__updated.md#variable-is_current_user)** Indicates whether the message is from the current logged in user.                                                             |
| int                                                                                                    | **[has\_unavailable\_capture\_device](./structvx__evt__participant__updated.md#variable-has_unavailable_capture_device)** Indicates if the participant's capture device is unavailable due to reasons other than muting. |
| int                                                                                                    | **[has\_unavailable\_render\_device](./structvx__evt__participant__updated.md#variable-has_unavailable_render_device)** Indicates if the participant's render device is unavailable.                                     |

## Public Attributes Documentation

### variable base

```cpp
vx_evt_base_t base;
```

The common properties for all events.

### variable sessiongroup\_handle

```cpp
VX_HANDLE sessiongroup_handle;
```

The handle returned from a successful session group create request.

### variable session\_handle

```cpp
VX_HANDLE session_handle;
```

The handle returned from a successful session create request.

### variable participant\_uri

```cpp
char * participant_uri;
```

The URI of the participant whose properties are being updated.

### variable is\_moderator\_muted

```cpp
int is_moderator_muted;
```

Used to determine if the user has been muted by the moderator.

* 0 indicates the user was not muted.
* 1 indicates the user was muted.

### variable is\_speaking

```cpp
int is_speaking;
```

Indicates if the participant is speaking.

### variable volume

```cpp
int volume;
```

This is the volume level that has been set by the user.

This is a non-negative integer value between 0 and 100 (inclusive), and should not change often.

### variable energy

```cpp
double energy;
```

The energy, or the intensity, of the participant audio.

This is used to determine how loud the user is speaking. This is a value between 0 and 1.

### variable active\_media

```cpp
int active_media;
```

This indicates which media the user is participating in.

See [VX\_MEDIA\_FLAGS\_AUDIO](./_vxc_8h.md#define-vx_media_flags_audio) and [VX\_MEDIA\_FLAGS\_TEXT](./_vxc_8h.md#define-vx_media_flags_text)

### variable is\_muted\_for\_me

```cpp
int is_muted_for_me;
```

Indicates whether the participant's audio is locally muted for the user.

### variable is\_text\_muted\_for\_me

```cpp
int is_text_muted_for_me;
```

Indicates whether the participant's text is locally muted for the user.

### variable is\_moderator\_text\_muted

```cpp
int is_moderator_text_muted;
```

Used to determine if the user's text has been muted by the moderator.

* 0 indicates the text was not muted.
* 1 indicates the text was muted.

### variable type

```cpp
vx_participant_type type;
```

The type of the participant.

**See**: [vx\_participant\_type](./_vxc_8h.md#enum-vx_participant_type)

### variable diagnostic\_states

```cpp
vx_participant_diagnostic_state_t * diagnostic_states;
```

A list of diagnostic states, which tells the application the following information:

* The participant is attempting to speak, but the system is not in a state to propogate that speech (for example, the mic is muted).
* The participant has unavailable capture or render devices due to certain causes.

### variable diagnostic\_state\_count

```cpp
int diagnostic_state_count;
```

The total number of diagnostic states.

### variable alias\_username

```cpp
char * alias_username;
```

The identity of the user if P2P, or NULL if a channel call.

**Note**: This is different than the participant\_uri, which is the actual internal Vivox identity of the original sender.

### variable encoded\_uri\_with\_tag

```cpp
char * encoded_uri_with_tag;
```

The encoded URI for the user with the tag.

This uniquely identifies users that might appear multiple times in a channel.

### variable is\_current\_user

```cpp
int is_current_user;
```

Indicates whether the message is from the current logged in user.

### variable has\_unavailable\_capture\_device

```cpp
int has_unavailable_capture_device;
```

Indicates if the participant's capture device is unavailable due to reasons other than muting.

Check the event's diagnostic\_states for the cause (available for local participants only).

* If the participant's render device is still operating, then the participant is "listen only".
* If both the capture and render devices are unavailable, then the participant is "unavailable"/"on hold".

### variable has\_unavailable\_render\_device

```cpp
int has_unavailable_render_device;
```

Indicates if the participant's render device is unavailable.

Check the event's diagnostic\_states for the cause (available for local participants only).

* If the participant's capture device is still operating, then the participant is "speak only"/"deaf".
* If both the capture and render devices are unavailable, then the participant is "unavailable"/"on hold".
