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

voice receive packet More...

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

Public Member Functions

 voice_receive_t (discord_client *client, 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 (discord_client *client, 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 (discord_client *client, const std::string &raw)
 Construct a new event_dispatch_t object. More...
 
 event_dispatch_t (discord_client *client, 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...
 
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...
 
discord_clientfrom = nullptr
 Shard the event came from. Note that for some events, notably voice events, this may be nullptr. 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 ( discord_client client,
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
clientThe shard the event originated on. WILL ALWAYS be NULL.
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 ( discord_client client,
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
clientThe shard the event originated on. WILL ALWAYS be NULL.
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
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

Construct a new event_dispatch_t object.

Parameters
clientThe shard the event originated on. May be a nullptr, e.g. for voice events
rawRaw event data as JSON or ETF

◆ event_dispatch_t() [4/5]

dpp::event_dispatch_t::event_dispatch_t

Construct a new event_dispatch_t object.

Parameters
clientThe shard the event originated on. May be a nullptr, e.g. for voice events
rawRaw event data as JSON or ETF

◆ event_dispatch_t() [5/5]

dpp::event_dispatch_t::event_dispatch_t
default

Construct a new event_dispatch_t object.

Parameters
rhsevent_dispatch_t object to move from

◆ 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=
default

Copy another event_dispatch_t object.

Parameters
rhsThe event to copy from

◆ operator=() [2/2]

event_dispatch_t& dpp::event_dispatch_t::operator=
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().

◆ from

discord_client* dpp::event_dispatch_t::from = nullptr
inherited

Shard the event came from. Note that for some events, notably voice events, this may be nullptr.

◆ 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.

◆ 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 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