mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-29 22:30:04 +00:00
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <scwx/qt/types/map_types.hpp>
|
|
|
|
#include <chrono>
|
|
#include <memory>
|
|
|
|
#include <QObject>
|
|
|
|
namespace scwx
|
|
{
|
|
namespace qt
|
|
{
|
|
namespace manager
|
|
{
|
|
|
|
class TimelineManager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit TimelineManager();
|
|
~TimelineManager();
|
|
|
|
static std::shared_ptr<TimelineManager> Instance();
|
|
|
|
[[nodiscard]] std::chrono::system_clock::time_point GetSelectedTime() const;
|
|
|
|
void SetMapCount(std::size_t mapCount);
|
|
|
|
public slots:
|
|
void SetRadarSite(const std::string& radarSite);
|
|
|
|
void SetDateTime(std::chrono::system_clock::time_point dateTime);
|
|
void SetViewType(types::MapTime viewType);
|
|
|
|
void SetLoopTime(std::chrono::minutes loopTime);
|
|
void SetLoopSpeed(double loopSpeed);
|
|
void SetLoopDelay(std::chrono::milliseconds loopDelay);
|
|
|
|
void AnimationStepBegin();
|
|
void AnimationStepBack();
|
|
void AnimationPlayPause();
|
|
void AnimationStepNext();
|
|
void AnimationStepEnd();
|
|
|
|
void ReceiveRadarSweepUpdated(std::size_t mapIndex);
|
|
void ReceiveRadarSweepNotUpdated(std::size_t mapIndex,
|
|
types::NoUpdateReason reason);
|
|
void ReceiveMapWidgetPainted(std::size_t mapIndex);
|
|
|
|
signals:
|
|
void SelectedTimeUpdated(std::chrono::system_clock::time_point dateTime);
|
|
void VolumeTimeUpdated(std::chrono::system_clock::time_point dateTime);
|
|
|
|
void AnimationStateUpdated(types::AnimationState state);
|
|
void LiveStateUpdated(bool isLive);
|
|
void ViewTypeUpdated(types::MapTime viewType);
|
|
|
|
private:
|
|
class Impl;
|
|
std::unique_ptr<Impl> p;
|
|
};
|
|
|
|
} // namespace manager
|
|
} // namespace qt
|
|
} // namespace scwx
|