21#ifndef OUTPUTWRITER_P_H
22#define OUTPUTWRITER_P_H
27#include "recycler_p.h"
28#include "audioparameters.h"
29#include "channelmap.h"
37class ChannelConverter;
43class OutputWriter :
public QThread
47 explicit OutputWriter(QObject *parent =
nullptr);
49 virtual ~OutputWriter();
56 bool initialize(quint32 freq, ChannelMap map);
74 void seek(qint64 pos,
bool reset =
false);
82 const AudioParameters &inputAudioParameters()
const;
86 AudioParameters outputAudioParameters()
const;
90 int sampleSize()
const;
91 void updateEqSettings();
96 void dispatch(qint64 elapsed,
int bitrate);
97 void dispatch(
const Qmmp::State &state);
98 void dispatch(
const AudioParameters &p);
99 void dispatchVisual(Buffer *buffer);
100 bool prepareConverters();
101 void startVisualization();
102 void stopVisualization();
107 StateHandler *m_handler;
108 quint32 m_frequency = 0;
109 int m_channels = 0, m_kbps = 0;
110 ChannelMap m_chan_map;
111 Qmmp::AudioFormat m_format = Qmmp::PCM_UNKNOWN;
112 qint64 m_bytesPerMillisecond = 0;
113 std::atomic_bool m_user_stop = ATOMIC_VAR_INIT(
false);
114 std::atomic_bool m_pause = ATOMIC_VAR_INIT(
false);
115 std::atomic_bool m_muted = ATOMIC_VAR_INIT(
false);
116 std::atomic_bool m_finish = ATOMIC_VAR_INIT(
false);
117 bool m_paused =
false;
118 bool m_useEq =
false;
120 qint64 m_totalWritten = 0, m_currentMilliseconds = -1;
121 QmmpSettings *m_settings;
122 Output *m_output =
nullptr;
123 AudioParameters m_in_params;
124 AudioConverter *m_format_converter =
nullptr;
125 ChannelConverter *m_channel_converter =
nullptr;
126 unsigned char *m_output_buf =
nullptr;
127 size_t m_output_size = 0;
The AbstractEngine class provides the internal audio converter.
Definition audioconverter.h:31
The Effect class provides the base interface class of audio effects.
Definition effect.h:36
The Output class provides the base interface class of audio outputs.
Definition output.h:28
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