struct CCL::IConvertingAudioSink

Overview

Wraps an IAudioSink, converting incoming audio from a different channel count/layout on write(). More…

#include <iaudiosource.h>

struct IConvertingAudioSink: public CCL::IWrappedAudioSink
{
    // methods

    virtual tresult CCL_API setSourceChannels (
        int channelCount,
        SpeakerBitField speakerFormat = SpeakerDef::kEmpty
    ) = 0;

    virtual tresult CCL_API setChannelMixMode (ChannelMixMode mode) = 0;
    virtual ChannelMixMode CCL_API getChannelMixMode () const = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;
    virtual int CCL_API getNumChannels () const = 0;
    virtual SampleRate CCL_API getSampleRate () const = 0;
    virtual TSamples CCL_API getFrameCount () const = 0;
    virtual SpeakerBitField CCL_API getSpeakerFormat () const = 0;
    IAudioContent TSeconds getDuration () const;
    virtual int CCL_API write (const AudioData& data, int sampleFrames) = 0;
    virtual tresult CCL_API setSink (IAudioSink* sink) = 0;
    virtual IAudioSink*CCL_API getSink () const = 0;

Detailed Documentation

Wraps an IAudioSink, converting incoming audio from a different channel count/layout on write().

Methods

virtual tresult CCL_API setSourceChannels (
    int channelCount,
    SpeakerBitField speakerFormat = SpeakerDef::kEmpty
) = 0

Set the number of channels of the audio that will be passed to write(), and optionally its speaker layout (SpeakerDef::kEmpty picks a standard layout for channelCount).

virtual tresult CCL_API setChannelMixMode (ChannelMixMode mode) = 0

Set the mixing algorithm to use when combining channels.

virtual ChannelMixMode CCL_API getChannelMixMode () const = 0

Get the mixing algorithm currently in use.