VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAudioManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvAudio/vrvAudio.h>
13 
14 #include <vrvCore/DtUniqueID.h>
17 
18 #include <matrix/vlVector.h>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtSoundModelAgent;
24 
29  {
30  public:
31 
35  {
36  ObserverListener, // Get listener location (and orientation) from current observer
37  EntityListener, // Get listener location (and orientation) from an entity
38  ExplicitListener // Use listener location (and orientation) specified in API
39  };
40 
41  public:
42 
44  static DtAudioManager& instance(DtDe& de);
45 
48  virtual bool init();
49 
51  virtual bool playbackDeviceInitialized();
52 
54  virtual bool captureDeviceInitialized();
55 
57  virtual bool isEnabled();
58 
61  virtual void setEnabled(bool enable);
62 
64  virtual double soundVolume();
65 
67  virtual void setSoundVolume(double volume);
68 
78  virtual void setListenerLocationType(ListenerLocationType listenerType);
79 
81  virtual ListenerLocationType listenerLocationType() const;
82 
85  virtual void setEntityListener(DtElementID listenerEntity);
86 
88  virtual DtElementID entityListener() const;
89 
91  virtual void setListenerLocation(const DtVector& location);
92 
94  virtual const DtVector& listenerLocation() const;
95 
97  virtual void setListenerVelocity(const DtVector& velocity);
98 
100  virtual const DtVector& listenerVelocity() const;
101 
103  virtual void setListenerFront(const DtVector& frontVec);
104 
106  virtual const DtVector& listenerFront() const;
107 
109  virtual void setListenerUp(const DtVector& upVec);
110 
112  virtual const DtVector& listenerUp() const;
113 
115  virtual int maxVoices();
116 
120  virtual void setMaxVoices(int numVoices);
121 
125  virtual double speedOfSound();
126 
130  virtual void setSpeedOfSound(double c);
131 
139  virtual float maximumOutputDecibelCapability();
140 
148  virtual void setMaximumOutputDecibelCapability(float max);
149 
154  virtual bool environmentalProcessingAvailable();
155 
160  virtual bool isEnvironmentalProcessingEnabled();
161 
166  virtual void setEnvironmentalProcessingEnabled(bool enable);
167 
169  virtual void loadDefaults();
170 
174  virtual bool environmentalProcessingAvailable() const;
175 
177  virtual std::vector<std::string> playbackDeviceList() const;
178 
180  virtual std::vector<std::string> captureDeviceList() const;
181 
182  //Signaled when the playback device is initialized
183  boost::signalslib::signal<void()> signal_playbackDeviceInitialized;
184 
185  //Signaled when the playback device is initialized
186  boost::signalslib::signal<void()> signal_captureDeviceInitialized;
187 
188  protected:
189 
192 
194  virtual ~DtAudioManager();
195 
198  void connectSignals();
199 
202  virtual void tick();
203 
205  virtual void shutdown();
206 
210  virtual void kinStateFromObserver();
211 
215  virtual void kinStateFromEntity();
216 
219  virtual void initializeAudioDevicesIfNeeded();
220 
222  virtual void slot_AudioEnabledUpdated(bool enabled);
225 
227  virtual void slot_VolumeUpdated(double volume);
228 
230  virtual void slot_playbackDeviceUpdated(const std::string& device);
231 
233  virtual void slot_captureDeviceUpdated(const std::string& device);
234 
236  virtual void slot_showCaptureDeviceSettingsUpdated(bool show);
237 
239  virtual void slot_SpeedOfSoundUpdated(double speed);
240 
242  virtual void slot_MaxVoicesUpdated(double numOfVoices);
243 
245  virtual void slot_maximumOutputDecibelCapabilityUpdated(double decibel);
246 
248  virtual void slot_EnvironmentalProcessingEnabledUpdated(bool enabled);
250 
252  template <typename ManagerClass>
253  friend ManagerClass& defaultManagerInstanceFunction(DtDe&, bool);
254 
256  template <typename ManagerClass>
257  friend void defaultManagerRegisterInstanceFunction(DtDe&, ManagerClass*);
258 
259  private:
261  DtAudioManager();
265  DtAudioManager &operator=(const DtAudioManager &);
266 
267  protected:
273  DtVector myListenerFront;
274  DtVector myListenerUp;
276 
279  };
280 
281 }
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
boost::signalslib::signal< void()> signal_playbackDeviceInitialized
Definition: DtAudioManager.h:183
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtVector myListenerLocation
Definition: DtAudioManager.h:272
bool myCaptureDeviceInitialized
Definition: DtAudioManager.h:278
DtVector myListenerFront
Definition: DtAudioManager.h:273
bool myPlaybackDeviceInitialized
Definition: DtAudioManager.h:277
DtAudioManager manages the sounds in vantange. It updates the listener&#39;s position, etc.
Definition: DtAudioManager.h:28
DtDe & myDe
Definition: DtAudioManager.h:268
Contains the DLL export macro for vrvAudio classes.
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Contains makVrv::DtVirtualBaseClass class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:887
Definition: DtAudioManager.h:37
Definition: DtAudioManager.h:36
DtElementID myListenerEntity
Definition: DtAudioManager.h:271
Base class to provide boost signal/slot management.
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:849
DtVector myListenerVelocity
Definition: DtAudioManager.h:275
Contains makVrv::DtUniqueID type.
#define DT_DLL_VRVAUDIO
Definition: vrvAudio.h:20
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtSignalConnectionManager myConnections
Definition: DtAudioManager.h:269
boost::signalslib::signal< void()> signal_captureDeviceInitialized
Definition: DtAudioManager.h:186
ListenerLocationType
This enumeration is used to determine what type of listener the the audio manager uses...
Definition: DtAudioManager.h:34
ListenerLocationType myListenerLocationType
Definition: DtAudioManager.h:270
DtVector myListenerUp
Definition: DtAudioManager.h:274

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)