Пример #1
0
   virtual void sampleChannels(int x, int y, unsigned char *out)
   {
      const U32 off = (x * mSourceSize + y) * mNumberOfChannels;

      for(S32 i=0; i<getNumberChannels(); i++)
         out[i] = mClamp(mSourceBuffer[off + i] * mScale, 0x0, 0xFF);
   }
AudioSampleBuffer *DiauproMessage::getAudioData(AudioSampleBuffer *buffer) {

    for (int i = 0; i < getNumberChannels(); i++) {
        buffer->copyFrom(i, 0, (float*)((char*)this->data.getData() + getAudioDataOffset()+ (i * getNumberSamples() * sizeof(float) )), getNumberSamples());
    }
    return buffer;
}
void DiauproMessage::getAudioData(OwnedArray<drow::FifoBuffer<float>> *buffers) {
    
    for (int i = 0; i < getNumberChannels(); i++) {
        drow::FifoBuffer<float> *buffer = buffers->getUnchecked(i);
        buffer->writeSamples((float*)((char*)this->data.getData() + getAudioDataOffset()+ (i * getNumberSamples() * sizeof(float) )), getNumberSamples());
        
    }
}
int DiauproMessage::getSampleDataSize() {
    return getNumberSamples() * getNumberChannels() * sizeof(float);
}
size_t DiauproMessage::getStateDataOffset() {
    return getAudioDataOffset() + (getNumberSamples() * getNumberChannels() * sizeof(float)) + this->header.midiDataSize;
}
size_t DiauproMessage::getMidiDataOffset() {
    return getAudioDataOffset() + (getNumberSamples() * getNumberChannels() * sizeof(float)) ;
}