From d5cc041d782425c88e55bbe466f5db3ec63bcddc Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 22 Dec 2015 18:50:59 +0000 Subject: changed buffer.h api git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5874 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Effect/CMakeLists.txt | 10 +++++----- src/plugins/Effect/Effect.pro | 8 ++++---- src/qmmp/buffer.h | 21 ++++++++++++--------- src/qmmp/channelconverter.cpp | 4 ++-- src/qmmp/outputwriter.cpp | 12 ++++++------ src/qmmp/qmmpaudioengine.cpp | 6 +++--- src/qmmp/recycler.cpp | 12 +++++------- src/qmmp/recycler_p.h | 13 ++++++------- src/qmmp/volumecontrol.cpp | 20 ++++++++++---------- 9 files changed, 53 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/plugins/Effect/CMakeLists.txt b/src/plugins/Effect/CMakeLists.txt index 1b9517799..a9903be42 100644 --- a/src/plugins/Effect/CMakeLists.txt +++ b/src/plugins/Effect/CMakeLists.txt @@ -5,21 +5,21 @@ SET(USE_CROSSFADE TRUE CACHE BOOL "enable/disable crossfade plugin") SET(USE_STEREO TRUE CACHE BOOL "enable/disable extra stereo plugin") IF(USE_SRC) -add_subdirectory(srconverter) +#add_subdirectory(srconverter) ENDIF(USE_SRC) IF(USE_BS2B) -add_subdirectory(bs2b) +#add_subdirectory(bs2b) ENDIF(USE_BS2B) IF(USE_LADSPA) -add_subdirectory(ladspa) +#add_subdirectory(ladspa) ENDIF(USE_LADSPA) IF(USE_CROSSFADE) -add_subdirectory(crossfade) +#add_subdirectory(crossfade) ENDIF(USE_CROSSFADE) IF(USE_STEREO) -add_subdirectory(stereo) +#add_subdirectory(stereo) ENDIF(USE_STEREO) diff --git a/src/plugins/Effect/Effect.pro b/src/plugins/Effect/Effect.pro index 336647a4b..a6a85998a 100644 --- a/src/plugins/Effect/Effect.pro +++ b/src/plugins/Effect/Effect.pro @@ -1,15 +1,15 @@ include (../../../qmmp.pri) TEMPLATE = subdirs -SUBDIRS += crossfade stereo +#SUBDIRS += crossfade stereo contains(CONFIG, BS2B_PLUGIN){ -SUBDIRS += bs2b +#SUBDIRS += bs2b } unix { - SUBDIRS += srconverter +# SUBDIRS += srconverter contains(CONFIG, LADSPA_PLUGIN){ - SUBDIRS += ladspa +# SUBDIRS += ladspa } } diff --git a/src/qmmp/buffer.h b/src/qmmp/buffer.h index 160045dc8..aa209b1a3 100644 --- a/src/qmmp/buffer.h +++ b/src/qmmp/buffer.h @@ -7,6 +7,9 @@ #ifndef __buffer_h #define __buffer_h +#include +#include + #define QMMP_BLOCK_FRAMES 512 /*! @brief Audio buffer class. @@ -17,12 +20,12 @@ class Buffer public: /*! * Constructs an empty buffer object. - * @param sz Size in bytes; + * @param sz Size in samples; */ - Buffer(unsigned long sz) + Buffer(size_t sz) { - data = new unsigned char[sz]; - nbytes = 0; + data = new float[sz]; + samples = 0; rate = 0; size = sz; } @@ -33,15 +36,15 @@ public: { delete[] data; data = 0; - nbytes = 0; + samples = 0; rate = 0; size = 0; } - unsigned char *data; /*!< Audio data */ - unsigned long nbytes; /*!< Audio data size */ - unsigned long rate; /*!< Buffer bitrate */ - unsigned long size; /*!< Buffer size */ + float *data; /*!< Audio data */ + size_t samples; /*!< Audio data size in samples */ + size_t size; /*!< Buffer size in samples */ + unsigned int rate; /*!< Buffer bitrate */ }; diff --git a/src/qmmp/channelconverter.cpp b/src/qmmp/channelconverter.cpp index 622dc73ae..857766531 100644 --- a/src/qmmp/channelconverter.cpp +++ b/src/qmmp/channelconverter.cpp @@ -65,7 +65,7 @@ void ChannelConverter::configure(quint32 srate, ChannelMap in_map, Qmmp::AudioFo void ChannelConverter::applyEffect(Buffer *b) { - if(m_disabled) + /*if(m_disabled) return; unsigned long i = 0; @@ -115,5 +115,5 @@ void ChannelConverter::applyEffect(Buffer *b) } default: ; - } + }*/ } diff --git a/src/qmmp/outputwriter.cpp b/src/qmmp/outputwriter.cpp index 47d7b10ba..93e1a1f15 100644 --- a/src/qmmp/outputwriter.cpp +++ b/src/qmmp/outputwriter.cpp @@ -148,7 +148,7 @@ bool OutputWriter::initialize(quint32 freq, ChannelMap map, Qmmp::AudioFormat fo } m_bytesPerMillisecond = m_frequency * m_channels * AudioParameters::sampleSize(format) / 1000; - m_recycler.configure(m_frequency, m_channels, Qmmp::PCM_FLOAT); //calculate output buffer size + m_recycler.configure(m_frequency, m_channels); //calculate output buffer size //visual buffer if(m_visBuffer) delete [] m_visBuffer; @@ -233,7 +233,7 @@ int OutputWriter::sampleSize() const void OutputWriter::dispatchVisual (Buffer *buffer) { - if (!buffer) + /*if (!buffer) return; int sampleSize = AudioParameters::sampleSize(m_format); @@ -270,7 +270,7 @@ void OutputWriter::dispatchVisual (Buffer *buffer) visual->mutex()->unlock(); } if(m_format == Qmmp::PCM_S16LE) - m_visBuffer = 0; + m_visBuffer = 0;*/ } void OutputWriter::applyConverters(Buffer *buffer) @@ -429,14 +429,14 @@ void OutputWriter::run() if (SoftwareVolume::instance()) SoftwareVolume::instance()->changeVolume(b, m_channels, m_format); if (m_muted) - memset(b->data, 0, b->nbytes); + memset(b->data, 0, b->size * sizeof(float)); applyConverters(b); l = 0; m = 0; - size_t samples = b->nbytes / sizeof(float); + size_t samples = b->samples; unsigned char buf[samples * 2]; - m_converter->fromFloat((float*)b->data, buf, samples); + m_converter->fromFloat(b->data, buf, samples); while (l < samples * 2 && !m_pause && !m_prev_pause) diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index f8305576a..f490958fb 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -301,12 +301,12 @@ qint64 QmmpAudioEngine::produceSound(unsigned char *data, qint64 size, quint32 b size_t samples = qMin(m_bks / sizeof(float), (uint)size / m_ap.sampleSize()); size_t in_size = samples * m_ap.sampleSize(); - m_converter->toFloat(data, (float*)(b->data), samples); + m_converter->toFloat(data, b->data, samples); //m_replayGain->applyReplayGain(data, sz); //memcpy(b->data, data, sz); - b->nbytes = samples * sizeof(float); + b->samples = samples; b->rate = brate; /*foreach(Effect* effect, m_effects) { @@ -604,7 +604,7 @@ OutputWriter *QmmpAudioEngine::createOutput() if(m_output_buf) delete [] m_output_buf; m_bks = output->recycler()->blockSize(); - m_output_size = m_bks * 4; + m_output_size = m_bks * 4 * m_ap.sampleSize(); m_output_buf = new unsigned char[m_output_size]; return output; } diff --git a/src/qmmp/recycler.cpp b/src/qmmp/recycler.cpp index 15d31a0e6..ef92253b8 100644 --- a/src/qmmp/recycler.cpp +++ b/src/qmmp/recycler.cpp @@ -32,9 +32,9 @@ Recycler::~Recycler() m_blocked = 0; } -void Recycler::configure(quint32 freq, int chan, Qmmp::AudioFormat format) +void Recycler::configure(quint32 freq, int chan) { - unsigned long block_size = AudioParameters::sampleSize(format) * chan * QMMP_BLOCK_FRAMES; + size_t block_size = chan * QMMP_BLOCK_FRAMES; unsigned int buffer_count = freq * QmmpSettings::instance()->bufferSize() / 1000 / QMMP_BLOCK_FRAMES; if(block_size == m_block_size && buffer_count == m_buffer_count) return; @@ -75,13 +75,11 @@ bool Recycler::blocked() return m_buffers[m_add_index] == m_blocked; } - bool Recycler::empty() const { return m_current_count == 0; } - int Recycler::available() const { return m_buffer_count - m_current_count; @@ -102,7 +100,7 @@ Buffer *Recycler::get() void Recycler::add() { - if(m_buffers[m_add_index]->nbytes) + if(m_buffers[m_add_index]->samples) { m_add_index = (m_add_index + 1) % m_buffer_count; m_current_count++; @@ -136,12 +134,12 @@ void Recycler::clear() m_done_index = 0; } -unsigned long Recycler::size() const +size_t Recycler::size() const { return m_buffer_count * m_block_size; } -unsigned long Recycler::blockSize() const +size_t Recycler::blockSize() const { return m_block_size; } diff --git a/src/qmmp/recycler_p.h b/src/qmmp/recycler_p.h index 22443f8de..6cf75bad4 100644 --- a/src/qmmp/recycler_p.h +++ b/src/qmmp/recycler_p.h @@ -31,9 +31,8 @@ public: * Setups audio parameters of output interface. * @param freq Sample rate. * @param chan Number of channels. - * @param format Audio format */ - void configure(quint32 freq, int chan, Qmmp::AudioFormat format); + void configure(quint32 freq, int chan); /*! * Returns \b true if queue if full, otherwise returns \b false */ @@ -71,13 +70,13 @@ public: */ void clear(); // clear queue /*! - * Returns size of all buffers in bytes. + * Returns size of all buffers in samples. */ - unsigned long size() const; // size in bytes + size_t size() const; // size in samples /*! - * Returns block size in bytes. + * Returns block size in samples. */ - unsigned long blockSize() const; // size in bytes + size_t blockSize() const; // size in samples /*! * Returns mutex pointer. @@ -100,7 +99,7 @@ public: private: unsigned int m_buffer_count, m_add_index, m_done_index, m_current_count; - unsigned long m_block_size; + size_t m_block_size; Buffer **m_buffers; QMutex m_mtx; QWaitCondition m_cnd; diff --git a/src/qmmp/volumecontrol.cpp b/src/qmmp/volumecontrol.cpp index 9770f5101..a853334f6 100644 --- a/src/qmmp/volumecontrol.cpp +++ b/src/qmmp/volumecontrol.cpp @@ -134,14 +134,14 @@ void VolumeControl::reload() { if((m_volume = Output::currentFactory()->createVolume())) { - if(m_volume->hasNotifySignal()) - { - checkVolume(); - connect(m_volume, SIGNAL(changed()), SLOT(checkVolume())); - } - else - m_timer->start(150); // fallback to polling if change notification is not available. - } + if(m_volume->hasNotifySignal()) + { + checkVolume(); + connect(m_volume, SIGNAL(changed()), SLOT(checkVolume())); + } + else + m_timer->start(150); // fallback to polling if change notification is not available. + } } if(!m_volume) { @@ -191,7 +191,7 @@ VolumeSettings SoftwareVolume::volume() const void SoftwareVolume::changeVolume(Buffer *b, int chan, Qmmp::AudioFormat format) { - int samples = 0; + /*int samples = 0; qint32 sample1 = 0; qint32 sample2 = 0; switch(format) @@ -281,7 +281,7 @@ void SoftwareVolume::changeVolume(Buffer *b, int chan, Qmmp::AudioFormat format) break; default: ; - } + }*/ } //static -- cgit v1.2.3-13-gbd6f