You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.7 KiB

#ifndef PLAYER_H
#define PLAYER_H
#include <QObject>
#include <QMutex>
#include "model/scenarioGenerator/ScenarioGenerator.h"
#include "model/player/dto/PlayerDisplayParameters.h"
#include "model/evocator/dto/CineDisplayParameters.h"
#include "viewModel/cine/setting/DataCineSetting.h"
#include "viewModel/cine/display/DataCineDisplay.h"
#include "model/backendImageProcessor/Bip.h"
#include "model/ultrasoundModule/UsModule.h"
#include "model/ultrasoundModule/UsData.h"
#include "model/player/core/PlayerCore.h"
#include "viewModel/MainViewModel.h"
#include "config/Configuration.h"
/*************************************************************************************************/
/**
* @brief This is a UsModule that playe scans.
* @author Mohammad Mohsen Talaie
* @details This module replay exam data for checking exam data after scan.
* @date 18 oct 2020
*/
/*************************************************************************************************/
class Player : public UsModule
{
Q_OBJECT
US_MODULE
SINGLETON(Player)
private:
PlayerCore* _core;
Player();
void prepareCoreForChangePlayOriginal(const DataCineSetting_t& dataCineSetting);
void sendPlayerDisplayParametersToVM(const PlayerDisplayParameters_t& playerData);
void updataOriginalPlay(const DataCineSetting_t& dataCineSetting);
void updateSubClipStart(const DataCineSetting_t& dataCineSetting);
void updateSubClipEnd(const DataCineSetting_t& dataCineSetting);
void updateCinePlay(const DataCineSetting_t&);
void updateRepeat(const DataCineSetting_t& dataCineSetting);
void updateBSpeed(const DataCineSetting_t& dataCineSetting);
void updateCoreCineSettingParameters(const DataCineSetting_t& dataCineSetting);
bool checkOriginalPlayHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkDataCineSettingPlay(const DataCineSetting_t& dataCineSetting);
bool checkIncomeSubClipStartHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkIncomeSubClipEndHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkIncomeCinePlayHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkDataCineSettingRepeatHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkIncomeBSpeedHasChanged(const DataCineSetting_t& dataCineSetting);
bool checkCorePlayerIsFalse();
PlayerDisplayParameters_t preparePlayerDisplayParameters(const UsMetadataBag& metadataBag);
PlayerDisplayParameters_t createPlayerDisplayParameters(const PlayerMetadata& playerMetadata);
public:
~Player() override;
//uncrustify off
public slots:
//uncrustify on
void getUsPacketFromCore(const UsPacket& input);
void getPlaySituation(const bool& play);
void getBufferFromEvocator(QList<QQueue<UsPacket> > inputBuffer);
};
#endif //PLAYER_H