2015-12-14 93 views
1

我在两个单独的类中有两个独立的AudioSampleBuffer对象。这里是被称为TransportBar.h第一类的私有部分:将数据从一个AudioSampleBuffer复制到另一个类中的另一个

private: 
Atomic<int> playState; 
Atomic<int> soloState; 
Atomic<int> muteState; 

unsigned int bufferPosition; 
AudioSampleBuffer masterBuffer; 
static const int bufferSize = 352800; //constant 

,这里是被称为Looper.h部分类的私有部分:

private: 
//Shared data 
Atomic<int> recordState; 
Atomic<int> playState; 

//Audio data 
static const int bufferSize = 352800; //constant 
unsigned int bufferPosition; 
AudioSampleBuffer audioSampleBuffer; 

应用程序I我正在创建4个音轨,录制到audioSampleBuffer。然后我想要一个“主”播放按钮,播放所有这些数据。因此,我需要做的是将数据从audioSampleBuffer复制到masterBuffer。有没有办法做到这一点?

回答

2

AudioSampleBuffer只是typedef对于AudioBuffer<float>,其文档可以找到here。在那里你会看到copyFrom成员函数。这个函数有几个过载,其中一个以AudioBuffer<T>作为源缓冲区。

要访问的AudioSampleBuffer这样你就可以把它复制,必须执行下列操作之一:

  • 设为公开(或如果您在派生类是受保护)
  • 创建getter函数
  • 让其他类的朋友
  • 使用同一类的其他实例访问成员

值得问问自己,这是否也是一个架构问题;这个问题是否可以通过更好的设计完全避免?

+0

干杯,还有makeCopyOf成员函数,看起来可能有用。然而我遇到的问题是两个缓冲区都在单独的.h文件中,所以我无法访问我想从中复制的缓冲区。有什么建议么? – willfo

+0

@willfo我已经更新了答案,这有帮助吗? :) – OMGtechy

+0

这是做到这一点的方法!但是,当我尝试使用masterBuffer输出时,它似乎不起作用。但这是另一个问题。干杯! – willfo

相关问题