mirror of
https://github.com/mii443/libdatachannel.git
synced 2025-08-22 15:15:28 +00:00
Trigger open callback after data channel or track callback
This commit is contained in:
@ -973,17 +973,19 @@ string PeerConnection::localBundleMid() const {
|
|||||||
|
|
||||||
void PeerConnection::triggerDataChannel(weak_ptr<DataChannel> weakDataChannel) {
|
void PeerConnection::triggerDataChannel(weak_ptr<DataChannel> weakDataChannel) {
|
||||||
auto dataChannel = weakDataChannel.lock();
|
auto dataChannel = weakDataChannel.lock();
|
||||||
if (dataChannel)
|
if (dataChannel) {
|
||||||
|
dataChannel->openCallback = nullptr; // might be set internally
|
||||||
mPendingDataChannels.push(std::move(dataChannel));
|
mPendingDataChannels.push(std::move(dataChannel));
|
||||||
|
}
|
||||||
triggerPendingDataChannels();
|
triggerPendingDataChannels();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PeerConnection::triggerTrack(weak_ptr<Track> weakTrack) {
|
void PeerConnection::triggerTrack(weak_ptr<Track> weakTrack) {
|
||||||
auto track = weakTrack.lock();
|
auto track = weakTrack.lock();
|
||||||
if (track)
|
if (track) {
|
||||||
|
track->openCallback = nullptr; // might be set internally
|
||||||
mPendingTracks.push(std::move(track));
|
mPendingTracks.push(std::move(track));
|
||||||
|
}
|
||||||
triggerPendingTracks();
|
triggerPendingTracks();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -995,6 +997,7 @@ void PeerConnection::triggerPendingDataChannels() {
|
|||||||
|
|
||||||
auto impl = std::move(*next);
|
auto impl = std::move(*next);
|
||||||
dataChannelCallback(std::make_shared<rtc::DataChannel>(impl));
|
dataChannelCallback(std::make_shared<rtc::DataChannel>(impl));
|
||||||
|
impl->triggerOpen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1006,6 +1009,7 @@ void PeerConnection::triggerPendingTracks() {
|
|||||||
|
|
||||||
auto impl = std::move(*next);
|
auto impl = std::move(*next);
|
||||||
trackCallback(std::make_shared<rtc::Track>(std::move(impl)));
|
trackCallback(std::make_shared<rtc::Track>(std::move(impl)));
|
||||||
|
impl->triggerOpen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user