mirror of
https://github.com/aicodix/dsp.git
synced 2026-04-27 14:30:36 +00:00
get stride from channel count per default
This commit is contained in:
parent
2e5910bebc
commit
61a611e33c
2 changed files with 8 additions and 4 deletions
4
pcm.hh
4
pcm.hh
|
|
@ -11,7 +11,7 @@ namespace DSP {
|
|||
template <typename TYPE>
|
||||
struct WritePCM
|
||||
{
|
||||
virtual void write(TYPE *, int, int = 1) = 0;
|
||||
virtual void write(TYPE *, int, int = -1) = 0;
|
||||
virtual bool good() = 0;
|
||||
virtual void silence(int) = 0;
|
||||
virtual int rate() = 0;
|
||||
|
|
@ -22,7 +22,7 @@ struct WritePCM
|
|||
template <typename TYPE>
|
||||
struct ReadPCM
|
||||
{
|
||||
virtual void read(TYPE *, int, int = 1) = 0;
|
||||
virtual void read(TYPE *, int, int = -1) = 0;
|
||||
virtual bool good() = 0;
|
||||
virtual void skip(int) = 0;
|
||||
virtual int rate() = 0;
|
||||
|
|
|
|||
8
wav.hh
8
wav.hh
|
|
@ -99,8 +99,10 @@ public:
|
|||
return;
|
||||
}
|
||||
}
|
||||
void read(TYPE *buf, int num, int stride = 1)
|
||||
void read(TYPE *buf, int num, int stride = -1)
|
||||
{
|
||||
if (stride < 0)
|
||||
stride = channels_;
|
||||
for (int n = 0; n < num; ++n) {
|
||||
for (int c = 0; c < channels_; ++c) {
|
||||
buf[stride * n + c] = TYPE(readLE(bytes) - offset) / TYPE(factor);
|
||||
|
|
@ -204,8 +206,10 @@ public:
|
|||
os.seekp(40);
|
||||
writeLE(size, 4); // Subchunk2Size
|
||||
}
|
||||
void write(TYPE *buf, int num, int stride = 1)
|
||||
void write(TYPE *buf, int num, int stride = -1)
|
||||
{
|
||||
if (stride < 0)
|
||||
stride = channels_;
|
||||
for (int n = 0; n < num; ++n) {
|
||||
for (int c = 0; c < channels_; ++c) {
|
||||
TYPE v = TYPE(offset) + TYPE(factor) * buf[stride * n + c];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue