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"
48 void sigAboutToFinishMs(MilliSeconds ms);
49 void sigPositionChangedMs(MilliSeconds ms);
50 void sigDataAvailable(
const QByteArray& data);
53 explicit Pipeline(
const QString& name, QObject* parent =
nullptr);
57 bool prepare(
const QString& uri,
const QString& userAgent = QString());
59 bool hasElement(GstElement* e)
const;
60 [[nodiscard]] GstState state()
const;
63 void checkAboutToFinish();
65 void setVisualizerEnabled(
bool levelEnabled,
bool spectrumEnabled);
66 [[nodiscard]]
bool isLevelVisualizerEnabled()
const;
67 [[nodiscard]]
bool isSpectrumVisualizerEnabled()
const;
69 void setBroadcastingEnabled(
bool b)
override;
70 [[nodiscard]]
bool isBroadcastingEnabled()
const override;
72 void prepareForRecording()
override;
73 void finishRecording()
override;
74 void setRecordingPath(
const QString& targetPath)
override;
79 void startDelayedPlayback(MilliSeconds ms);
81 void seekRelative(
double percent, MilliSeconds duration);
82 void seekAbsoluteMs(MilliSeconds ms);
83 void seekRelativeMs(MilliSeconds ms);
84 [[nodiscard]] MilliSeconds duration()
const;
85 [[nodiscard]] MilliSeconds timeToGo()
const;
87 void setEqualizerBand(
int band,
int value);
92 void pause()
override;
97 void speedActiveChanged();
102 bool createElements();
103 bool addAndLinkElements();
104 void configureElements();
106 void setVolume(
double volume);
Definition: Pipeline.h:43
Definition: Broadcasting.h:41
Definition: Changeable.h:29
Definition: PipelineInterfaces.h:27
Definition: StreamRecordable.h:28