21 #ifndef OUTPUTWRITER_P_H 22 #define OUTPUTWRITER_P_H 27 #include "recycler_p.h" 28 #include "audioparameters.h" 29 #include "channelmap.h" 37 class ChannelConverter;
43 class 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);
86 int sampleSize()
const;
87 void updateEqSettings();
92 void dispatch(qint64 elapsed,
int bitrate);
95 void dispatchVisual(
Buffer *buffer);
96 bool prepareConverters();
97 void startVisualization();
98 void stopVisualization();
104 quint32 m_frequency = 0;
105 int m_channels = 0, m_kbps = 0;
106 ChannelMap m_chan_map;
108 qint64 m_bytesPerMillisecond = 0;
109 std::atomic_bool m_user_stop = ATOMIC_VAR_INIT(
false);
110 std::atomic_bool m_pause = ATOMIC_VAR_INIT(
false);
111 std::atomic_bool m_muted = ATOMIC_VAR_INIT(
false);
112 std::atomic_bool m_finish = ATOMIC_VAR_INIT(
false);
113 bool m_paused =
false;
114 bool m_useEq =
false;
116 qint64 m_totalWritten = 0, m_currentMilliseconds = -1;
118 Output *m_output =
nullptr;
121 ChannelConverter *m_channel_converter =
nullptr;
122 unsigned char *m_output_buf =
nullptr;
123 size_t m_output_size = 0;
126 #endif // OUTPUTWRITER_P_H The AbstractEngine class provides the internal audio converter.
Definition: audioconverter.h:30
State
Definition: qmmp.h:61
The QmmpSettings class provides access to global settings.
Definition: qmmpsettings.h:35
The Effect class provides the base interface class of audio effects.
Definition: effect.h:35
The AudioParameters class keeps information about audio settings.
Definition: audioparameters.h:31
The StateHandler class allows one to track information about playback progress.
Definition: statehandler.h:34
The Output class provides the base interface class of audio outputs.
Definition: output.h:27
Audio buffer class.
Definition: buffer.h:20
AudioFormat
Definition: qmmp.h:114