# Manage in-meeting video

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

Use `meeting::GetVideoToolkit(...)` after initializing the SDK and once you are in a meeting.

```cpp
auto* video = meeting::GetVideoToolkit(g_meetingInstance);
```

## Spotlight another participant

To add or remove a spotlight from a given user, first check if the meeting or webinar supports
this functionality. Then, use `ZoomToolSuiteUser`'s `iUserID` from methods
`likemeeting::GetParticipantsToolkit(g_meetingInstance)→GetMyself()`or `GetUserByUserID`. Finally,
spotlight or unspotlight that user, or clear all spotlights in a meeting.

```cpp
auto* participants = meeting::GetParticipantsToolkit(g_meetingInstance);
unsigned int userId = participants->GetMySelf().iUserID;
video->CanSpotlight(userId, [](const ZMToolSuiteProxyCanSpotlightResult& result) {
    // result.error_code, result.result
});
video->SpotlightVideo(userId, [](const BaseResult& result) {
    // handle result.error_code
});
video->CanUnSpotlight(userId, [](const ZMToolSuiteProxyCanUnSpotlightResult& result) {
    // result.error_code, result.result
});
video->UnSpotlightVideo(userId, [](const BaseResult& result) {
    // handle result.error_code
});
video->UnSpotlightAllVideos([](const BaseResult& result) {
    // handle result.error_code
});
```

## Manage cameras

To turn on the current user's video, use `UnmuteMyVideo`. To turn off the current user's video,
use `MuteMyVideo`. To toggle the current user's video muted state, use `ToggleMyVideoStatus`.

```cpp
video->MuteMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->UnMuteMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->ToggleMyVideoStatus([](const BaseResult& result) {
    // handle result.error_code
});
```

## Pin videos

To pin the current user's video, use `PinMyVideo`. To unpin on the current user's video, use `UnpinMyVideo`.
To toggle whether the current user is pinned or not, use `ToggleMyVideoPinStatus`.

```cpp
video->PinMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->UnPinMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->ToggleMyVideoPinStatus([](const BaseResult& result) {
    // handle result.error_code
});
```

## Manage spotlighting videos

To let a user spotlight their own video, use `SpotlightMyVideo`. To let a user remove any spotlight
from their own video, use `UnSpotlightMyVideo`. To toggle the spotlight on the current user,
use `ToggleMyVideoSpotlightStatus`.

```cpp
video->SpotlightMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->UnSpotlightMyVideo([](const BaseResult& result) {
    // handle result.error_code
});
video->ToggleMyVideoSpotlightStatus([](const BaseResult& result) {
    // handle result.error_code
});
```

## Show the current user's avatar

To show the current user's avatar, use `ShowAvatar`. To check if the current user's avatar
is already showing, use `IsShowAvatar`.

```cpp
video->ShowAvatar(true, [](const BaseResult& result) {
    // handle result.error_code
});
video->IsShowAvatar([](const BoolValueResult& result) {
    // result.bValue when result.error_code indicates success
});
```
