21 #ifndef QMMPAUDIOENGINE_P_H
22 #define QMMPAUDIOENGINE_P_H
27 #include <QSharedPointer>
28 #include "abstractengine.h"
29 #include "trackinfo.h"
30 #include "audioparameters.h"
52 QmmpAudioEngine(QObject *parent);
57 void seek(qint64 time)
override;
59 void pause()
override;
63 static QmmpAudioEngine *instance();
67 void updateReplayGainSettings();
68 void updateAudioSettings();
69 void updateEqSettings();
75 void flush(
bool =
false);
77 qint64 produceSound(
unsigned char *data, qint64 size, quint32 brate);
79 OutputWriter *createOutput();
80 void prepareEffects(
Decoder *d);
83 QList<Effect*> m_effects;
84 QList<Effect*> m_blockedEffects;
85 OutputWriter *m_output =
nullptr;
87 std::atomic_bool m_done, m_finish, m_user_stop;
88 uint m_bks = 0, m_sample_size = 0;
90 quint64 m_output_at, m_output_size = 0;
92 unsigned char *m_output_buf =
nullptr;
94 QQueue <Decoder*> m_decoders;
95 QHash <Decoder*, InputSource*> m_inputs;
98 QSharedPointer<TrackInfo> m_trackInfo;
99 static QmmpAudioEngine *m_instance;
100 ReplayGain *m_replayGain =
nullptr;
103 Dithering *m_dithering =
nullptr;
The AbstractEngine class provides the base interface class of audio audio engines.
Definition: abstractengine.h:40
virtual void seek(qint64 time)=0
virtual bool enqueue(InputSource *source)=0
The AbstractEngine class provides the internal audio converter.
Definition: audioconverter.h:31
The AudioParameters class keeps information about audio settings.
Definition: audioparameters.h:32
Input plugin interface (decoder factory).
Definition: decoderfactory.h:54
The Decoder class provides the base interface class of audio decoders.
Definition: decoder.h:27
Effect plugin interface (effect factory).
Definition: effectfactory.h:56
The Effect class provides the base interface class of audio effects.
Definition: effect.h:36
The QmmpSettings class provides access to global settings.
Definition: qmmpsettings.h:36
The StateHandler class allows one to track information about playback progress.
Definition: statehandler.h:35