21#ifndef SAYONARA_PLAYER_PIPELINE_H
22#define SAYONARA_PLAYER_PIPELINE_H
24#include "PipelineExtensions/Broadcasting.h"
25#include "PipelineExtensions/PipelineInterfaces.h"
26#include "PipelineExtensions/Changeable.h"
27#include "PipelineExtensions/StreamRecordable.h"
29#include "Utils/Pimpl.h"
49 void sigAboutToFinishMs(MilliSeconds ms);
50 void sigPositionChangedMs(MilliSeconds ms);
51 void sigDataAvailable(
const QByteArray& data);
54 explicit Pipeline(
const QString& name, QObject* parent =
nullptr);
58 bool prepare(
const QString& uri);
60 bool hasElement(GstElement* e)
const;
61 [[nodiscard]] GstState state()
const;
64 void checkAboutToFinish();
66 void setVisualizerEnabled(
bool levelEnabled,
bool spectrumEnabled);
67 [[nodiscard]]
bool isLevelVisualizerEnabled()
const;
68 [[nodiscard]]
bool isSpectrumVisualizerEnabled()
const;
70 void setBroadcastingEnabled(
bool b)
override;
71 [[nodiscard]]
bool isBroadcastingEnabled()
const override;
73 void prepareForRecording()
override;
74 void finishRecording()
override;
75 void setRecordingPath(
const QString& targetPath)
override;
80 void startDelayedPlayback(MilliSeconds ms);
82 void seekRelative(
double percent, MilliSeconds duration);
83 void seekAbsoluteMs(MilliSeconds ms);
84 void seekRelativeMs(MilliSeconds ms);
85 [[nodiscard]] MilliSeconds duration()
const;
86 [[nodiscard]] MilliSeconds timeToGo()
const;
88 void setEqualizerBand(
int band,
int value);
93 void pause()
override;
98 void speedActiveChanged();
103 bool createElements();
104 bool addAndLinkElements();
105 void configureElements();
107 void setVolume(
double volume)
override;
108 [[nodiscard]]
double volume()
const override;
Definition: Pipeline.h:44
Definition: Broadcasting.h:41
Definition: Changeable.h:29
Definition: PipelineInterfaces.h:27
Definition: StreamRecordable.h:28
Definition: PipelineInterfaces.h:36