mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-08-29 18:47:25 +02:00
52 lines
1.8 KiB
C
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
|