struct CCL::IAudioComponent

Overview

Base interface for an audio component with one or more streams. More…

#include <iaudiocomponent.h>

struct IAudioComponent: public CCL::IComponent
{
    // enums

    enum CapabilityFlags;

    // methods

    virtual CapabilityFlags CCL_API getCapabilities () const = 0;
    virtual tresult CCL_API setStreamLayout (const IAudioStreamLayout& layout) = 0;
    virtual const IAudioStreamLayout&CCL_API getStreamLayout () const = 0;

    virtual tresult CCL_API setStreamActive (
        AudioStreamDirection direction,
        int index,
        tbool active
    ) = 0;

    virtual tresult CCL_API getProcessConfiguration (AudioProcessConfiguration& configuration) const = 0;
    virtual tresult CCL_API setProcessConfiguration (const AudioProcessConfiguration& configuration) = 0;

    virtual tresult CCL_API getLatency (
        int& latencyInSamples,
        AudioStreamDirection direction
    ) const = 0;

    virtual tbool CCL_API isActive () const = 0;
    virtual tresult CCL_API setActive (tbool state) = 0;
    IAudioComponent bool hasKnownStreamLayout () const;
    bool hasMutableStreamLayout () const;
    bool hasStreamActivation () const;
    bool hasKnownLatency () const;
};

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 tresult CCL_API initialize (IUnknown* context = nullptr) = 0;
    virtual tresult CCL_API terminate () = 0;
    virtual tbool CCL_API canTerminate () const = 0;

Detailed Documentation

Base interface for an audio component with one or more streams.

Methods

virtual CapabilityFlags CCL_API getCapabilities () const = 0

Get component capability flags.

virtual tresult CCL_API setStreamLayout (const IAudioStreamLayout& layout) = 0

Set stream layout of this component.

virtual const IAudioStreamLayout&CCL_API getStreamLayout () const = 0

Get stream layout of this component.

virtual tresult CCL_API setStreamActive (
    AudioStreamDirection direction,
    int index,
    tbool active
) = 0

Set activation state of a single stream at given direction/index.

virtual tresult CCL_API getProcessConfiguration (AudioProcessConfiguration& configuration) const = 0

Get current audio process configuration.

virtual tresult CCL_API setProcessConfiguration (const AudioProcessConfiguration& configuration) = 0

Set new audio process configuration.

virtual tresult CCL_API getLatency (
    int& latencyInSamples,
    AudioStreamDirection direction
) const = 0

Get current latency for given direction in audio sample frames.

virtual tbool CCL_API isActive () const = 0

Check if the whole component is active (see setActive ()).

virtual tresult CCL_API setActive (tbool state) = 0

Activate/deactivate the whole component, e.g.

allocating/releasing resources. Not realtime-safe.