Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qaudioroom.h
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-3.0-only
3
4#ifndef QAUDIOROOM_H
5#define QAUDIOROOM_H
6
7#include <QtSpatialAudio/qtspatialaudioglobal.h>
8#include <QtGui/qquaternion.h>
9#include <QtGui/qvector3d.h>
10#include <QtCore/qobject.h>
11
12QT_BEGIN_NAMESPACE
13
14class QAudioEngine;
15class QAudioRoomPrivate;
16
17class Q_SPATIALAUDIO_EXPORT QAudioRoom : public QObject
18{
19 Q_OBJECT
20 Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged)
21 Q_PROPERTY(QVector3D dimensions READ dimensions WRITE setDimensions NOTIFY dimensionsChanged)
22 Q_PROPERTY(QQuaternion rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
23 Q_PROPERTY(float reflectionGain READ reflectionGain WRITE setReflectionGain NOTIFY reflectionGainChanged)
24 Q_PROPERTY(float reverbGain READ reverbGain WRITE setReverbGain NOTIFY reverbGainChanged)
25 Q_PROPERTY(float reverbTime READ reverbTime WRITE setReverbTime NOTIFY reverbTimeChanged)
26 Q_PROPERTY(float reverbBrightness READ reverbBrightness WRITE setReverbBrightness NOTIFY reverbBrightnessChanged)
27public:
28 explicit QAudioRoom(QAudioEngine *engine);
29 ~QAudioRoom() override;
30
31 enum Material {
32 Transparent,
33 AcousticCeilingTiles,
34 BrickBare,
35 BrickPainted,
36 ConcreteBlockCoarse,
37 ConcreteBlockPainted,
38 CurtainHeavy,
39 FiberGlassInsulation,
40 GlassThin,
41 GlassThick,
42 Grass,
43 LinoleumOnConcrete,
44 Marble,
45 Metal,
46 ParquetOnConcrete,
47 PlasterRough,
48 PlasterSmooth,
49 PlywoodPanel,
50 PolishedConcreteOrTile,
51 Sheetrock,
52 WaterOrIceSurface,
53 WoodCeiling,
54 WoodPanel,
55 UniformMaterial,
56 };
57
58 enum Wall {
59 LeftWall,
60 RightWall,
61 Floor,
62 Ceiling,
63 FrontWall,
64 BackWall
65 };
66
67 void setPosition(QVector3D pos);
68 QVector3D position() const;
69
70 void setDimensions(QVector3D dim);
71 QVector3D dimensions() const;
72
73 void setRotation(const QQuaternion &q);
74 QQuaternion rotation() const;
75
76 void setWallMaterial(Wall wall, Material material);
77 Material wallMaterial(Wall wall) const;
78
79 void setReflectionGain(float factor);
80 float reflectionGain() const;
81
82 void setReverbGain(float factor);
83 float reverbGain() const;
84
85 void setReverbTime(float factor);
86 float reverbTime() const;
87
88 void setReverbBrightness(float factor);
89 float reverbBrightness() const;
90
91Q_SIGNALS:
92 void positionChanged();
93 void dimensionsChanged();
94 void rotationChanged();
95 void wallsChanged();
96 void reflectionGainChanged();
97 void reverbGainChanged();
98 void reverbTimeChanged();
99 void reverbBrightnessChanged();
100
101private:
102 Q_DECLARE_PRIVATE(QAudioRoom)
103
104 // ### Qt7: remove unused member
105 QT6_ONLY(Q_DECL_UNUSED_MEMBER void *unused = nullptr;) // for ABI compatibility
106};
107
108QT_END_NAMESPACE
109
110#endif
\inmodule QtSpatialAudio
Definition qaudioroom.h:18
Combined button and popup list for selecting options.
QQuaternion toQuaternion(QSpan< const float, 4 > f)
QVector3D toVector(QSpan< const float, 3 > f)
void toFloats(QVector3D v, QSpan< float, 3 > f)