From e618732f4397387844e40d8cee67c7818c6da045 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Thu, 6 Mar 2025 20:14:13 +0100 Subject: [PATCH] also port all the av to contact4 --- src/tox_av_voip_model.cpp | 35 ++++++++++++++++++++++------------- src/tox_av_voip_model.hpp | 8 ++++---- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/tox_av_voip_model.cpp b/src/tox_av_voip_model.cpp index 555314b..7ad2f40 100644 --- a/src/tox_av_voip_model.cpp +++ b/src/tox_av_voip_model.cpp @@ -1,6 +1,7 @@ #include "./tox_av_voip_model.hpp" #include +#include #include #include @@ -410,7 +411,7 @@ void ToxAVVoIPModel::handleEvent(const Events::FriendCall& e) { // (or rejected...) const auto session_contact = _tcm.getContactFriend(e.friend_number); - if (!_cr.valid(session_contact)) { + if (!static_cast(session_contact)) { return; } @@ -428,7 +429,7 @@ void ToxAVVoIPModel::handleEvent(const Events::FriendCall& e) { void ToxAVVoIPModel::handleEvent(const Events::FriendCallState& e) { const auto session_contact = _tcm.getContactFriend(e.friend_number); - if (!_cr.valid(session_contact)) { + if (!static_cast(session_contact)) { return; } @@ -486,8 +487,8 @@ void ToxAVVoIPModel::handleEvent(const Events::FriendCallState& e) { } } -ToxAVVoIPModel::ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, Contact3Registry& cr, ToxContactModel2& tcm) : - _os(os), _av(av), _av_sr(_av.newSubRef(this)), _cr(cr), _tcm(tcm) +ToxAVVoIPModel::ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, ContactStore4I& cs, ToxContactModel2& tcm) : + _os(os), _av(av), _av_sr(_av.newSubRef(this)), _cs(cs), _tcm(tcm) { _av_sr .subscribe(ToxAV_Event::friend_call) @@ -502,8 +503,10 @@ ToxAVVoIPModel::ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, Contact3Registry& c // attach to all tox friend contacts - for (const auto& [cv, _] : _cr.view().each()) { - _cr.emplace(cv, this); + auto& cr = _cs.registry(); + + for (const auto& [cv, _] : cr.view().each()) { + cr.emplace(cv, this); } // TODO: events } @@ -535,12 +538,14 @@ void ToxAVVoIPModel::tick(void) { } } -ObjectHandle ToxAVVoIPModel::enter(const Contact3 c, const Components::VoIP::DefaultConfig& defaults) { - if (!_cr.all_of(c)) { +ObjectHandle ToxAVVoIPModel::enter(const Contact4 c, const Components::VoIP::DefaultConfig& defaults) { + const auto& cr = _cs.registry(); + + if (!cr.all_of(c)) { return {}; } - const auto friend_number = _cr.get(c).friend_number; + const auto friend_number = cr.get(c).friend_number; const auto err = _av.toxavCall(friend_number, 0, 0); if (err != TOXAV_ERR_CALL_OK) { @@ -579,12 +584,14 @@ bool ToxAVVoIPModel::accept(ObjectHandle session, const Components::VoIP::Defaul return false; } + const auto& cr = _cs.registry(); + const auto session_contact = session.get().c; - if (!_cr.all_of(session_contact)) { + if (!cr.all_of(session_contact)) { return false; } - const auto friend_number = _cr.get(session_contact).friend_number; + const auto friend_number = cr.get(session_contact).friend_number; auto err = _av.toxavAnswer(friend_number, 0, 0); if (err != TOXAV_ERR_ANSWER_OK) { std::cerr << "TOXAVVOIP error: ansering call failed: " << err << "\n"; @@ -649,12 +656,14 @@ bool ToxAVVoIPModel::leave(ObjectHandle session) { return false; } + const auto& cr = _cs.registry(); + const auto session_contact = session.get().c; - if (!_cr.all_of(session_contact)) { + if (!cr.all_of(session_contact)) { return false; } - const auto friend_number = _cr.get(session_contact).friend_number; + const auto friend_number = cr.get(session_contact).friend_number; // check error? (we delete anyway) _av.toxavCallControl(friend_number, Toxav_Call_Control::TOXAV_CALL_CONTROL_CANCEL); diff --git a/src/tox_av_voip_model.hpp b/src/tox_av_voip_model.hpp index 632ae24..5a1ceae 100644 --- a/src/tox_av_voip_model.hpp +++ b/src/tox_av_voip_model.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include "./frame_streams/voip_model.hpp" #include "./tox_av.hpp" @@ -19,7 +19,7 @@ class ToxAVVoIPModel : protected ToxAVEventI, public VoIPModelI { ObjectStore2& _os; ToxAVI& _av; ToxAVI::SubscriptionReference _av_sr; - Contact3Registry& _cr; + ContactStore4I& _cs; ToxContactModel2& _tcm; uint64_t _pad0; @@ -63,14 +63,14 @@ class ToxAVVoIPModel : protected ToxAVEventI, public VoIPModelI { void handleEvent(const Events::FriendCallState&); public: - ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, Contact3Registry& cr, ToxContactModel2& tcm); + ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, ContactStore4I& cs, ToxContactModel2& tcm); ~ToxAVVoIPModel(void); // handle events coming from toxav thread(s) void tick(void); public: // voip model - ObjectHandle enter(const Contact3 c, const Components::VoIP::DefaultConfig& defaults) override; + ObjectHandle enter(const Contact4 c, const Components::VoIP::DefaultConfig& defaults) override; bool accept(ObjectHandle session, const Components::VoIP::DefaultConfig& defaults) override; bool leave(ObjectHandle session) override;