104 lines
3.6 KiB
C++
Executable File
104 lines
3.6 KiB
C++
Executable File
#pragma once
|
|
|
|
#include "tln_timeline_model.h"
|
|
#include "tln_utils.h"
|
|
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <LtsSession/lts_session.h>
|
|
#include <Plugins/AudioVideoManagement/avm_menu_edit_gui_plugin_interface.h>
|
|
#include <Plugins/MarkerManagement/mrk_gui_plugin_interface.h>
|
|
#include <Plugins/FilterManagement/flt_participant_plugin_interface.h>
|
|
#include <Plugins/FilterManagement/flt_aes_plugin_interface.h>
|
|
#include <Plugins/FilterManagement/flt_building_cmpnt_plugin_interface.h>
|
|
|
|
namespace Ui
|
|
{
|
|
class ItemInfoDialog;
|
|
}
|
|
|
|
namespace AudioVideoManagement
|
|
{
|
|
class StreamNameMapping;
|
|
}
|
|
|
|
namespace SituationReplay
|
|
{
|
|
class ForeignGuiInterface;
|
|
}
|
|
|
|
|
|
namespace Timeline
|
|
{
|
|
|
|
class ItemInfoDialog : public LtsWidgets::LtsDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ItemInfoDialog(QWidget *parent = nullptr);
|
|
~ItemInfoDialog();
|
|
|
|
bool init(EventItemPtr &&itemPtr, int equipmentNumber, const QPointer<LtsSession::LtsSession> &session,
|
|
const QPointer<LtsSession::LtsSession> &replayAppSession,
|
|
const std::shared_ptr<AudioVideoManagement::ForeignMenuEditGuiInterface> &avmIfc,
|
|
const std::shared_ptr<MarkerManagement::ForeignGuiInterface> &mrkIfc,
|
|
const std::shared_ptr<FilterManagement::ForeignFltParticipantGuiInterface> &fltParticipantIfc,
|
|
const std::shared_ptr<FilterManagement::ForeignAesGuiInterface> &fltAesIfc,
|
|
const std::shared_ptr<FilterManagement::ForeignFltBuildingComponentGuiInterface> &fltBuildingComponentIfc,
|
|
bool isTimelineApp, QWidget *pseudoParent
|
|
);
|
|
|
|
void retranslate() override;
|
|
|
|
private:
|
|
void enableDisableButtons(
|
|
std::shared_ptr<SituationReplay::ForeignGuiInterface> srpIfc, std::shared_ptr<SituationMap::ForeignGuiInterface> sitMapIfc
|
|
);
|
|
void setButtonDisabled(QPushButton *button, QToolButton *warningButton, const QString &reasonMessage, bool hide = false);
|
|
void setButtonEnabled(QPushButton *button, QToolButton *warningButton);
|
|
bool getStreamName(QString &streamName, bool silent = false) const;
|
|
bool hasStreamName() const;
|
|
bool isHitEventType();
|
|
bool isMarkerAudio() const;
|
|
bool isMarkerVideo() const;
|
|
bool isMarkerAudioVideo() const;
|
|
bool isAudioVideoCapable();
|
|
bool isMarkerSituation();
|
|
void startPlayback(bool isAudio);
|
|
void initReplayAppSession(const QPointer<LtsSession::LtsSession> &replayAppSession,
|
|
std::shared_ptr<SituationReplay::ForeignGuiInterface> *srpIfc,
|
|
std::shared_ptr<SituationMap::ForeignGuiInterface> *sitMapIfc);
|
|
|
|
private slots:
|
|
void onShowMarker();
|
|
void onFocusOnMap();
|
|
void updateMarker(const MarkerManagement::Marker &data, DataModification modType);
|
|
|
|
public slots:
|
|
void startSituationPlayback(const QPointer<LtsSession::LtsSession> &replayAppSession);
|
|
void onStartReplay();
|
|
|
|
signals:
|
|
void startSituationReplayApp();
|
|
|
|
private:
|
|
QPointer<LtsSession::LtsSession> m_replayAppSession;
|
|
std::shared_ptr<AudioVideoManagement::ForeignMenuEditGuiInterface> m_avmIfc;
|
|
std::shared_ptr<MarkerManagement::ForeignGuiInterface> m_mrkIfc;
|
|
std::shared_ptr<FilterManagement::ForeignFltParticipantGuiInterface> m_fltParticipantIfc;
|
|
std::shared_ptr<FilterManagement::ForeignAesGuiInterface> m_fltAesIfc;
|
|
std::shared_ptr<FilterManagement::ForeignFltBuildingComponentGuiInterface> m_fltBuildingComponentIfc;
|
|
LtsSession::LtsSessionDataDds *m_session { nullptr };
|
|
std::shared_ptr<MarkerManagement::Interface::Dtc> m_mrkDtc;
|
|
|
|
EventItemPtr m_itemPtr;
|
|
AbstractEventItem *m_item { nullptr };
|
|
bool m_isApp { false };
|
|
|
|
Ui::ItemInfoDialog *m_ui { nullptr };
|
|
int m_formCount;
|
|
NGL::INGLLogger &m_logger;
|
|
};
|
|
|
|
} // namespace Timeline
|