21#ifndef GSTPLAYBACKENGINE_H_
22#define GSTPLAYBACKENGINE_H_
24#include "Utils/Pimpl.h"
25#include "Interfaces/Engine/AudioDataReceiver.h"
34namespace StreamRecorder
43 class SpectrumDataReceiver;
44 class LevelDataReceiver;
47 using PipelinePtr=std::shared_ptr<Pipeline>;
64 enum class GaplessState : uint8_t
74 void sigDataAvailable(
const QByteArray& data);
75 void sigSpectrumChanged();
76 void sigLevelChanged();
78 void sigMetadataChanged(
const MetaData& md);
79 void sigDurationChanged(
const MetaData& md);
80 void sigBitrateChanged(
const MetaData& md);
81 void sigCoverDataAvailable(
const QByteArray& data,
const QString& mimetype);
83 void sigCurrentPositionChanged(MilliSeconds ms);
84 void sigBuffering(
int progress);
85 void sigTrackFinished();
87 void sigError(
const QString& error_message);
93 void updateBitrate(Bitrate br, GstElement* src);
94 void updateDuration(GstElement* src);
96 void setTrackReady(GstElement* src);
97 void setTrackAlmostFinished(MilliSeconds time2go);
98 void setTrackFinished(GstElement* src);
100 bool isStreamRecorderRecording()
const;
101 void setStreamRecorderRecording(
bool b);
103 void setSpectrum(
const std::vector<float>& spectrum);
104 const std::vector<float>& spectrum()
const;
106 void setLevel(
float left,
float right);
109 void setVisualizerEnabled(
bool levelEnabled,
bool spectrumEnabled);
110 void setBroadcastEnabled(
bool b);
111 void setEqualizer(
int band,
int value);
120 void jumpAbsMs(MilliSeconds pos_ms);
121 void jumpRelMs(MilliSeconds pos_ms);
122 void jumpRel(
double percent);
123 void updateMetadata(
const MetaData& track, GstElement* src);
124 void updateCover(GstElement* src,
const QByteArray& data,
const QString& mimedata);
126 bool changeTrack(
const MetaData& track);
128 void setBufferState(
int progress, GstElement* src);
129 void error(
const QString& error,
const QString& elementName);
132 PipelinePtr initPipeline(
const QString& name);
133 bool changeMetadata(
const MetaData& track);
135 void swapPipelines();
136 bool changeTrackCrossfading(
const MetaData& track);
137 bool changeTrackGapless(
const MetaData& track);
138 bool changeTrackImmediatly(
const MetaData& track);
140 void setCurrentPositionMs(MilliSeconds pos_ms);
143 void gaplessChanged();
144 void streamrecorderActiveChanged();
145 void currentPositionChanged(MilliSeconds pos_ms);
The PlaybackEngine class.
Definition: Engine.h:54
Global handler for current playback state (Singleton)
Definition: PlayManager.h:36
Definition: typedefs.h:33