VR-Forces 4.8 Class Documentation
 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) 2019 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 isEnabled();
52 
55  virtual void setEnabled(bool enable);
56 
58  virtual double soundVolume();
59 
61  virtual void setSoundVolume(double volume);
62 
72  virtual void setListenerLocationType(ListenerLocationType listenerType);
73 
75  virtual ListenerLocationType listenerLocationType() const;
76 
79  virtual void setEntityListener(DtElementID listenerEntity);
80 
82  virtual DtElementID entityListener() const;
83 
85  virtual void setListenerLocation(const DtVector& location);
86 
88  virtual const DtVector& listenerLocation() const;
89 
91  virtual void setListenerVelocity(const DtVector& velocity);
92 
94  virtual const DtVector& listenerVelocity() const;
95 
97  virtual void setListenerFront(const DtVector& frontVec);
98 
100  virtual const DtVector& listenerFront() const;
101 
103  virtual void setListenerUp(const DtVector& upVec);
104 
106  virtual const DtVector& listenerUp() const;
107 
109  virtual int maxVoices();
110 
114  virtual void setMaxVoices(int numVoices);
115 
119  virtual double speedOfSound();
120 
124  virtual void setSpeedOfSound(double c);
125 
133  virtual float maximumOutputDecibelCapability();
134 
142  virtual void setMaximumOutputDecibelCapability(float max);
143 
148  virtual bool environmentalProcessingAvailable();
149 
154  virtual bool isEnvironmentalProcessingEnabled();
155 
160  virtual void setEnvironmentalProcessingEnabled(bool enable);
161 
163  virtual void loadDefaults();
164 
168  virtual bool environmentalProcessingAvailable() const;
169 
171  virtual std::vector<std::string> playbackDeviceList() const;
172 
174  virtual std::vector<std::string> captureDeviceList() const;
175 
176  protected:
177 
180 
182  virtual ~DtAudioManager();
183 
186  void connectSignals();
187 
190  virtual void tick();
191 
193  virtual void shutdown();
194 
198  virtual void kinStateFromObserver();
199 
203  virtual void kinStateFromEntity();
204 
206  virtual void slot_AudioEnabledUpdated(bool enabled);
209 
211  virtual void slot_VolumeUpdated(double volume);
212 
214  virtual void slot_playbackDeviceUpdated(const std::string& device);
215 
217  virtual void slot_captureDeviceUpdated(const std::string& device);
218 
220  virtual void slot_showCaptureDeviceSettingsUpdated(bool show);
221 
223  virtual void slot_SpeedOfSoundUpdated(double speed);
224 
226  virtual void slot_MaxVoicesUpdated(double numOfVoices);
227 
229  virtual void slot_maximumOutputDecibelCapabilityUpdated(double decibel);
230 
232  virtual void slot_EnvironmentalProcessingEnabledUpdated(bool enabled);
234 
236  template <typename ManagerClass>
237  friend ManagerClass& defaultManagerInstanceFunction(DtDe&, bool);
238 
240  template <typename ManagerClass>
241  friend void defaultManagerRegisterInstanceFunction(DtDe&, ManagerClass*);
242 
243  private:
245  DtAudioManager();
249  DtAudioManager &operator=(const DtAudioManager &);
250 
251  protected:
260  };
261 
262 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtVector myListenerLocation
Definition: DtAudioManager.h:256
DtVector myListenerFront
Definition: DtAudioManager.h:257
DtAudioManager manages the sounds in vantange.
Definition: DtAudioManager.h:28
DtDe & myDe
Definition: DtAudioManager.h:252
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:26
Contains makVrv::DtVirtualBaseClass class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:840
Definition: DtAudioManager.h:37
Definition: DtAudioManager.h:36
DtElementID myListenerEntity
Definition: DtAudioManager.h:255
Base class to provide boost signal/slot management.
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function.
Definition: DtDe.h:802
DtVector myListenerVelocity
Definition: DtAudioManager.h:259
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Contains makVrv::DtUniqueID type.
#define DT_DLL_VRVAUDIO
Definition: vrvAudio.h:20
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtSignalConnectionManager myConnections
Definition: DtAudioManager.h:253
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:254
DtVector myListenerUp
Definition: DtAudioManager.h:258

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)