diff --git a/CMakeLists.txt b/CMakeLists.txt index e0e4aa457..b5d4fbe33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -498,6 +498,7 @@ set(TDLIB_SOURCE td/telegram/TopDialogCategory.cpp td/telegram/TopDialogManager.cpp td/telegram/TranscriptionInfo.cpp + td/telegram/TranscriptionManager.cpp td/telegram/TranslationManager.cpp td/telegram/UpdatesManager.cpp td/telegram/Usernames.cpp @@ -819,6 +820,7 @@ set(TDLIB_SOURCE td/telegram/TopDialogCategory.h td/telegram/TopDialogManager.h td/telegram/TranscriptionInfo.h + td/telegram/TranscriptionManager.h td/telegram/TranslationManager.h td/telegram/UniqueId.h td/telegram/UpdatesManager.h diff --git a/SplitSource.php b/SplitSource.php index 36859e4ce..8c872132c 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -322,6 +322,7 @@ function split_file($file, $chunks, $undo) { 'TopDialogCategory|get_top_dialog_category' => 'TopDialogCategory', 'top_dialog_manager[_(-][^.]|TopDialogManager' => 'TopDialogManager', 'translation_manager[_(-][^.]|TranslationManager' => "TranslationManager", + 'transcription_manager[_(-][^.]|TranscriptionManager' => "TranscriptionManager", 'updates_manager[_(-][^.]|UpdatesManager|get_difference[)]|updateSentMessage|dummyUpdate' => 'UpdatesManager', 'WebPageId(Hash)?' => 'WebPageId', 'web_pages_manager[_(-][^.]|WebPagesManager' => 'WebPagesManager'); diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 8d4f42189..6669ed5ec 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -141,6 +141,7 @@ #include "td/telegram/ThemeManager.h" #include "td/telegram/TopDialogCategory.h" #include "td/telegram/TopDialogManager.h" +#include "td/telegram/TranscriptionManager.h" #include "td/telegram/TranslationManager.h" #include "td/telegram/UpdatesManager.h" #include "td/telegram/UserId.h" @@ -3330,6 +3331,8 @@ void Td::dec_actor_refcnt() { LOG(DEBUG) << "ThemeManager was cleared" << timer; top_dialog_manager_.reset(); LOG(DEBUG) << "TopDialogManager was cleared" << timer; + transcription_manager_.reset(); + LOG(DEBUG) << "TranscriptionManager was cleared" << timer; translation_manager_.reset(); LOG(DEBUG) << "TranslationManager was cleared" << timer; updates_manager_.reset(); @@ -3537,6 +3540,8 @@ void Td::clear() { LOG(DEBUG) << "ThemeManager actor was cleared" << timer; top_dialog_manager_actor_.reset(); LOG(DEBUG) << "TopDialogManager actor was cleared" << timer; + transcription_manager_actor_.reset(); + LOG(DEBUG) << "TranscriptionManager actor was cleared" << timer; translation_manager_actor_.reset(); LOG(DEBUG) << "TranslationManager actor was cleared" << timer; updates_manager_actor_.reset(); @@ -4038,6 +4043,8 @@ void Td::init_managers() { top_dialog_manager_ = make_unique(this, create_reference()); top_dialog_manager_actor_ = register_actor("TopDialogManager", top_dialog_manager_.get()); G()->set_top_dialog_manager(top_dialog_manager_actor_.get()); + transcription_manager_ = make_unique(this, create_reference()); + transcription_manager_actor_ = register_actor("TranscriptionManager", transcription_manager_.get()); translation_manager_ = make_unique(this, create_reference()); translation_manager_actor_ = register_actor("TranslationManager", translation_manager_.get()); updates_manager_ = make_unique(this, create_reference()); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index 00e78c58e..b116f51cb 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -84,6 +84,7 @@ class StorageManager; class StoryManager; class ThemeManager; class TopDialogManager; +class TranscriptionManager; class TranslationManager; class UpdatesManager; class VideoNotesManager; @@ -213,6 +214,8 @@ class Td final : public Actor { ActorOwn theme_manager_actor_; unique_ptr top_dialog_manager_; ActorOwn top_dialog_manager_actor_; + unique_ptr transcription_manager_; + ActorOwn transcription_manager_actor_; unique_ptr translation_manager_; ActorOwn translation_manager_actor_; unique_ptr updates_manager_; diff --git a/td/telegram/TranscriptionManager.cpp b/td/telegram/TranscriptionManager.cpp new file mode 100644 index 000000000..a66b874bd --- /dev/null +++ b/td/telegram/TranscriptionManager.cpp @@ -0,0 +1,18 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#include "td/telegram/TranscriptionManager.h" + +namespace td { + +TranscriptionManager::TranscriptionManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void TranscriptionManager::tear_down() { + parent_.reset(); +} + +} // namespace td diff --git a/td/telegram/TranscriptionManager.h b/td/telegram/TranscriptionManager.h new file mode 100644 index 000000000..9249009f3 --- /dev/null +++ b/td/telegram/TranscriptionManager.h @@ -0,0 +1,28 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#pragma once + +#include "td/actor/actor.h" + +#include "td/utils/common.h" + +namespace td { + +class Td; + +class TranscriptionManager final : public Actor { + public: + TranscriptionManager(Td *td, ActorShared<> parent); + + private: + void tear_down() final; + + Td *td_; + ActorShared<> parent_; +}; + +} // namespace td