void Core::sendGroupCallAudio(int groupId, ToxAv* toxav) { if (!groupCalls[groupId].active) return; if (groupCalls[groupId].muteMic || !Audio::isInputReady()) { groupCalls[groupId].sendAudioTimer->start(); return; } const int framesize = (groupCalls[groupId].codecSettings.audio_frame_duration * groupCalls[groupId].codecSettings.audio_sample_rate) / 1000 * av_DefaultSettings.audio_channels; const int bufsize = framesize * 2 * av_DefaultSettings.audio_channels; uint8_t buf[bufsize]; if (Audio::tryCaptureSamples(buf, framesize)) { if (toxav_group_send_audio(toxav_get_tox(toxav), groupId, (int16_t*)buf, framesize, av_DefaultSettings.audio_channels, av_DefaultSettings.audio_sample_rate) < 0) { qDebug() << "Core: toxav_group_send_audio error"; groupCalls[groupId].sendAudioTimer->start(); return; } } groupCalls[groupId].sendAudioTimer->start(); }
bool CoreAV::sendGroupCallAudio(int groupId, const int16_t *pcm, size_t samples, uint8_t chans, uint32_t rate) { if (!groupCalls.contains(groupId)) return false; ToxGroupCall& call = groupCalls[groupId]; if (call.inactive || call.muteMic) return true; if (toxav_group_send_audio(toxav_get_tox(toxav), groupId, pcm, samples, chans, rate) != 0) qDebug() << "toxav_group_send_audio error"; return true; }
bool CoreAV::sendGroupCallAudio(int groupId, const int16_t* pcm, size_t samples, uint8_t chans, uint32_t rate) const { std::map<int, ToxGroupCall>::const_iterator it = groupCalls.find(groupId); if (it == groupCalls.end()) { return false; } if (!it->second.isActive() || it->second.getMuteMic()) { return true; } if (toxav_group_send_audio(toxav_get_tox(toxav), groupId, pcm, samples, chans, rate) != 0) qDebug() << "toxav_group_send_audio error"; return true; }