ADM Elements

AudioProgramme

class adm::AudioProgramme : public std::enable_shared_from_this<AudioProgramme>, private AudioProgrammeBase

Class representation of the audioProgramme ADM element.

ADM Parameter

Parameter Type

Pattern Type

audioProgrammeID

AudioProgrammeId

RequiredParameter

audioProgrammeName

AudioProgrammeName

RequiredParameter

audioProgrammeLanguage

AudioProgrammeLanguage

OptionalParameter

start

Start

DefaultParameter

end

End

OptionalParameter

audioProgrammeLabel

Labels

VectorParameter

loudnessMetadata

LoudnessMetadatas

VectorParameter

maxDuckingDepth

MaxDuckingDepth

OptionalParameter

audioProgrammeReferenceScreen

AudioProgrammeReferenceScreen

OptionalParameter

Note that start has a default time of 0, contrary to BS.2076-2 which does not define a default. isDefault<Start>() should be used in place of of has<Start>().

Public Types

typedef AudioProgrammeTag tag
typedef AudioProgrammeId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioProgramme> copy() const

Copy AudioProgramme.

The actual copy constructor is private to ensure that an AudioProgramme can only be created as a std::shared_ptr. This is not a deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioProgrammeId id)

AudioProgrammeId setter.

void set(AudioProgrammeName name)

AudioProgrammeName setter.

void set(AudioProgrammeLanguage language)

AudioProgrammeLanguage setter.

void set(Start start)

Start setter.

void set(End end)

End setter.

void set(MaxDuckingDepth depth)

MaxDuckingDepth setter.

void set(AudioProgrammeReferenceScreen refScreen)

AudioProgrammeReferenceScreen setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

bool addReference(std::shared_ptr<AudioContent> content)

Add reference to an AudioContent.

template<typename Element>
ElementRange<Element> getReferences()

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

template<typename Element>
ElementRange<const Element> getReferences() const

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

void removeReference(std::shared_ptr<AudioContent> content)

Remove reference to an AudioContent.

template<typename Element>
void clearReferences()

Clear references to Elements template.

  Templated clear method with the ADM parameter type as template argument. Removes all references to the ADM elements with the specified type.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioProgramme> create(AudioProgrammeName name, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioProgramme object can only be created as a std::shared_ptr.

class adm::AudioProgrammeId

Representation of an AudioProgrammeId.

Unnamed Group

bool operator==(const AudioProgrammeId &other) const

Operator overload.

Compares the string representation of the AudioProgrammeId.

bool operator!=(const AudioProgrammeId &other) const
bool operator<(const AudioProgrammeId &other) const

Public Types

typedef AudioProgrammeIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioProgrammeId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

AudioProgrammeId(AudioProgrammeIdValue)
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioProgrammeIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioProgrammeName = detail::NamedType<std::string, AudioProgrammeNameTag>

NamedType for the audioProgrammeName attribute.

using adm::AudioProgrammeLanguage = detail::NamedType<std::string, AudioProgrammeLanguageTag>

NamedType for the language attribute of the audioProgramme element.

using adm::End = detail::NamedType<Time, EndTag>

NamedType for the end attribute.

using adm::MaxDuckingDepth = detail::NamedType<double, MaxDuckingDepthTag, detail::RangeValidator<-62, 0>>

NamedType for the maxDuckingDepth attribute element.

Valid values are in the range [-62, 0]

class adm::AudioProgrammeReferenceScreen

Public Types

typedef AudioProgrammeReferenceScreenTag tag

Public Functions

inline AudioProgrammeReferenceScreen()
inline void print(std::ostream &os) const

Print overview to ostream.

AudioContent

class adm::AudioContent : public std::enable_shared_from_this<AudioContent>, private AudioContentBase

Class representation of the audioContent ADM element.

ADM Parameter

Parameter Type

Pattern Type

audioContentID

AudioContentId

RequiredParameter

audioContentName

AudioContentName

RequiredParameter

audioContentLanguage

AudioContentLanguage

OptionalParameter

audioContentLabel

Labels

VectorParameter

loudnessMetadata

LoudnessMetadatas

VectorParameter

  • dialogue

  • nonDialogueContentKind

  • dialogueContentKind

  • mixedContentKind

custom

For the behaviour of dialogue elements, see set(DialogueId).

Unnamed Group

void set(DialogueId kind)

Dialogue setter.

Note

Setting one of the dialogue kinds always ensures consistency. If DialogueId is set the corresponding ContentKind will be set to undefined. If one of the ContentKinds is set DialogueId will be set accordingly.

void set(ContentKind kind)
void set(NonDialogueContentKind kind)
void set(DialogueContentKind kind)
void set(MixedContentKind kind)

Public Types

typedef AudioContentTag tag
typedef AudioContentId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioContent> copy() const

Copy AudioContent.

The actual copy constructor is private to ensure that an AudioContent can only be created as a std::shared_ptr. This is not a deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the ADM parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioContentId id)

AudioContentId setter.

void set(AudioContentName name)

AudioContentName setter.

void set(AudioContentLanguage language)

AudioContentLanguage setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

Note

Unsetting DialogueId automatically unsets the corresponding ContentKind. Unsetting one of the ContentKinds automatically unsets DialogueId.

bool addReference(std::shared_ptr<AudioObject> object)

Add reference to an AudioObject.

template<typename Element>
ElementRange<const Element> getReferences() const

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the adm elements with the specified type.

template<typename Element>
ElementRange<Element> getReferences()

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the adm elements with the specified type.

void removeReference(std::shared_ptr<AudioObject> object)

Remove reference to an AudioObject.

template<typename Element>
void clearReferences()

