TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
Public Member Functions | Private Member Functions | Private Attributes | List of all members
OutputWriter Class Reference

#include <outputwriter_p.h>

+ Inheritance diagram for OutputWriter:

Public Member Functions

 OutputWriter (QObject *parent=nullptr)
 
virtual ~OutputWriter ()
 
bool initialize (quint32 freq, ChannelMap map)
 
void pause ()
 
void stop ()
 
void finish ()
 
void seek (qint64 time, bool reset=false)
 
Recyclerrecycler ()
 
const AudioParametersinputAudioParameters () const
 
AudioParameters outputAudioParameters () const
 
int sampleSize () const
 
void updateEqSettings ()
 

Private Member Functions

virtual void run () overridefinal
 
void status ()
 
void dispatch (qint64 elapsed, int bitrate)
 
void dispatch (const Qmmp::State &state)
 
void dispatch (const AudioParameters &p)
 
void dispatchVisual (Buffer *buffer)
 
bool prepareConverters ()
 
void startVisualization ()
 
void stopVisualization ()
 

Private Attributes

bool m_skip = false
 
QMutex m_mutex
 
Recycler m_recycler
 
StateHandlerm_handler
 
quint32 m_frequency = 0
 
int m_channels = 0
 
int m_kbps = 0
 
ChannelMap m_chan_map
 
Qmmp::AudioFormat m_format = Qmmp::PCM_UNKNOWN
 
qint64 m_bytesPerMillisecond = 0
 
std::atomic_bool m_user_stop = ATOMIC_VAR_INIT(false)
 
std::atomic_bool m_pause = ATOMIC_VAR_INIT(false)
 
std::atomic_bool m_muted = ATOMIC_VAR_INIT(false)
 
std::atomic_bool m_finish = ATOMIC_VAR_INIT(false)
 
bool m_paused = false
 
bool m_useEq = false
 
bool m_abr = false
 
qint64 m_totalWritten = 0
 
qint64 m_currentMilliseconds = -1
 
QmmpSettingsm_settings = nullptr
 
Outputm_output = nullptr
 
AudioParameters m_in_params
 
AudioConverterm_format_converter = nullptr
 
ChannelConverterm_channel_converter = nullptr
 
unsigned char * m_output_buf = nullptr
 
size_t m_output_size = 0
 

Detailed Description

Definition at line 43 of file outputwriter_p.h.

Constructor & Destructor Documentation

OutputWriter::OutputWriter ( QObject *  parent = nullptr)
explicit
virtual OutputWriter::~OutputWriter ( )
virtual

Member Function Documentation

void OutputWriter::dispatch ( qint64  elapsed,
int  bitrate 
)
private
void OutputWriter::dispatch ( const Qmmp::State state)
private
void OutputWriter::dispatch ( const AudioParameters p)
private
void OutputWriter::dispatchVisual ( Buffer buffer)
private
void OutputWriter::finish ( )

Requests playback to finish.

bool OutputWriter::initialize ( quint32  freq,
ChannelMap  map 
)

Prepares object for usage and setups required audio parameters.

Parameters
freqSample rate.
mapMap of channels.
Returns
initialization result (true - success, false - failure)
const AudioParameters& OutputWriter::inputAudioParameters ( ) const

Returns selected audio parameters, i.e. passed by initialize function.

AudioParameters OutputWriter::outputAudioParameters ( ) const

Returns output audio parameters, i.e. accepted by output device.

void OutputWriter::pause ( )

Requests playback to pause. If it was paused already, playback should resume.

bool OutputWriter::prepareConverters ( )
private
Recycler* OutputWriter::recycler ( )

Returns Recycler pointer.

virtual void OutputWriter::run ( )
finaloverrideprivatevirtual
int OutputWriter::sampleSize ( ) const

Returns sample size in bytes.

void OutputWriter::seek ( qint64  time,
bool  reset = false 
)

Requests a seek to the time pos indicated, specified in milliseconds. If reset is true, this function also clears internal output buffers for faster seeking; otherwise does nothing with buffers.

void OutputWriter::startVisualization ( )
private
void OutputWriter::status ( )
private
void OutputWriter::stop ( )

Requests playback to stop.

void OutputWriter::stopVisualization ( )
private
void OutputWriter::updateEqSettings ( )

Update eq settings.

Member Data Documentation

bool OutputWriter::m_abr = false
private

Definition at line 124 of file outputwriter_p.h.

qint64 OutputWriter::m_bytesPerMillisecond = 0
private

Definition at line 117 of file outputwriter_p.h.

ChannelMap OutputWriter::m_chan_map
private

Definition at line 115 of file outputwriter_p.h.

ChannelConverter* OutputWriter::m_channel_converter = nullptr
private

Definition at line 130 of file outputwriter_p.h.

int OutputWriter::m_channels = 0
private

Definition at line 114 of file outputwriter_p.h.

qint64 OutputWriter::m_currentMilliseconds = -1
private

Definition at line 125 of file outputwriter_p.h.

std::atomic_bool OutputWriter::m_finish = ATOMIC_VAR_INIT(false)
private

Definition at line 121 of file outputwriter_p.h.

Qmmp::AudioFormat OutputWriter::m_format = Qmmp::PCM_UNKNOWN
private

Definition at line 116 of file outputwriter_p.h.

AudioConverter* OutputWriter::m_format_converter = nullptr
private

Definition at line 129 of file outputwriter_p.h.

quint32 OutputWriter::m_frequency = 0
private

Definition at line 113 of file outputwriter_p.h.

StateHandler* OutputWriter::m_handler
private

Definition at line 112 of file outputwriter_p.h.

AudioParameters OutputWriter::m_in_params
private

Definition at line 128 of file outputwriter_p.h.

int OutputWriter::m_kbps = 0
private

Definition at line 114 of file outputwriter_p.h.

std::atomic_bool OutputWriter::m_muted = ATOMIC_VAR_INIT(false)
private

Definition at line 120 of file outputwriter_p.h.

QMutex OutputWriter::m_mutex
private

Definition at line 110 of file outputwriter_p.h.

Output* OutputWriter::m_output = nullptr
private

Definition at line 127 of file outputwriter_p.h.

unsigned char* OutputWriter::m_output_buf = nullptr
private

Definition at line 131 of file outputwriter_p.h.

size_t OutputWriter::m_output_size = 0
private

Definition at line 132 of file outputwriter_p.h.

std::atomic_bool OutputWriter::m_pause = ATOMIC_VAR_INIT(false)
private

Definition at line 119 of file outputwriter_p.h.

bool OutputWriter::m_paused = false
private

Definition at line 122 of file outputwriter_p.h.

Recycler OutputWriter::m_recycler
private

Definition at line 111 of file outputwriter_p.h.

QmmpSettings* OutputWriter::m_settings = nullptr
private

Definition at line 126 of file outputwriter_p.h.

bool OutputWriter::m_skip = false
private

Definition at line 109 of file outputwriter_p.h.

qint64 OutputWriter::m_totalWritten = 0
private

Definition at line 125 of file outputwriter_p.h.

bool OutputWriter::m_useEq = false
private

Definition at line 123 of file outputwriter_p.h.

std::atomic_bool OutputWriter::m_user_stop = ATOMIC_VAR_INIT(false)
private

Definition at line 118 of file outputwriter_p.h.


The documentation for this class was generated from the following file: