/** * @RDE_HEADER@ * Plugin to manage effects. * $Id$ * $HeadURL$ * $Author$ * Created by Filip Biedziak, NLE, 2020-07-29 */ #pragma once #include "efm_effect_area.h" #include "efm_sound_helper.h" #include #include #include #include namespace NGL { class INGLLogger; } namespace LtsSession { class LtsSessionDataDds; } namespace LtsUtils { class RequestHelper; } namespace Ui { class SoundManagementDialog; } namespace EffectManagement { class SoundTreeModel; class SoundPlaylistModel; class SoundManagementDialog : public LtsWidgets::LtsDialog , protected SoundManagement::Interface::Ftc::ControlSoundReplyHandler { Q_OBJECT public: explicit SoundManagementDialog(const EffectAreaData &data, QWidget *parent = nullptr); ~SoundManagementDialog(); private slots: void onAddSoundToPlaylist(const SoundKey &key); void onStopAllSounds(); public: bool init(LtsSession::LtsSessionDataDds *session, const QString &menuGroup); private: void onControlSoundReply(const Core::FunctionReplyObject &replyObject) override final; void retranslate() override; bool apply() override; std::shared_ptr m_somDtc{nullptr}; std::shared_ptr m_somFtc{nullptr}; std::shared_ptr m_helper{nullptr}; LtsUtils::RequestHelper *m_requestHelper{nullptr}; LtsSession::LtsSessionDataDds *m_session{nullptr}; EffectAreaData *m_data{nullptr}; SoundTreeModel *m_treeModel{nullptr}; SoundPlaylistModel *m_playlistModel{nullptr}; QHash m_egcuCheckBoxes; QString m_menuGroup; Ui::SoundManagementDialog *m_ui{nullptr}; NGL::INGLLogger &m_logger; }; // class EffectManagementDialog } // namespace EffectManagement