Clear references to Elements template.

  Templated clear method with the ADM parameter type as template argument. Removes all references to the adm elements with the specified type.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioContent> create(AudioContentName name, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioContent object can only be created as a std::shared_ptr.

class adm::AudioContentId

Representation of an AudioContentId.

Unnamed Group

bool operator==(const AudioContentId &other) const

Operator overload.

Compares the string representation of the AudioContentId.

bool operator!=(const AudioContentId &other) const
bool operator<(const AudioContentId &other) const

Public Types

typedef AudioContentIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioContentId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

AudioContentId(AudioContentIdValue)
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioContentIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioContentName = detail::NamedType<std::string, AudioContentNameTag>

NamedType for the audioContentName attribute.

using adm::AudioContentLanguage = detail::NamedType<std::string, AudioContentLanguageTag>

NamedType for the language attribute of the audioContent element.

using adm::DialogueId = detail::NamedType<unsigned int, DialogueIdTag, detail::RangeValidator<0, 2>>

NamedType for the dialogueId attribute.

Valid values are in the range [0, 2]

namespace adm::Dialogue

DialogueId definitions.

Variables

const DialogueId NON_DIALOGUE = DialogueId(0)
const DialogueId DIALOGUE = DialogueId(1)

DialogueId for music.

const DialogueId MIXED = DialogueId(2)

DialogueId for effects.

typedef boost::variant<NonDialogueContentKind, DialogueContentKind, MixedContentKind> adm::ContentKind

Type to hold a NonDialogueContentKind, DialogueContentKind or MixedContentKind.

using adm::NonDialogueContentKind = detail::NamedType<unsigned int, NonDialogueContentKindTag, detail::RangeValidator<0, 2>>

NamedType for the nonDialogueContentKind type.

Valid values are in the range [0, 2]

namespace adm::NonDialogueContent

NonDialogueContentKind definitions.

Variables

const NonDialogueContentKind UNDEFINED = NonDialogueContentKind(0)
const NonDialogueContentKind MUSIC = NonDialogueContentKind(1)

NonDialogueContentKind for music.

const NonDialogueContentKind EFFECT = NonDialogueContentKind(2)

NonDialogueContentKind for effects.

using adm::DialogueContentKind = detail::NamedType<unsigned int, DialogueContentKindTag, detail::RangeValidator<0, 6>>

NamedType for the dialogueContentKind type.

Valid values are in the range [0, 6]

namespace adm::DialogueContent

DialogueContentKind definitions.

Variables

const DialogueContentKind UNDEFINED = DialogueContentKind(0)
const DialogueContentKind DIALOGUE = DialogueContentKind(1)

DialogueContentKind for (storyline) dialogue.

const DialogueContentKind VOICEOVER = DialogueContentKind(2)

DialogueContentKind for voiceover.

const DialogueContentKind SPOKEN_SUBTITLE = DialogueContentKind(3)

DialogueContentKind for spoken subtitle.

const DialogueContentKind AUDIO_DESCRIPTION = DialogueContentKind(4)

DialogueContentKind for audio description/visually impaired.

const DialogueContentKind COMMENTARY = DialogueContentKind(5)

DialogueContentKind for commentary.

const DialogueContentKind EMERGENCY = DialogueContentKind(6)

DialogueContentKind for emergency.

using adm::MixedContentKind = detail::NamedType<unsigned int, MixedContentKindTag, detail::RangeValidator<0, 3>>

NamedType for the mixedContentKind type.

Valid values are in the range [0, 3]

namespace adm::MixedContent

MixedContent definitions.

Variables

const MixedContentKind UNDEFINED = MixedContentKind(0)
const MixedContentKind COMPLETE_MAIN = MixedContentKind(1)

MixedContentKind for complete main.

const MixedContentKind MIXED = MixedContentKind(2)

MixedContentKind for mixed.

const MixedContentKind HEARING_IMPAIRED = MixedContentKind(3)

MixedContentKind for hearing impaired.

AudioObject

class adm::AudioObject : public std::enable_shared_from_this<AudioObject>, private AudioObjectBase

Class representation of the audioObject ADM element.

ADM Parameter

Parameter Type

Pattern Type

audioObjectID

AudioObjectId

RequiredParameter

audioObjectName

AudioObjectName

RequiredParameter

start

Start

DefaultParameter

duration

Duration

OptionalParameter

dialogue

DialogueId

OptionalParameter

importance

Importance

OptionalParameter

interact

Interact

OptionalParameter

disableDucking

DisableDucking

OptionalParameter

audioObjectLabel

Labels

VectorParameter

audioComplementaryObjectGroupLabel

ACOGL

VectorParameter

audioObjectInteraction

AudioObjectInteraction

OptionalParameter

gain

Gain

DefaultParameter

headLocked

HeadLocked

DefaultParameter

positionOffset

PositionOffset

mute

Mute

DefaultParameter

Note that:

  • dialogue is defined in BS.2076-2 as having a default of 2.

  • importance is defined in BS.2076-2 as having a default of 10.

  • interact is defined in BS.2076-2 as having a default of 0 (false).

  • disableDucking is defined in BS.2076-2 as having a default of 0 (false).

Public Types

typedef AudioObjectTag tag
typedef AudioObjectId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioObject> copy() const

Copy AudioObject.

The actual copy constructor is private to ensure that an AudioObject can only be created as a std::shared_ptr. This is not a deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioObjectId id)

AudioObjectId setter.

void set(AudioObjectName name)

AudioObjectName setter.

void set(Start start)

Start setter.

void set(Duration duration)

Duration setter.

void set(DialogueId id)

DialogueId setter.

void set(Importance importance)

Importance setter.

void set(Interact interact)

Interact setter.

void set(DisableDucking disableDucking)

DisableDucking setter.

void set(AudioObjectInteraction objectInteraction)

AudioObjectInteraction setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

bool addReference(std::shared_ptr<AudioObject> object)

Add reference to another AudioObject.

bool addReference(std::shared_ptr<AudioPackFormat> packFormat)

Add reference to an AudioPackFormat.

bool addReference(std::shared_ptr<AudioTrackUid> trackUid)

Add reference to an AudioTrackUid.

template<typename Element>
ElementRange<const Element> getReferences() const

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

template<typename Element>
ElementRange<Element> getReferences()

Get references to ADM elements template.

  Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

void removeReference(std::shared_ptr<AudioObject> object)

Remove reference to an AudioObject.

void removeReference(std::shared_ptr<AudioPackFormat> packFormat)

Remove reference to an AudioPackFormat.

void removeReference(std::shared_ptr<AudioTrackUid> trackUid)

Remove reference to an AudioTrackUid.

template<typename Element>
void clearReferences()

Clear references to Elements template.

  Templated clear method with the ADM parameter type as template argument. Removes all references to the ADM elements with the specified type.

bool addComplementary(std::shared_ptr<AudioObject> object)

Add reference to a complementary AudioObject.

const std::vector<std::shared_ptr<AudioObject>> &getComplementaryObjects() const

Get references to complementary AudioObjects.

void removeComplementary(const std::shared_ptr<AudioObject> &object)

Remove reference to a complementary AudioObject.

void clearComplementaryObjects()

