D++ (DPP)
C++ Discord API Bot Library
dpp::voice_receive_t Struct Reference

voice receive packet More...

#include <dispatcher.h>

+ Inheritance diagram for dpp::voice_receive_t:
+ Collaboration diagram for dpp::voice_receive_t:

Public Member Functions

 voice_receive_t (dpp::cluster *creator, uint32_t shard_id, const std::string &raw, class discord_voice_client *vc, snowflake _user_id, const uint8_t *pcm, size_t length)
 Construct a new voice receive t object. More...
 
 voice_receive_t (dpp::cluster *creator, uint32_t shard_id, std::string &&raw, class discord_voice_client *vc, snowflake _user_id, const uint8_t *pcm, size_t length)
 Construct a new voice receive t object. More...
 
 event_dispatch_t ()=default
 Construct a new event_dispatch_t object. More...
 
 event_dispatch_t (const event_dispatch_t &rhs)=default
 Construct a new event_dispatch_t object. More...
 
 event_dispatch_t (event_dispatch_t &&rhs)=default
 Construct a new event_dispatch_t object. More...
 
 event_dispatch_t (dpp::cluster *creator, uint32_t shard_id, const std::string &raw)
 Construct a new event_dispatch_t object. More...
 
 event_dispatch_t (dpp::cluster *creator, uint32_t shard_id, std::string &&raw)
 Construct a new event_dispatch_t object. More...
 
event_dispatch_toperator= (const event_dispatch_t &rhs)=default
 Copy another event_dispatch_t object. More...
 
event_dispatch_toperator= (event_dispatch_t &&rhs)=default
 Move from another event_dispatch_t object. More...
 
discord_clientfrom () const
 Returns the shard object for the events shard id. More...
 
const event_dispatch_tcancel_event () const
 Cancels the event in progress. Any other attached lambdas for this event after this one are not called. More...
 
event_dispatch_tcancel_event ()
 Cancels the event in progress. Any other attached lambdas for this event after this one are not called. More...
 
bool is_cancelled () const
 Returns true if the event is cancelled. Note that event cancellation is a thread local state, and not stored in the object (because object which can be cancelled is const during the event, and cannot itself contain the changeable state). More...
 

Public Attributes

discord_voice_clientvoice_client = nullptr
 Voice client. More...
 
uint8_t * audio = nullptr
 Audio data, encoded as 48kHz stereo PCM or Opus,. More...
 
size_t audio_size = 0
 Size of audio buffer. More...
 
std::vector< uint8_t > audio_data = {}
 Audio data, encoded as 48kHz stereo PCM or Opus,. More...
 
snowflake user_id = {}
 User ID of speaker (zero if unknown) More...
 
std::string raw_event = {}
 Raw event data. If you are using json on your websocket, this will contain json, and if you are using ETF as your websocket protocol, it will contain raw ETF data. More...
 
uint32_t shard = 0
 Shard the event came from. More...
 
dpp::clusterowner = nullptr
 Cluster owning the event dispatch. More...
 
bool cancelled = false
 Whether the event was cancelled using cancel_event(). More...
 

Protected Member Functions

void reassign (discord_voice_client *vc, snowflake _user_id, const uint8_t *pcm, size_t length)
 Reassign values outside of the constructor for use within discord_voice_client. More...
 

Friends

class discord_voice_client
 

Detailed Description

voice receive packet

Constructor & Destructor Documentation

◆ voice_receive_t() [1/2]

dpp::voice_receive_t::voice_receive_t ( dpp::cluster creator,
uint32_t  shard_id,
const std::string &  raw,
class discord_voice_client vc,
snowflake  _user_id,
const uint8_t *  pcm,
size_t  length 
)

Construct a new voice receive t object.

Parameters
creatorThe creating cluster
shard_idShard the voice channel exists on
rawRaw event text as UDP packet.
vcowning voice client pointer
_user_iduser id who is speaking, 0 for a mix of all user audio
pcmuser audio to set
lengthlength of user audio in bytes

◆ voice_receive_t() [2/2]

dpp::voice_receive_t::voice_receive_t ( dpp::cluster creator,
uint32_t  shard_id,
std::string &&  raw,
class discord_voice_client vc,
snowflake  _user_id,
const uint8_t *  pcm,
size_t  length 
)

Construct a new voice receive t object.

Parameters
creatorThe creating cluster
shard_idShard the voice channel exists on
rawRaw event text as UDP packet.
vcowning voice client pointer
_user_iduser id who is speaking, 0 for a mix of all user audio
pcmuser audio to set
lengthlength of user audio in bytes

Member Function Documentation

◆ cancel_event() [1/2]

