overte-AleziaKurdis/libraries/entities/src/ZoneAudioPropertyGroup.h.in
2024-09-08 21:09:00 -07:00

52 lines
1.8 KiB
C

//
// ZoneAudioPropertyGroup.h
// libraries/entities/src
//
// Created by HifiExperiments on 11/28/23
// Copyright 2023 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// SPDX-License-Identifier: Apache-2.0
//
#ifndef hifi_ZoneAudioPropertyGroup_h
#define hifi_ZoneAudioPropertyGroup_h
#include <stdint.h>
#include <glm/glm.hpp>
#include "PropertyGroup.h"
#include "EntityItemPropertiesMacros.h"
class EntityItemProperties;
class EncodeBitstreamParams;
class OctreePacketData;
class EntityTreeElementExtraEncodeData;
class ReadBitstreamToTreeParams;
class ScriptEngine;
class ScriptValue;
/*@jsdoc
* Zone audio is defined by the following properties:
* @typedef {object} Entities.ZoneAudio
* @property {boolean} reverbEnabled=false - If reverb should be enabled for listeners in this zone.
* @property {number} reverbTime=1.0 - The time (seconds) for the reverb tail to decay by 60dB, also known as RT60.
* @property {number} reverbWetLevel=50 - Adjusts the wet/dry percentage, from completely dry (0%) to completely wet (100%).
* @property {Uuid[]} listenerZones=[] - A list of entity IDs representing listener zones with this zone as a source.
* Sounds from this zone being heard by a listener in a listener zone will be attenuated by the corresponding
* <code>listenerAttenuationCoefficient</code>.
* @property {number[]} listenerAttenuationCoefficients=[] - A list of attenuation coefficients. Each coefficient will be
* applied to sounds coming from this zone and being heard by a listener in the corresponding <code>listenerZone</code>.
*/
class ZoneAudioPropertyGroup : public PropertyGroup {
public:
ENTITY_PROPERTY_GROUP_METHODS(ZoneAudioPropertyGroup)
protected:
@Audio_GROUP_PROPS@
};
#endif // hifi_ZoneAudioPropertyGroup_h