aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-12-22 18:50:59 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-12-22 18:50:59 +0000
commitd5cc041d782425c88e55bbe466f5db3ec63bcddc (patch)
tree90d0d8c8555d9c7e570110185a9e9e1567dc4347
parentd80f93f202c3527ca2f3927ccc40b2945663c3b1 (diff)
downloadqmmp-d5cc041d782425c88e55bbe466f5db3ec63bcddc.tar.gz
qmmp-d5cc041d782425c88e55bbe466f5db3ec63bcddc.tar.bz2
qmmp-d5cc041d782425c88e55bbe466f5db3ec63bcddc.zip
changed buffer.h api
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5874 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/Effect/CMakeLists.txt10
-rw-r--r--src/plugins/Effect/Effect.pro8
-rw-r--r--src/qmmp/buffer.h21
-rw-r--r--src/qmmp/channelconverter.cpp4
-rw-r--r--src/qmmp/outputwriter.cpp12
-rw-r--r--src/qmmp/qmmpaudioengine.cpp6
-rw-r--r--src/qmmp/recycler.cpp12
-rw-r--r--src/qmmp/recycler_p.h13
-rw-r--r--src/qmmp/volumecontrol.cpp20
9 files changed, 53 insertions, 53 deletions
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 <string.h>
+#include <stddef.h>
+
#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