event_dispatch_t & dpp::event_dispatch_t::cancel_event ( )
inherited

Cancels the event in progress. Any other attached lambdas for this event after this one are not called.

Warning
This will modify the event object in a non-thread-safe manner.
Returns
const event_dispatch_t& reference to self for chaining

◆ cancel_event() [2/2]

const event_dispatch_t & dpp::event_dispatch_t::cancel_event ( ) const
inherited

Cancels the event in progress. Any other attached lambdas for this event after this one are not called.

Warning
This will modify the event object in a non-thread-safe manner.
Returns
const event_dispatch_t& reference to self for chaining

◆ event_dispatch_t() [1/5]

dpp::event_dispatch_t::event_dispatch_t ( )
default

Construct a new event_dispatch_t object.

◆ event_dispatch_t() [2/5]

dpp::event_dispatch_t::event_dispatch_t ( const event_dispatch_t rhs)
default

Construct a new event_dispatch_t object.

Parameters
rhsevent_dispatch_t object to copy from

◆ event_dispatch_t() [3/5]

dpp::event_dispatch_t::event_dispatch_t ( dpp::cluster creator,
uint32_t  shard_id,
const std::string &  raw 
)

Construct a new event_dispatch_t object.

Parameters
shard_idThe shard the event originated on.
rawRaw event data as JSON or ETF

◆ event_dispatch_t() [4/5]

dpp::event_dispatch_t::event_dispatch_t ( dpp::cluster creator,
uint32_t  shard_id,
std::string &&  raw 
)

Construct a new event_dispatch_t object.

Parameters
shard_idThe shard the event originated on.
rawRaw event data as JSON or ETF

◆ event_dispatch_t() [5/5]

dpp::event_dispatch_t::event_dispatch_t ( event_dispatch_t &&  rhs)
default

Construct a new event_dispatch_t object.

Parameters
rhsevent_dispatch_t object to move from

◆ from()

discord_client * dpp::event_dispatch_t::from ( ) const
inherited

Returns the shard object for the events shard id.

Returns
discord client object

◆ is_cancelled()

bool dpp::event_dispatch_t::is_cancelled ( ) const
inherited

Returns true if the event is cancelled. Note that event cancellation is a thread local state, and not stored in the object (because object which can be cancelled is const during the event, and cannot itself contain the changeable state).

Returns
true if the event is cancelled

◆ operator=() [1/2]

event_dispatch_t & dpp::event_dispatch_t::operator= ( const event_dispatch_t rhs)
default

Copy another event_dispatch_t object.

Parameters
rhsThe event to copy from

◆ operator=() [2/2]

event_dispatch_t & dpp::event_dispatch_t::operator= ( event_dispatch_t &&  rhs)
default

Move from another event_dispatch_t object.

Parameters
rhsThe event to move from

◆ reassign()

void dpp::voice_receive_t::reassign ( discord_voice_client vc,
snowflake  _user_id,
const uint8_t *  pcm,
size_t  length 
)
protected

Reassign values outside of the constructor for use within discord_voice_client.

Parameters
vcowning voice client pointer
_user_iduser id who is speaking, 0 for a mix of all user audio
pcmuser audio to set
lengthlength of user audio in bytes

Friends And Related Function Documentation

◆ discord_voice_client

friend class discord_voice_client
friend

Member Data Documentation

◆ audio

uint8_t* dpp::voice_receive_t::audio = nullptr

Audio data, encoded as 48kHz stereo PCM or Opus,.

Deprecated:
Please switch to using audio_data.

◆ audio_data

std::vector<uint8_t> dpp::voice_receive_t::audio_data = {}

Audio data, encoded as 48kHz stereo PCM or Opus,.

◆ audio_size

size_t dpp::voice_receive_t::audio_size = 0

Size of audio buffer.

Deprecated:
Please switch to using audio_data.

◆ cancelled

bool dpp::event_dispatch_t::cancelled = false
mutableinherited

Whether the event was cancelled using cancel_event().

◆ owner

dpp::cluster* dpp::event_dispatch_t::owner = nullptr
inherited

Cluster owning the event dispatch.

◆ raw_event

std::string dpp::event_dispatch_t::raw_event = {}
inherited

Raw event data. If you are using json on your websocket, this will contain json, and if you are using ETF as your websocket protocol, it will contain raw ETF data.

◆ shard

uint32_t dpp::event_dispatch_t::shard = 0
inherited

Shard the event came from.

◆ user_id

snowflake dpp::voice_receive_t::user_id = {}

User ID of speaker (zero if unknown)

◆ voice_client

discord_voice_client* dpp::voice_receive_t::voice_client = nullptr

Voice client.

D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0