Remove all references to complementary AudioObjects.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioObject> create(AudioObjectName name, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioObject object can only be created as a std::shared_ptr.

class adm::AudioObjectId

Representation of an AudioObjectId.

Unnamed Group

bool operator==(const AudioObjectId &other) const

Operator overload.

Compares the string representation of the AudioObjectId.

bool operator!=(const AudioObjectId &other) const
bool operator<(const AudioObjectId &other) const

Public Types

typedef AudioObjectIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioObjectId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

AudioObjectId(AudioObjectIdValue value)
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioObjectIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioObjectName = detail::NamedType<std::string, AudioObjectNameTag>

NamedType for the audioObjectName attribute.

using adm::Interact = detail::NamedType<bool, InteractTag>

NamedType for the interact attribute.

using adm::DisableDucking = detail::NamedType<bool, DisableDuckingTag>

NamedType for the disableDucking attribute.

class adm::AudioObjectInteraction

ADM parameter class to specify a channel lock.

Public Types

typedef AudioObjectInteractionTag tag

Public Functions

template<typename ...Parameters>
explicit AudioObjectInteraction(OnOffInteract onOffInteract, Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(OnOffInteract)

OnOffInteract setter.

void set(GainInteract)

GainInteract setter.

void set(PositionInteract)

PositionInteract setter.

void set(GainInteractionRange)

GainInteractionRange setter.

void set(PositionInteractionRange)

PositionInteractionRange setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::OnOffInteract = detail::NamedType<bool, OnOffInteractTag>

NamedType for channelLockFlag parameter.

using adm::GainInteract = detail::NamedType<bool, GainInteractTag>

NamedType for channelLockFlag parameter.

using adm::PositionInteract = detail::NamedType<bool, PositionInteractTag>

NamedType for channelLockFlag parameter.

class adm::GainInteractionRange

ADM parameter class to specify a gainInteractionRange.

Public Types

typedef GainInteractionRangeTag tag

Public Functions

template<typename ...Parameters>
explicit GainInteractionRange(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(GainInteractionMin)

GainInteractionMin setter.

void set(GainInteractionMax)

GainInteractionMax setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

class adm::PositionInteractionRange

ADM parameter class to specify a positionInteractionRange.

Public Types

typedef PositionInteractionRangeTag tag

Public Functions

template<typename ...Parameters>
explicit PositionInteractionRange(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AzimuthInteractionMin)

AzimuthInteractionMin setter.

void set(AzimuthInteractionMax)

AzimuthInteractionMax setter.

void set(ElevationInteractionMin)

ElevationInteractionMin setter.

void set(ElevationInteractionMax)

ElevationInteractionMax setter.

void set(DistanceInteractionMin)

DistanceInteractionMin setter.

void set(DistanceInteractionMax)

DistanceInteractionMax setter.

void set(XInteractionMin)

XInteractionMin setter.

void set(XInteractionMax)

XInteractionMax setter.

void set(YInteractionMin)

YInteractionMin setter.

void set(YInteractionMax)

YInteractionMax setter.

void set(ZInteractionMin)

ZInteractionMin setter.

void set(ZInteractionMax)

ZInteractionMax setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioComplementaryObjectGroupLabel = detail::NamedType<Label, AudioComplementaryObjectGroupLabelTag>
using adm::AudioComplementaryObjectGroupLabels = std::vector<AudioComplementaryObjectGroupLabel>
using adm::AzimuthOffset = detail::NamedType<float, AzimuthOffsetTag, detail::RangeValidator<-360, 360>>

NamedType for the azimuth parameter of the positionOffset element.

Valid values are in the range [-180, 180]

using adm::ElevationOffset = detail::NamedType<float, ElevationOffsetTag, detail::RangeValidator<-180, 180>>

NamedType for the elevation parameter of the positionOffset element.

Valid values are in the range [-90, 90]

using adm::DistanceOffset = detail::NamedType<float, DistanceOffsetTag>

NamedType for the distance parameter of the positionOffset offset element.

Valid values are in the range [-1, 1]

class adm::SphericalPositionOffset : private SphericalPositionOffsetBase, private detail::AddWrapperMethods<SphericalPositionOffset>

ADM parameter class to specify a spherical position offset.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

positionOffset, coordinate=”azimuth”

AzimuthOffset

RequiredParameter

positionOffset, coordinate=”elevation”

ElevationOffset

RequiredParameter

positionOffset, coordinate=”distance”

DistanceOffset

RequiredParameter

Public Types

typedef SphericalPositionOffsetTag tag

Public Functions

template<typename ...Parameters>
explicit SphericalPositionOffset(Parameters&&... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

void print(std::ostream &os) const

Print overview to ostream.

Friends

friend class detail::AddWrapperMethods< SphericalPositionOffset >
using adm::XOffset = detail::NamedType<float, XOffsetTag>

NamedType for the X parameter of the positionOffset element.

using adm::YOffset = detail::NamedType<float, YOffsetTag>

NamedType for the Y parameter of the positionOffset element.

using adm::ZOffset = detail::NamedType<float, ZOffsetTag>

NamedType for the Z parameter of the positionOffset element.

class adm::CartesianPositionOffset : private CartesianPositionOffsetBase, private detail::AddWrapperMethods<CartesianPositionOffset>

ADM parameter class to specify a cartesian position offset.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

positionOffset, coordinate=”X”

XOffset

RequiredParameter

positionOffset, coordinate=”Y”

YOffset

RequiredParameter

positionOffset, coordinate=”Z”

ZOffset

RequiredParameter

Public Types

typedef CartesianPositionOffsetTag tag

Public Functions

template<typename ...Parameters>
explicit CartesianPositionOffset(Parameters&&... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

void print(std::ostream &os) const

Print overview to ostream.

Friends

friend class detail::AddWrapperMethods< CartesianPositionOffset >
typedef boost::variant<SphericalPositionOffset, CartesianPositionOffset> adm::PositionOffset

Type to hold a SphericalPositionOffset or CartesianPositionOffset.

using adm::Mute = detail::NamedType<bool, MuteTag>

NamedType for the mute attribute.

AudioTrackUid

class adm::AudioTrackUid : public std::enable_shared_from_this<AudioTrackUid>

Class representation of the audioTrackUID ADM element.

Warning

This class has unsupported parameters:

  • audioMXFLookUp

Public Types

typedef AudioTrackUidTag tag
typedef AudioTrackUidId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioTrackUid> copy() const

Copy AudioTrackUid.

The actual copy constructor is private to ensure that an AudioTrackUid can only be created as a std::shared_ptr. This is not a deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioTrackUidId id)

AudioTrackUidId setter.

void set(SampleRate sampleRate)

SampleRate setter.

void set(BitDepth bitDepth)

BitDepth setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void setReference(std::shared_ptr<AudioTrackFormat> trackFormat)

Set reference to an AudioTrackFormat.

  A pending unresolved reference will be removed.

void setReference(std::shared_ptr<AudioChannelFormat> channelFormat)

Set reference to an AudioChannelFormat.

  A pending unresolved reference will be removed.

void setReference(std::shared_ptr<AudioPackFormat> packFormat)

Set reference to an AudioPackFormat.

  A pending unresolved reference will be removed.

template<typename Element>
std::shared_ptr<const Element> getReference() const
template<typename Element>
std::shared_ptr<Element> getReference()

Get reference to ADM element template.

  Templated get method with the ADM parameter type as template argument. Returns the reference to the ADM element with the specified type. If it is not set a nullptr will be returned.

template<typename Element>
void removeReference()

Remove reference to an Element template.

  Templated remove method with the ADM parameter type as template argument. Removes the reference to the ADM elements with the specified type.

bool isSilent() const

true if this element has an ID of 0

These elements do not appear in adm XML, but are referenced from audioObjects to indicate that a channel has no corresponding audio track. If this is true, no parameters or references may be set and getReference will return null pointers.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioTrackUid> create(Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioTrackUid object can only be created as a std::shared_ptr.

static std::shared_ptr<AudioTrackUid> getSilent(std::shared_ptr<Document> &document)

get a silent AudioTrackUid which can be referenced from AudioObjects

this will get an existing silent track from the document, or create a new one of none exists

static std::shared_ptr<AudioTrackUid> getSilent()

get a silent AudioTrackUid which can be referenced from AudioObjects

using this can lead to having multiple silent AudioTrackUids in a Document

class adm::AudioTrackUidId

Representation of an AudioTrackUidId.

Unnamed Group

bool operator==(const AudioTrackUidId &other) const

Operator overload.

Compares the string representation of the AudioTrackUidId.

bool operator!=(const AudioTrackUidId &other) const
bool operator<(const AudioTrackUidId &other) const

Public Types

typedef AudioTrackUidIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioTrackUidId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

AudioTrackUidId(AudioTrackUidIdValue)
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioTrackUidIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::SampleRate = detail::NamedType<unsigned int, SampleRateTag>

NamedType for the sampleRate element.

using adm::BitDepth = detail::NamedType<unsigned int, BitDepthTag>

NamedType for the bitDepth element.

AudioPackFormat

class adm::AudioPackFormat : public std::enable_shared_from_this<AudioPackFormat>

Class representation of the audioPackFormat ADM element.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioPackFormatID

AudioPackFormatId

RequiredParameter

audioPackFormatName

AudioPackFormatName

RequiredParameter

importance

Importance

OptionalParameter

absoluteDistance

AbsoluteDistance

OptionalParameter

  • typeDefinition

  • typeLabel

TypeDescriptor

RequiredParameter

Note that TypeDescriptor can only be set in the constructor.

Subclassed by adm::AudioPackFormatHoa

Public Types

typedef AudioPackFormatTag tag
typedef AudioPackFormatId id_type

Type that holds the id for this element;.

Public Functions

virtual ~AudioPackFormat() = default
std::shared_ptr<AudioPackFormat> copy() const

Copy AudioPackFormat.

The actual copy constructor is private to ensure that an AudioPackFormat can only be created as a std::shared_ptr. This is not a deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioPackFormatId id)

AudioPackFormatId setter.

void set(AudioPackFormatName name)

AudioPackFormatName setter.

void set(Importance importance)

Importance setter.

void set(AbsoluteDistance distance)

AbsoluteDistance setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

bool addReference(std::shared_ptr<AudioChannelFormat> channelFormat)

Add reference to an AudioChannelFormat.

bool addReference(std::shared_ptr<AudioPackFormat> packFormat)

Add reference to another AudioPackFormat.

template<typename Element>
ElementRange<const Element> getReferences() const

Get references to ADM elements template.

Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

template<typename Element>
ElementRange<Element> getReferences()

Get references to ADM elements template.

Templated get method with the ADM parameter type as template argument. Returns a set of all references to the ADM elements with the specified type.

void removeReference(std::shared_ptr<AudioChannelFormat> channelFormat)

Remove reference to an AudioChannelFormat.

void removeReference(std::shared_ptr<AudioPackFormat> packFormat)

Remove reference to an AudioPackFormat.

template<typename Element>
void clearReferences()

Clear references to Elements template.

Templated clear method with the ADM parameter type as template argument. Removes all references to the ADM elements with the specified type.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioPackFormat> create(AudioPackFormatName name, TypeDescriptor channelType, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioPackFormat object can only be created as a std::shared_ptr.

class adm::AudioPackFormatHoa : public adm::AudioPackFormat, private AudioPackFormatHoaBase

Class representation of the audioPackFormat ADM element for HOA.

Supported parameters are those from AudioPackFormat, as well as:

ADM Parameter

Parameter Type

Pattern Type

normalization

Normalization

DefaultParameter

nfcRefDist

NfcRefDist

DefaultParameter

screenRef

ScreenRef

DefaultParameter

Public Functions

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioPackFormatHoa> create(AudioPackFormatName name, Parameters... optionalNamedArgs)
class adm::AudioPackFormatId

Representation of an AudioPackFormatId.

Unnamed Group

bool operator==(const AudioPackFormatId &other) const

Operator overload.

Compares the string representation of the AudioPackFormatId.

bool operator!=(const AudioPackFormatId &other) const
bool operator<(const AudioPackFormatId &other) const

Public Types

typedef AudioPackFormatIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioPackFormatId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(TypeDescriptor channelType)

Set channel type.

void set(AudioPackFormatIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioPackFormatName = detail::NamedType<std::string, AudioPackFormatNameTag>

NamedType for the audioPackFormatName attribute.

using adm::AbsoluteDistance = detail::NamedType<float, AbsoluteDistanceTag>

NamedType for the absoluteDistance attribute.

AudioChannelFormat

class adm::AudioChannelFormat : public std::enable_shared_from_this<AudioChannelFormat>

Class representation of the audioChannelFormat ADM element.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioChannelFormatID

AudioChannelFormatId

RequiredParameter

audioChannelFormatName

AudioChannelFormatName

RequiredParameter

  • typeDefinition

  • typeLabel

TypeDescriptor

RequiredParameter

frequency

Frequency

OptionalParameter

Note that TypeDescriptor can only be set in the constructor.

Public Types

typedef AudioChannelFormatTag tag
typedef AudioChannelFormatId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioChannelFormat> copy() const

Copy AudioChannelFormat.

The actual copy constructor is private to ensure that an AudioChannelFormat can only be created as a std::shared_ptr. Added AudioBlockFormats will be copied too.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioChannelFormatId id)

AudioChannelFormatId setter.

void set(AudioChannelFormatName name)

AudioChannelFormatName setter.

void set(Frequency frequency)

Frequency setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void add(AudioBlockFormatDirectSpeakers blockFormat)

Add AudioBlockFormats.

The AudioBlockFormat has to be of the correct type. Otherwise an exception is thrown.

void add(AudioBlockFormatMatrix blockFormat)
void add(AudioBlockFormatObjects blockFormat)
void add(AudioBlockFormatHoa blockFormat)
void add(AudioBlockFormatBinaural blockFormat)
template<typename AudioBlockFormat>
BlockFormatsConstRange<AudioBlockFormat> getElements() const

AudioBlockFormat elements getter template.

Templated getter with the wanted audioBlockFormat type as template argument.

Returns

ContainerProxy containing all audioBlockFormats of the given type.

template<typename AudioBlockFormat>
BlockFormatsRange<AudioBlockFormat> getElements()

AudioBlockFormat elements getter template.

Templated getter with the wanted audioBlockFormat type as template argument.

Returns

ContainerProxy containing all audioBlockFormats of the given type.

void clearAudioBlockFormats()

Clear AudioBlockFormats.

Removes all audioBlockFormats from the AudioChannelFormat

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioChannelFormat> create(AudioChannelFormatName name, TypeDescriptor channelType, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioChannelFormat object can only be created as a std::shared_ptr.

class adm::AudioChannelFormatId

Representation of an AudioChannelFormatId.

Unnamed Group

bool operator==(const AudioChannelFormatId &other) const

Operator overload.

Compares the string representation of the AudioChannelFormatId.

bool operator!=(const AudioChannelFormatId &other) const
bool operator<(const AudioChannelFormatId &other) const

Public Types

typedef AudioChannelFormatIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioChannelFormatId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(TypeDescriptor channelType)

Set channel type.

void set(AudioChannelFormatIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioChannelFormatName = detail::NamedType<std::string, AudioChannelFormatNameTag>

NamedType for the audioChannelFormatName attribute.

class adm::Frequency

ADM parameter class to specify a frequency element in an audioChannelFormat.

Public Types

typedef FrequencyTag tag

Public Functions

template<typename ...Parameters>
explicit Frequency(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(HighPass frequency)

HighPass setter.

void set(LowPass frequency)

LowPass setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::LowPass = detail::NamedType<float, LowPassTag, detail::MinValidator<0>>

NamedType for the low pass frequency.

Valid values are at least 0

using adm::HighPass = detail::NamedType<float, HighPassTag, detail::MinValidator<0>>

NamedType for the high pass frequency.

Valid values are at least 0

AudioStreamFormat

class adm::AudioStreamFormat : public std::enable_shared_from_this<AudioStreamFormat>

Class representation of the audioStreamFormat ADM element.

Notes on std::weak_ptr usage

Please note that the references to AudioTrackFormats are represented using std::weak_ptr. Consequently, the method to retrieve those references is AudioStreamFormat::getAudioTrackFormatReferences() to make the difference to other getReferences<Element>() explicit.

The reason for using std::weak_ptr in the first place is because there’s a cyclic reference between AudioStreamFormat and AudioTrackFormat. As it turns out, using the std::weak_ptr for AudioTrackFormat is much more convenient than the other way around. This is mostly due to the fact that otherwise there’s no direct connection from e.g. AudioTrackUid to AudioStreamFormat, which would cause the latter to be removed if we would use the std::weak_ptr connection the other way around.

Furthermore, from the code we wrote so far, we can see that the AudioTrackFormat -> AudioStreamFormat connection is used quite often, while the AudioStreamFormat -> AudioTrackFormat has been virtually unused so far. Thus it was the obvious choice to make the first use case more convenient for users of the library.

Public Types

enum ReferenceSyncOption

Options to change AudioStreamFormat/AudioTrackFormat reference sync behaviour.

These options are to be used with setReference and removeReference and controls if this AudioTrackFormat is automatically added/removed as a reference to the AudioStreamFormat if it is referenced by this.

The default (and only) behaviour is to keep AudioTrackFormat and AudioStreamFormat in sync.

Future applications might want to use a more relaxed policy by providing (and implementing, and testing!) other options.

Values:

enumerator sync_with_track_format

commit all changes to AudioStreamFormat

typedef AudioStreamFormatTag tag
typedef AudioStreamFormatId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioStreamFormat> copy() const

Copy AudioStreamFormat.

The actual copy constructor is private to ensure that an AudioStreamFormat can only be created as a std::shared_ptr. This is not deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioStreamFormatId id)

AudioStreamFormatId setter.

void set(AudioStreamFormatName name)

AudioStreamFormatName setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void setReference(std::shared_ptr<AudioChannelFormat> channelFormat)

Set reference to an AudioChannelFormat.

  A pending unresolved reference will be removed.

void setReference(std::shared_ptr<AudioPackFormat> packFormat)

Set reference to an AudioPackFormat.

  A pending unresolved reference will be removed.

bool addReference(std::weak_ptr<AudioTrackFormat> trackFormat, ReferenceSyncOption sync = ReferenceSyncOption::sync_with_track_format)

Add reference to an AudioTrackFormat.

Parameters
  • trackFormat – which should be added.

  • sync – controls if this will be automatically added to trackFormat as a reference as well.

template<typename Element>
std::shared_ptr<const Element> getReference() const

Get reference to ADM element template.

  Templated get method with the ADM parameter type as template argument. Returns the reference to the ADM element with the specified type. If it is not set a nullptr will be returned.

template<typename Element>
std::shared_ptr<Element> getReference()

Get reference to ADM element template.

  Templated get method with the ADM parameter type as template argument. Returns the reference to the ADM element with the specified type. If it is not set a nullptr will be returned.

ElementWeakRange<const AudioTrackFormat> getAudioTrackFormatReferences() const

Get references to AudioTrackFormats.

  Returns a range of std::weak_ptr<const AudioTrackFormats>.

Note

Please read the class documentation of adm::AudioStreamFormat for the rationale behind using std::weak_ptr.

ElementWeakRange<AudioTrackFormat> getAudioTrackFormatReferences()

Get references to AudioTrackFormats.

  Returns a range of std::weak_ptr<AudioTrackFormats>.

Note

Please read the class documentation of adm::AudioStreamFormat for the rationale behind using std::weak_ptr.

void removeReference(std::weak_ptr<AudioTrackFormat> trackFormat, ReferenceSyncOption sync = ReferenceSyncOption::sync_with_track_format)

Remove reference to an AudioTrackFormat.

Parameters
  • trackFormat – reference which should be removed.

  • sync – controls if this will be automatically added to trackFormat as a reference as well.

template<typename Element>
void removeReference()

Remove reference to an Element template.

  Templated remove method with the ADM parameter type as template argument. Removes the reference to the ADM elements with the specified type.

template<typename Element>
void clearReferences()

Clear references to Elements template.

  Templated clear method with the ADM parameter type as template argument. Removes all references to the ADM elements with the specified type.

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioStreamFormat> create(AudioStreamFormatName name, FormatDescriptor format, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioStreamFormat object can only be created as a std::shared_ptr.

class adm::AudioStreamFormatId

Representation of an AudioStreamFormatId.

Unnamed Group

bool operator==(const AudioStreamFormatId &other) const

Operator overload.

Compares the string representation of the AudioStreamFormatId.

bool operator!=(const AudioStreamFormatId &other) const
bool operator<(const AudioStreamFormatId &other) const

Public Types

typedef AudioStreamFormatIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioStreamFormatId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(TypeDescriptor channelType)

Set channel type.

void set(AudioStreamFormatIdValue value)

Set value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioStreamFormatName = detail::NamedType<std::string, AudioStreamFormatNameTag>

NamedType for the audioStreamFormatName attribute.

AudioTrackFormat

class adm::AudioTrackFormat : public std::enable_shared_from_this<AudioTrackFormat>

Class representation of the audioTrackFormat ADM element.

Public Types

enum ReferenceSyncOption

Options to change AudioStreamFormat/AudioTrackFormat reference sync behaviour.

These options are to be used with setReference and removeReference and controls if this AudioTrackFormat is automatically added/removed as a reference to the AudioStreamFormat if it is referenced by this.

The default (and only) behaviour is to keep AudioTrackFormat and AudioStreamFormat in sync.

Future applications might want to use a more relaxed policy by providing (and implementing, and testing!) other options.

Values:

enumerator sync_with_stream_format

commit all changes to AudioStreamFormat

typedef AudioTrackFormatTag tag
typedef AudioTrackFormatId id_type

Type that holds the id for this element;.

Public Functions

std::shared_ptr<AudioTrackFormat> copy() const

Copy AudioTrackFormat.

The actual copy constructor is private to ensure that an AudioTrackFormat can only be created as a std::shared_ptr. This is not deep copy! All referenced objects will be disconnected.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioTrackFormatId id)

AudioTrackFormatId setter.

void set(AudioTrackFormatName name)

AudioTrackFormatName setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void setReference(std::shared_ptr<AudioStreamFormat> streamFormat, ReferenceSyncOption sync = ReferenceSyncOption::sync_with_stream_format)

Set reference to an AudioStreamFormat.

  A pending unresolved reference will be removed.

Parameters
  • streamFormat – which should be referenced.

  • sync – controls if this will be automatically added to streamFormat as a reference as well.

template<typename Element>
std::shared_ptr<const Element> getReference() const

Get reference to ADM element template.

  Templated get method with the ADM parameter type as template argument. Returns the reference to the ADM element with the specified type. If it is not set a nullptr will be returned.

template<typename Element>
std::shared_ptr<Element> getReference()

Get reference to ADM element template.

  Templated get method with the ADM parameter type as template argument. Returns the reference to the ADM element with the specified type. If it is not set a nullptr will be returned.

template<typename Element>
void removeReference(ReferenceSyncOption sync = ReferenceSyncOption::sync_with_stream_format)

Remove reference to an Element template.

  Templated remove method with the ADM parameter type as template argument. Removes the reference to the ADM elements with the specified type.

Parameters

sync – controls if any reference to this will be automatically removed from any referenced streamFormat as well, if is . For other Element types (which do not exist), this option is ignored does nothing

void print(std::ostream &os) const

Print overview to ostream.

const std::weak_ptr<Document> &getParent() const

Get adm::Document this element belongs to.

Public Static Functions

template<typename ...Parameters>
static std::shared_ptr<AudioTrackFormat> create(AudioTrackFormatName name, FormatDescriptor format, Parameters... optionalNamedArgs)

Static create function template.

Templated static create function which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters. The actual constructor is private. This way it is ensured, that an AudioTrackFormat object can only be created as a std::shared_ptr.

class adm::AudioTrackFormatId

Representation of an AudioTrackFormatId.

Unnamed Group

bool operator==(const AudioTrackFormatId &other) const

Operator overload.

Compares the string representation of the AudioTrackFormatId.

bool operator!=(const AudioTrackFormatId &other) const
bool operator<(const AudioTrackFormatId &other) const

Public Types

typedef AudioTrackFormatIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioTrackFormatId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(TypeDescriptor channelType)

Set channel type.

void set(AudioTrackFormatIdValue value)

Set value.

void set(AudioTrackFormatIdCounter counter)

Set counter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::AudioTrackFormatName = detail::NamedType<std::string, AudioTrackFormatNameTag>

NamedType for the audioTrackFormatName attribute.

AudioBlockFormat

As the audioBlockFormat ADM elements are quite different for each typeDefinition there are five different AudioBlockFormat classes.

Warning

The Matrix typeDefinition is not completely supported yet.

DirectSpeakers

class adm::AudioBlockFormatDirectSpeakers : private AudioBlockFormatDirectSpeakersBase

Class representation for ADM element audioBlockFormat if audioChannelFormat.typeDefinition == “DirectSpeakers”.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioBlockFormatId

AudioBlockFormatId

RequiredParameter

rtime

Rtime

DefaultParameter

duration

Duration

OptionalParameter

position

VariantParameter

RequiredParameter

gain

Gain

DefaultParameter

importance

Importance

DefaultParameter

headLocked

HeadLocked

DefaultParameter

headphoneVirtualise

HeadphoneVirtualise

DefaultParameter

speakerLabel

SpeakerLabels

VectorParameter

Warning

not all methods are implemented for speakerLabel

Public Types

typedef AudioBlockFormatDirectSpeakersTag tag

Public Functions

template<typename ...Parameters>
explicit AudioBlockFormatDirectSpeakers(Parameters... optionalNamedArgs)
AudioBlockFormatDirectSpeakers(const AudioBlockFormatDirectSpeakers&) = default
AudioBlockFormatDirectSpeakers(AudioBlockFormatDirectSpeakers&&) = default
AudioBlockFormatDirectSpeakers &operator=(const AudioBlockFormatDirectSpeakers&) = default
AudioBlockFormatDirectSpeakers &operator=(AudioBlockFormatDirectSpeakers&&) = default
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

bool isDefault(detail::ParameterTraits<Rtime>::tag) const
void set(AudioBlockFormatId id)

AudioBlockFormatId setter.

void set(Rtime rtime)

Rtime setter.

void set(Duration duration)

Duration setter.

void set(CartesianSpeakerPosition speakerPosition)

CartesianSpeakerPosition setter.

void set(SphericalSpeakerPosition speakerPosition)

SphericalSpeakerPosition setter.

void set(SpeakerPosition speakerPosition)

SpeakerPosition setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

bool add(SpeakerLabel label)

Add a SpeakerLabel.

void remove(const SpeakerLabel &label)

remove a SpeakerLabel

using adm::SpeakerLabel = detail::NamedType<std::string, SpeakerLabelTag>

NamedType for a speaker label.

using adm::SpeakerLabels = std::vector<SpeakerLabel>

NamedType for all speaker labels of an AudioBlockFormat.

using adm::SpeakerPosition = boost::variant<SphericalSpeakerPosition, CartesianSpeakerPosition>

NamedType for speaker position in an AudioBlockFormat.

class adm::CartesianSpeakerPosition

ADM parameter class to specify a cartesian speaker position.

Public Types

typedef CartesianSpeakerPositionTag tag

Public Functions

template<typename ...Parameters>
explicit CartesianSpeakerPosition(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(X x)

X setter.

void set(XMin xMin)

XMin setter.

void set(XMax xMax)

XMax setter.

void set(Y y)

Y setter.

void set(YMin yMin)

Y minimum setter.

void set(YMax yMax)

YMax setter.

void set(Z z)

Z setter.

void set(ZMin zMin)

ZMin setter.

void set(ZMax zMax)

ZMax setter.

void set(ScreenEdgeLock screenEdgeLock)

ScreenEdgeLock setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

class adm::SphericalSpeakerPosition

ADM parameter class to specify a spherical speaker position.

Public Types

typedef SphericalSpeakerPositionTag tag

Public Functions

template<typename ...Parameters>
explicit SphericalSpeakerPosition(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(Azimuth azimuth)

Azimuth setter.

void set(AzimuthMin azimuthMin)

AzimuthMin setter.

void set(AzimuthMax azimuthMax)

AzimuthMax setter.

void set(Elevation elevation)

Elevation setter.

void set(ElevationMin elevationMin)

Elevation minimum setter.

void set(ElevationMax elevationMax)

ElevationMax setter.

void set(Distance distance)

Distance setter.

void set(DistanceMin distanceMin)

DistanceMin setter.

void set(DistanceMax distanceMax)

DistanceMax setter.

void set(ScreenEdgeLock screenEdgeLock)

ScreenEdgeLock setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

Matrix

class adm::AudioBlockFormatMatrix : private AudioBlockFormatMatrixBase

Class representation for ADM element audioBlockFormat if audioChannelFormat.typeDefinition == “Matrix”.

Warning

This class has unsupported parameters

  • encodePackFormatIDRef

  • decodePackFormatIDRef

  • inputPackFormatIDRef

  • outputPackFormatIDRef

Public Types

typedef AudioBlockFormatMatrixTag tag
typedef AudioBlockFormatId id_type

Type that holds the id for this element;.

Public Functions

template<typename ...Parameters>
explicit AudioBlockFormatMatrix(Parameters... optionalNamedArgs)
AudioBlockFormatMatrix(const AudioBlockFormatMatrix&) = default
AudioBlockFormatMatrix(AudioBlockFormatMatrix&&) = default
AudioBlockFormatMatrix &operator=(const AudioBlockFormatMatrix&) = default
AudioBlockFormatMatrix &operator=(AudioBlockFormatMatrix&&) = default
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

bool isDefault(detail::ParameterTraits<Rtime>::tag) const
void set(AudioBlockFormatId id)

AudioBlockFormatId setter.

void set(Rtime rtime)

Rtime setter.

void set(Duration duration)

Duration setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

Objects

class adm::AudioBlockFormatObjects : private AudioBlockFormatObjectsBase

Class representation for ADM element audioBlockFormat if audioChannelFormat.typeDefinition == “Objects”.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioBlockFormatId

AudioBlockFormatId

RequiredParameter

rtime

Rtime

DefaultParameter

duration

Duration

OptionalParameter

cartesian

Cartesian

custom, see below

position

width

Width

DefaultParameter

height

Height

DefaultParameter

depth

Depth

DefaultParameter

diffuse

Diffuse

DefaultParameter

gain

Gain

DefaultParameter

importance

Importance

DefaultParameter

headLocked

HeadLocked

DefaultParameter

headphoneVirtualise

HeadphoneVirtualise

DefaultParameter

screenEdgeLock

ScreenEdgeLock

OptionalParameter

channelLock

ChannelLock

DefaultParameter

objectDivergence

ObjectDivergence

DefaultParameter

jumpPosition

JumpPosition

DefaultParameter

screenRef

ScreenRef

DefaultParameter

cartesian and position attributes are linked; see void set(Cartesian), void set(Position), void set(CartesianPosition) and void set(SphericalPosition).

Warning

This class has unsupported parameters

  • ZoneExclusion

Public Types

typedef AudioBlockFormatObjectsTag tag
typedef AudioBlockFormatId id_type

Type that holds the id for this element;.

Public Functions

template<typename ...Parameters>
explicit AudioBlockFormatObjects(CartesianPosition position, Parameters... optionalNamedArgs)
template<typename ...Parameters>
explicit AudioBlockFormatObjects(SphericalPosition position, Parameters... optionalNamedArgs)
AudioBlockFormatObjects(const AudioBlockFormatObjects&) = default
AudioBlockFormatObjects(AudioBlockFormatObjects&&) = default
AudioBlockFormatObjects &operator=(const AudioBlockFormatObjects&) = default
AudioBlockFormatObjects &operator=(AudioBlockFormatObjects&&) = default
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(Cartesian cartesian)

Cartesian setter.

Note

If setting the ADM parameter cartesian will change the coordinate system the corresponding position will be set to a default value.

void set(Position position)

Position setter.

Note

Setting a SphericalPosition will automatically unset the CartesianPosition and the other way around. If a CartesianPosition is set the Cartesian flag will be set too. If a SphericalPosition is set the Cartesian flag will only be set if has already been set before (either directly or automatically).

void set(SphericalPosition position)

SphericalPosition setter.

Note

Setting a SphericalPosition will automatically unset the CartesianPosition. The Cartesian flag will only be set if it has already been set before (either directly or automatically).

void set(CartesianPosition position)

CartesianPosition setter.

Note

Setting a CartesianPosition will automatically unset the SphericalPosition. Also the Cartesian flag will be set automatically.

void set(ScreenEdgeLock screenEdgeLock)

ScreenEdgeLock setter.

void set(ChannelLock channelLock)

ChannelLock setter.

void set(ObjectDivergence objectDivergence)

ObjectDivergence setter.

void set(JumpPosition jumpPosition)

JumpPosition setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

using adm::Cartesian = detail::NamedType<bool, CartesianTag>

NamedType for cartesian parameter.

typedef boost::variant<SphericalPosition, CartesianPosition> adm::Position

Type to hold a SphericalPosition or CartesianPosition.

class adm::SphericalPosition

ADM parameter class to specify a spherical position.

Public Types

typedef SphericalPositionTag tag

Public Functions

explicit SphericalPosition(Azimuth azimuth = Azimuth(0.f), Elevation elevation = Elevation(0.f))

Constructor without optional parameters.

template<typename ...Parameters>
SphericalPosition(Azimuth azimuth, Elevation elevation, Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(Azimuth azimuth)

Azimuth setter.

void set(Elevation elevation)

Elevation setter.

void set(Distance distance)

Distance setter.

void set(ScreenEdgeLock screenEdgeLock)

ScreenEdgeLock setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

class adm::CartesianPosition

ADM parameter class to specify a cartesian position.

Public Types

typedef CartesianPositionTag tag

Public Functions

explicit CartesianPosition(X x = X(0.f), Y y = Y(1.f))

Constructor without optional parameters.

template<typename ...Parameters>
CartesianPosition(X x, Y y, Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(X x)

X setter.

void set(Y y)

Y setter.

void set(Z z)

Z setter.

void set(ScreenEdgeLock screenEdgeLock)

ScreenEdgeLock setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::Width = detail::NamedType<float, WidthTag>

NamedType for width parameter.

using adm::Height = detail::NamedType<float, HeightTag>

NamedType for height parameter.

using adm::Depth = detail::NamedType<float, DepthTag>

NamedType for depth parameter.

class adm::ScreenEdgeLock

ADM parameter class to specify a screen edge lock.

Public Types

typedef ScreenEdgeLockTag tag

Public Functions

template<typename ...Parameters>
explicit ScreenEdgeLock(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(ScreenEdge screenEdge)

ScreenEdge setter.

void set(HorizontalEdge horizontalEdge)

HorizontalEdge setter.

void set(VerticalEdge verticalEdge)

VerticalEdge setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::ScreenEdge = detail::NamedType<std::string, ScreenEdgeTag, detail::ScreenEdgeValidator>

NamedType for the screen edge.

Valid values are “left”, “right”, “top” and “bottom”

using adm::HorizontalEdge = detail::NamedType<std::string, HorizontalEdgeTag, detail::HorizontalEdgeValidator>

NamedType for the horizontal screen edge.

Valid values are “left” and “right”

using adm::VerticalEdge = detail::NamedType<std::string, VerticalEdgeTag, detail::VerticalEdgeValidator>

NamedType for the vertical screen edge.

Valid values are “top” and “bottom”

using adm::Diffuse = detail::NamedType<float, DiffuseTag, detail::RangeValidator<0, 1>>

NamedType for diffuse parameter.

class adm::ChannelLock

ADM parameter class to specify a channel lock.

Public Types

typedef ChannelLockTag tag

Public Functions

template<typename ...Parameters>
explicit ChannelLock(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(ChannelLockFlag channelLockFlag)

ChannelLockFlag setter.

void set(MaxDistance maxDistance)

MaxDistance setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::ChannelLockFlag = detail::NamedType<bool, ChannelLockFlagTag>

NamedType for channelLockFlag parameter.

using adm::MaxDistance = detail::NamedType<float, MaxDistanceTag, detail::RangeValidator<0, 2>>

NamedType for the maxDistance attribute.

Valid values are in the range [0, 2].

class adm::ObjectDivergence

ADM parameter class to specify the object divergence.

Public Types

typedef ObjectDivergenceTag tag

Public Functions

template<typename ...Parameters>
explicit ObjectDivergence(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(Divergence divergence)

Divergence setter.

void set(AzimuthRange azimuthRange)

AzimuthRange setter.

void set(PositionRange positionRange)

PositionRange setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

class adm::JumpPosition

ADM parameter class to specify a jump position.

Public Types

typedef JumpPositionTag tag

Public Functions

template<typename ...Parameters>
explicit JumpPosition(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(JumpPositionFlag objectDivergenceFlag)

JumpPositionFlag setter.

void set(InterpolationLength interpolationLength)

InterpolationLength setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::JumpPositionFlag = detail::NamedType<bool, JumpPositionFlagTag>

NamedType for jumpPositionFlag parameter.

using adm::InterpolationLength = detail::NamedType<std::chrono::nanoseconds, interpolationLengthTag>

NamedType for interpolationLength parameter.

using adm::ScreenRef = detail::NamedType<bool, ScreenRefTag>

NamedType for screenref parameter.

HOA

class adm::AudioBlockFormatHoa : private AudioBlockFormatHoaBase

Class representation for ADM element audioBlockFormat if audioChannelFormat.typeDefinition == “HOA”.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioBlockFormatId

AudioBlockFormatId

RequiredParameter

rtime

Rtime

DefaultParameter

duration

Duration

OptionalParameter

order

Order

RequiredParameter

degree

Degree

RequiredParameter

normalization

Normalization

DefaultParameter

nfcRefDist

NfcRefDist

DefaultParameter

gain

Gain

DefaultParameter

importance

Importance

DefaultParameter

headLocked

HeadLocked

DefaultParameter

headphoneVirtualise

HeadphoneVirtualise

DefaultParameter

screenRef

ScreenRef

DefaultParameter

equation

Equation

OptionalParameter

Public Types

typedef AudioBlockFormatHoaTag tag
typedef AudioBlockFormatId id_type

Type that holds the id for this element;.

Public Functions

template<typename ...Parameters>
AudioBlockFormatHoa(Order order, Degree degree, Parameters... optionalNamedArgs)
AudioBlockFormatHoa(const AudioBlockFormatHoa&) = default
AudioBlockFormatHoa(AudioBlockFormatHoa&&) = default
AudioBlockFormatHoa &operator=(const AudioBlockFormatHoa&) = default
AudioBlockFormatHoa &operator=(AudioBlockFormatHoa&&) = default
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

using adm::Order = detail::NamedType<int, OrderTag>

NamedType for order parameter.

using adm::Degree = detail::NamedType<int, DegreeTag>

NamedType for degree parameter.

using adm::Normalization = detail::NamedType<std::string, NormalizationTag>

NamedType for a normalization parameter, defaulting to SN3D.

using adm::NfcRefDist = detail::NamedType<float, NfcRefDistTag>

NamedType for degree parameter.

using adm::Equation = detail::NamedType<std::string, EquationTag>

NamedType for a equation parameter.

Binaural

class adm::AudioBlockFormatBinaural : private AudioBlockFormatBinauralBase

Class representation for ADM element audioBlockFormat if audioChannelFormat.typeDefinition == “Binaural”.

Supported parameters are as follows:

ADM Parameter

Parameter Type

Pattern Type

audioBlockFormatId

AudioBlockFormatId

RequiredParameter

rtime

Rtime

DefaultParameter

duration

Duration

OptionalParameter

gain

Gain

DefaultParameter

importance

Importance

DefaultParameter

Public Types

typedef AudioBlockFormatBinauralTag tag
typedef AudioBlockFormatId id_type

Type that holds the id for this element;.

Public Functions

template<typename ...Parameters>
explicit AudioBlockFormatBinaural(Parameters... optionalNamedArgs)
AudioBlockFormatBinaural(const AudioBlockFormatBinaural&) = default
AudioBlockFormatBinaural(AudioBlockFormatBinaural&&) = default
AudioBlockFormatBinaural &operator=(const AudioBlockFormatBinaural&) = default
AudioBlockFormatBinaural &operator=(AudioBlockFormatBinaural&&) = default
template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(AudioBlockFormatId id)

AudioBlockFormatId setter.

void set(Rtime rtime)

Rtime setter.

void set(Duration duration)

Duration setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

Shared Elements

using adm::Start = detail::NamedType<Time, StartTag>

NamedType for the start attribute.

class adm::LoudnessMetadata

Public Types

typedef LoudnessMetadataTag tag

Public Functions

template<typename ...Parameters>
explicit LoudnessMetadata(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(LoudnessMethod loudnessMethod)

LoudnessMethod setter.

void set(LoudnessRecType loudnessRecType)

LoudnessRecType setter.

void set(LoudnessCorrectionType loudnessLoudnessCorrectionType)

LoudnessCorrectionType setter.

void set(IntegratedLoudness integratedLoudness)

IntegratedLoudness setter.

void set(LoudnessRange loudnessRange)

LoudnessRange setter.

void set(MaxTruePeak maxTruePeak)

MaxTruePeak setter.

void set(MaxMomentary maxMomentary)

MaxMomentary setter.

void set(MaxShortTerm maxShortTerm)

MaxShortTerm setter.

void set(DialogueLoudness dialogueLoudness)

DialogueLoudness setter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::LoudnessMetadatas = std::vector<LoudnessMetadata>
using adm::Importance = detail::NamedType<int, ImportanceTag, detail::RangeValidator<0, 10>>

NamedType for the importance parameter.

Valid values are in the range [0, 10].

class adm::AudioBlockFormatId

Representation of an AudioBlockFormatId.

Unnamed Group

bool operator==(const AudioBlockFormatId &other) const

Operator overload.

Compares the string representation of the AudioBlockFormatId.

bool operator!=(const AudioBlockFormatId &other) const
bool operator<(const AudioBlockFormatId &other) const

Public Types

typedef AudioBlockFormatIdTag tag

Public Functions

template<typename ...Parameters>
explicit AudioBlockFormatId(Parameters... optionalNamedArgs)

Constructor template.

Templated constructor which accepts a variable number of ADM parameters in random order after the mandatory ADM parameters.

template<typename Parameter>
Parameter get() const

ADM parameter getter template.

Templated getter with the wanted ADM parameter type as template argument. If currently no value is available trying to get the adm parameter will result in an exception. Check with the has method before

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the ADM parameter is set or has a default value.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the ADM parameter is the default value.

void set(TypeDescriptor channelType)

Set channel type.

void set(AudioBlockFormatIdValue value)

Set value.

void set(AudioBlockFormatIdCounter counter)

Set counter.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

void print(std::ostream &os) const

Print overview to ostream.

using adm::Rtime = detail::NamedType<Time, RtimeTag>

NamedType for the rtime attribute.

using adm::Duration = detail::NamedType<Time, DurationTag>

NamedType for the duration attribute.

using adm::HeadLocked = detail::NamedType<bool, HeadLockedTag>

NamedType for the headLocked parameter.

class adm::HeadphoneVirtualise : private HeadphoneVirtualiseBase

Public Types

typedef HeadphoneVirtualiseTag tag

Public Functions

template<typename ...Parameters>
explicit HeadphoneVirtualise(Parameters... optionalNamedArgs)
template<typename Parameter>
Parameter get() const

ADM parameter get template.

template<typename Parameter>
bool has() const

ADM parameter has template.

Templated has method with the ADM parameter type as template argument. Returns true if the parameter has been set or is optional.

template<typename Parameter>
bool isDefault() const

ADM parameter isDefault template.

Templated isDefault method with the ADM parameter type as template argument. Returns true if the optional parameter has been changed from its default value.

template<typename Parameter>
void unset()

ADM parameter unset template.

Templated unset method with the ADM parameter type as template argument. Removes an ADM parameter if it is optional or resets it to the default value if there is one.

class adm::Gain

Storage for gain parameters, which can either be a linear or dB value.

Gain objects should be constructed using fromLinear() or fromDb().

Public Types

typedef GainTag tag

Public Functions

inline explicit Gain(double linearGain)

alias for Gain::fromLinear for compatibility with existing code

inline double asLinear() const

Get the gain as a linear value, converting if necessary.

inline double asDb() const

Get the gain as a value in dB, converting if necessary.

inline bool isLinear() const

Is this gain stored as a linear value?

inline bool isDb() const

Is this gain stored in dB?

inline double get() const

alias for asLinear for compatibility with existing code

inline double operator*() const

alias for asLinear for compatibility with existing code

Public Static Functions

static inline Gain fromLinear(double linearGain)

Make a linear Gain.

static inline Gain fromDb(double dbGain)

Make a Gain in dB.

class adm::Label : private LabelBase, private detail::AddWrapperMethods<Label>

Represents an ADM label element, with optional language attribute.

Public Types

using tag = LabelTag

Public Functions

template<typename ...Parameters>
inline explicit Label(Parameters... namedArgs)
inline explicit Label(std::string str)
explicit Label(const char *s)
void print(std::ostream &os) const

Friends

friend class detail::AddWrapperMethods< Label >
using adm::Labels = std::vector<Label>

Represents multiple labels with different languages.

using adm::TypeDescriptor = detail::NamedType<int, TypeDescriptorTag, detail::RangeValidator<0, 5>>

Combined ADM typeLabel and typeDefinition.

Valid values are in the range [0, 5]

See

TypeDefinition A list of pre-defined type definitions

namespace adm::TypeDefinition

BS.2076 type definitions.

Variables

const TypeDescriptor UNDEFINED
const TypeDescriptor DIRECT_SPEAKERS

TypeDefinition for Direct Speakers.

const TypeDescriptor MATRIX

TypeDefinition for Matrix.

const TypeDescriptor OBJECTS

TypeDefinition for Objects.

const TypeDescriptor HOA

TypeDefinition for Higher Order Ambisonics.

const TypeDescriptor BINAURAL

TypeDefinition for Binaural.