forked from Green-Sky/tomato
use sr
This commit is contained in:
parent
a9d8c070bc
commit
92740c8dbe
9
.github/workflows/ci.yml
vendored
9
.github/workflows/ci.yml
vendored
@ -61,9 +61,9 @@ jobs:
|
|||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
|
|
||||||
- name: update vcpkg
|
#- name: update vcpkg
|
||||||
run: |
|
# run: |
|
||||||
git clone https://github.com/microsoft/vcpkg.git
|
# git clone https://github.com/microsoft/vcpkg.git
|
||||||
|
|
||||||
- name: Install Dependencies (host)
|
- name: Install Dependencies (host)
|
||||||
run: sudo apt update && sudo apt -y install cmake pkg-config nasm
|
run: sudo apt update && sudo apt -y install cmake pkg-config nasm
|
||||||
@ -71,7 +71,8 @@ jobs:
|
|||||||
- name: Install Dependencies (target)
|
- name: Install Dependencies (target)
|
||||||
env:
|
env:
|
||||||
ANDROID_NDK_HOME: ${{steps.setup_ndk.outputs.ndk-path}}
|
ANDROID_NDK_HOME: ${{steps.setup_ndk.outputs.ndk-path}}
|
||||||
run: vcpkg install --triplet ${{matrix.platform.vcpkg_toolkit}} --overlay-ports=vcpkg/ports libsodium opus libvpx libpng libjpeg-turbo
|
#run: vcpkg install --triplet ${{matrix.platform.vcpkg_toolkit}} --overlay-ports=vcpkg/ports libsodium opus libvpx libpng libjpeg-turbo
|
||||||
|
run: vcpkg install --triplet ${{matrix.platform.vcpkg_toolkit}} libsodium opus libvpx libpng libjpeg-turbo
|
||||||
|
|
||||||
# vcpkg scripts root /usr/local/share/vcpkg/scripts
|
# vcpkg scripts root /usr/local/share/vcpkg/scripts
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
|
2
external/solanaceae_object_store
vendored
2
external/solanaceae_object_store
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 2801fc21fbd6f69479f6638ab1725d00238698f8
|
Subproject commit ed640ba08cf8452e202ed567cad48ad396b8e1db
|
2
external/solanaceae_tox
vendored
2
external/solanaceae_tox
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a0c3336f375c8eb3a146fd183850418a216c8e7e
|
Subproject commit 30146fc5a56ed671c8862437f8658cfe4fbb1fac
|
2
external/solanaceae_toxcore
vendored
2
external/solanaceae_toxcore
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 7cd6a2b0de13820a75b9028ae90595cd48a2231c
|
Subproject commit 49fda84aff7a3466cd244013fbf67624c6b71450
|
2
external/solanaceae_util
vendored
2
external/solanaceae_util
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 9a4df12d68373cd19adddde2364843eeac51c28d
|
Subproject commit a38c3a33055e91c9d9ceed507c0e3c2f63dc7fa4
|
@ -2,21 +2,18 @@
|
|||||||
|
|
||||||
#include "./tox_client.hpp"
|
#include "./tox_client.hpp"
|
||||||
|
|
||||||
// TODO: add more events
|
AutoDirty::AutoDirty(ToxClient& tc) : _tc(tc), _tep_sr(_tc.newSubRef(this)) {
|
||||||
|
// TODO: add more events
|
||||||
void AutoDirty::subscribe(void) {
|
_tep_sr
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_SELF_CONNECTION_STATUS);
|
.subscribe(Tox_Event_Type::TOX_EVENT_SELF_CONNECTION_STATUS)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS);
|
.subscribe(Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_FRIEND_REQUEST);
|
.subscribe(Tox_Event_Type::TOX_EVENT_FRIEND_REQUEST)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_INVITE);
|
.subscribe(Tox_Event_Type::TOX_EVENT_GROUP_INVITE)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_SELF_JOIN);
|
.subscribe(Tox_Event_Type::TOX_EVENT_GROUP_SELF_JOIN)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_PEER_JOIN);
|
.subscribe(Tox_Event_Type::TOX_EVENT_GROUP_PEER_JOIN)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_PEER_EXIT);
|
.subscribe(Tox_Event_Type::TOX_EVENT_GROUP_PEER_EXIT)
|
||||||
_tc.subscribe(this, Tox_Event_Type::TOX_EVENT_CONFERENCE_INVITE);
|
.subscribe(Tox_Event_Type::TOX_EVENT_CONFERENCE_INVITE)
|
||||||
}
|
;
|
||||||
|
|
||||||
AutoDirty::AutoDirty(ToxClient& tc) : _tc(tc) {
|
|
||||||
subscribe();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AutoDirty::onToxEvent(const Tox_Event_Self_Connection_Status*) {
|
bool AutoDirty::onToxEvent(const Tox_Event_Self_Connection_Status*) {
|
||||||
|
@ -8,8 +8,7 @@ class ToxClient;
|
|||||||
// sets ToxClient dirty on some events
|
// sets ToxClient dirty on some events
|
||||||
class AutoDirty : public ToxEventI {
|
class AutoDirty : public ToxEventI {
|
||||||
ToxClient& _tc;
|
ToxClient& _tc;
|
||||||
|
ToxEventProviderI::SubscriptionReference _tep_sr;
|
||||||
void subscribe(void); // private
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AutoDirty(ToxClient& tc);
|
AutoDirty(ToxClient& tc);
|
||||||
|
@ -27,10 +27,12 @@ StreamManager::Connection::Connection(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamManager::StreamManager(ObjectStore2& os) : _os(os) {
|
StreamManager::StreamManager(ObjectStore2& os) : _os(os), _os_sr(_os.newSubRef(this)) {
|
||||||
_os.subscribe(this, ObjectStore_Event::object_construct);
|
_os_sr
|
||||||
//_os.subscribe(this, ObjectStore_Event::object_update);
|
.subscribe(ObjectStore_Event::object_construct)
|
||||||
_os.subscribe(this, ObjectStore_Event::object_destroy);
|
//.subscribe(ObjectStore_Event::object_update)
|
||||||
|
.subscribe(ObjectStore_Event::object_destroy)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamManager::~StreamManager(void) {
|
StreamManager::~StreamManager(void) {
|
||||||
|
@ -57,6 +57,7 @@ namespace Components {
|
|||||||
class StreamManager : protected ObjectStoreEventI {
|
class StreamManager : protected ObjectStoreEventI {
|
||||||
friend class StreamManagerUI; // TODO: make this go away
|
friend class StreamManagerUI; // TODO: make this go away
|
||||||
ObjectStore2& _os;
|
ObjectStore2& _os;
|
||||||
|
ObjectStore2::SubscriptionReference _os_sr;
|
||||||
|
|
||||||
struct Connection {
|
struct Connection {
|
||||||
ObjectHandle src;
|
ObjectHandle src;
|
||||||
|
@ -24,6 +24,7 @@ MainScreen::MainScreen(SimpleConfigModel&& conf_, SDL_Renderer* renderer_, Theme
|
|||||||
mts(rmm),
|
mts(rmm),
|
||||||
sm(os),
|
sm(os),
|
||||||
tc(save_path, save_password),
|
tc(save_path, save_password),
|
||||||
|
tel(tc, std::cout),
|
||||||
tpi(tc.getTox()),
|
tpi(tc.getTox()),
|
||||||
ad(tc),
|
ad(tc),
|
||||||
tcm(cr, tc, tc),
|
tcm(cr, tc, tc),
|
||||||
@ -50,7 +51,7 @@ MainScreen::MainScreen(SimpleConfigModel&& conf_, SDL_Renderer* renderer_, Theme
|
|||||||
smui(os, sm),
|
smui(os, sm),
|
||||||
dvt(os, sm, sdlrtu)
|
dvt(os, sm, sdlrtu)
|
||||||
{
|
{
|
||||||
tel.subscribeAll(tc);
|
tel.subscribeAll();
|
||||||
|
|
||||||
registerMessageComponents(msnj);
|
registerMessageComponents(msnj);
|
||||||
registerToxMessageComponents(msnj);
|
registerToxMessageComponents(msnj);
|
||||||
|
@ -65,8 +65,8 @@ struct MainScreen final : public Screen {
|
|||||||
|
|
||||||
StreamManager sm;
|
StreamManager sm;
|
||||||
|
|
||||||
ToxEventLogger tel{std::cout};
|
|
||||||
ToxClient tc;
|
ToxClient tc;
|
||||||
|
ToxEventLogger tel;
|
||||||
ToxPrivateImpl tpi;
|
ToxPrivateImpl tpi;
|
||||||
AutoDirty ad;
|
AutoDirty ad;
|
||||||
ToxContactModel2 tcm;
|
ToxContactModel2 tcm;
|
||||||
|
@ -120,15 +120,17 @@ void MediaMetaInfoLoader::handleMessage(const Message3Handle& m) {
|
|||||||
_rmm.throwEventUpdate(m);
|
_rmm.throwEventUpdate(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaMetaInfoLoader::MediaMetaInfoLoader(RegistryMessageModelI& rmm) : _rmm(rmm) {
|
MediaMetaInfoLoader::MediaMetaInfoLoader(RegistryMessageModelI& rmm) : _rmm(rmm), _rmm_sr(_rmm.newSubRef(this)) {
|
||||||
// HACK: make them be added externally?
|
// HACK: make them be added externally?
|
||||||
_image_loaders.push_back(std::make_unique<ImageLoaderWebP>());
|
_image_loaders.push_back(std::make_unique<ImageLoaderWebP>());
|
||||||
_image_loaders.push_back(std::make_unique<ImageLoaderSDLBMP>());
|
_image_loaders.push_back(std::make_unique<ImageLoaderSDLBMP>());
|
||||||
_image_loaders.push_back(std::make_unique<ImageLoaderQOI>());
|
_image_loaders.push_back(std::make_unique<ImageLoaderQOI>());
|
||||||
_image_loaders.push_back(std::make_unique<ImageLoaderSDLImage>());
|
_image_loaders.push_back(std::make_unique<ImageLoaderSDLImage>());
|
||||||
|
|
||||||
_rmm.subscribe(this, RegistryMessageModel_Event::message_construct);
|
_rmm_sr
|
||||||
_rmm.subscribe(this, RegistryMessageModel_Event::message_updated);
|
.subscribe(RegistryMessageModel_Event::message_construct)
|
||||||
|
.subscribe(RegistryMessageModel_Event::message_updated)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaMetaInfoLoader::~MediaMetaInfoLoader(void) {
|
MediaMetaInfoLoader::~MediaMetaInfoLoader(void) {
|
||||||
|
@ -14,6 +14,7 @@ namespace Message::Components {
|
|||||||
class MediaMetaInfoLoader : public RegistryMessageModelEventI {
|
class MediaMetaInfoLoader : public RegistryMessageModelEventI {
|
||||||
protected:
|
protected:
|
||||||
RegistryMessageModelI& _rmm;
|
RegistryMessageModelI& _rmm;
|
||||||
|
RegistryMessageModelI::SubscriptionReference _rmm_sr;
|
||||||
|
|
||||||
std::vector<std::unique_ptr<ImageLoaderI>> _image_loaders;
|
std::vector<std::unique_ptr<ImageLoaderI>> _image_loaders;
|
||||||
|
|
||||||
|
@ -491,16 +491,18 @@ void ToxAVVoIPModel::handleEvent(const Events::FriendCallState& e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ToxAVVoIPModel::ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, Contact3Registry& cr, ToxContactModel2& tcm) :
|
ToxAVVoIPModel::ToxAVVoIPModel(ObjectStore2& os, ToxAVI& av, Contact3Registry& cr, ToxContactModel2& tcm) :
|
||||||
_os(os), _av(av), _cr(cr), _tcm(tcm)
|
_os(os), _av(av), _av_sr(_av.newSubRef(this)), _cr(cr), _tcm(tcm)
|
||||||
{
|
{
|
||||||
_av.subscribe(this, ToxAV_Event::friend_call);
|
_av_sr
|
||||||
_av.subscribe(this, ToxAV_Event::friend_call_state);
|
.subscribe(ToxAV_Event::friend_call)
|
||||||
_av.subscribe(this, ToxAV_Event::friend_audio_bitrate);
|
.subscribe(ToxAV_Event::friend_call_state)
|
||||||
_av.subscribe(this, ToxAV_Event::friend_video_bitrate);
|
.subscribe(ToxAV_Event::friend_audio_bitrate)
|
||||||
_av.subscribe(this, ToxAV_Event::friend_audio_frame);
|
.subscribe(ToxAV_Event::friend_video_bitrate)
|
||||||
_av.subscribe(this, ToxAV_Event::friend_video_frame);
|
.subscribe(ToxAV_Event::friend_audio_frame)
|
||||||
_av.subscribe(this, ToxAV_Event::iterate_audio);
|
.subscribe(ToxAV_Event::friend_video_frame)
|
||||||
_av.subscribe(this, ToxAV_Event::iterate_video);
|
.subscribe(ToxAV_Event::iterate_audio)
|
||||||
|
.subscribe(ToxAV_Event::iterate_video)
|
||||||
|
;
|
||||||
|
|
||||||
// attach to all tox friend contacts
|
// attach to all tox friend contacts
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ struct ToxAVCallVideoSink;
|
|||||||
class ToxAVVoIPModel : protected ToxAVEventI, public VoIPModelI {
|
class ToxAVVoIPModel : protected ToxAVEventI, public VoIPModelI {
|
||||||
ObjectStore2& _os;
|
ObjectStore2& _os;
|
||||||
ToxAVI& _av;
|
ToxAVI& _av;
|
||||||
|
ToxAVI::SubscriptionReference _av_sr;
|
||||||
Contact3Registry& _cr;
|
Contact3Registry& _cr;
|
||||||
ToxContactModel2& _tcm;
|
ToxContactModel2& _tcm;
|
||||||
|
|
||||||
|
@ -33,9 +33,11 @@ ToxAvatarManager::ToxAvatarManager(
|
|||||||
ObjectStore2& os,
|
ObjectStore2& os,
|
||||||
Contact3Registry& cr,
|
Contact3Registry& cr,
|
||||||
ConfigModelI& conf
|
ConfigModelI& conf
|
||||||
) : /*_rmm(rmm)*/ _os(os), _cr(cr), _conf(conf) {
|
) : /*_rmm(rmm)*/ _os(os), _os_sr(_os.newSubRef(this)), _cr(cr), _conf(conf) {
|
||||||
_os.subscribe(this, ObjectStore_Event::object_construct);
|
_os_sr
|
||||||
_os.subscribe(this, ObjectStore_Event::object_update);
|
.subscribe(ObjectStore_Event::object_construct)
|
||||||
|
.subscribe(ObjectStore_Event::object_update)
|
||||||
|
;
|
||||||
|
|
||||||
if (!_conf.has_string("ToxAvatarManager", "save_path")) {
|
if (!_conf.has_string("ToxAvatarManager", "save_path")) {
|
||||||
// or on linux: $HOME/.config/tox/avatars/
|
// or on linux: $HOME/.config/tox/avatars/
|
||||||
|
@ -14,6 +14,7 @@ struct ToxKey;
|
|||||||
|
|
||||||
class ToxAvatarManager : public ObjectStoreEventI {
|
class ToxAvatarManager : public ObjectStoreEventI {
|
||||||
ObjectStore2& _os;
|
ObjectStore2& _os;
|
||||||
|
ObjectStore2::SubscriptionReference _os_sr;
|
||||||
Contact3Registry& _cr;
|
Contact3Registry& _cr;
|
||||||
ConfigModelI& _conf;
|
ConfigModelI& _conf;
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@ ToxFriendFauxOfflineMessaging::ToxFriendFauxOfflineMessaging(
|
|||||||
ToxContactModel2& tcm,
|
ToxContactModel2& tcm,
|
||||||
ToxI& t,
|
ToxI& t,
|
||||||
ToxEventProviderI& tep
|
ToxEventProviderI& tep
|
||||||
) : _cr(cr), _rmm(rmm), _tcm(tcm), _t(t), _tep(tep) {
|
) : _cr(cr), _rmm(rmm), _tcm(tcm), _t(t), _tep_sr(tep.newSubRef(this)) {
|
||||||
_tep.subscribe(this, Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS);
|
_tep_sr.subscribe(Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
float ToxFriendFauxOfflineMessaging::tick(float time_delta) {
|
float ToxFriendFauxOfflineMessaging::tick(float time_delta) {
|
||||||
|
@ -18,7 +18,7 @@ class ToxFriendFauxOfflineMessaging : public ToxEventI {
|
|||||||
RegistryMessageModelI& _rmm;
|
RegistryMessageModelI& _rmm;
|
||||||
ToxContactModel2& _tcm;
|
ToxContactModel2& _tcm;
|
||||||
ToxI& _t;
|
ToxI& _t;
|
||||||
ToxEventProviderI& _tep;
|
ToxEventProviderI::SubscriptionReference _tep_sr;
|
||||||
|
|
||||||
float _interval_timer{0.f};
|
float _interval_timer{0.f};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user