NAP
audiocomponentbase.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Nap includes
8 #include <component.h>
9 #include <componentptr.h>
10 #include <rtti/objectptr.h>
11 
12 // Audio includes
13 #include <audio/core/audionode.h>
14 #include <audio/core/multichannel.h>
15 
16 namespace nap
17 {
18  namespace audio
19  {
20 
21  // Forward declarations
22  class AudioService;
23 
25 
26 
31  class NAPAPI AudioComponentBase : public Component
32  {
33  RTTI_ENABLE(nap::Component)
34  DECLARE_COMPONENT(AudioComponent, AudioComponentBaseInstance)
35 
36  public:
38  {}
39 
40  private:
41  };
42 
43 
48  {
49  RTTI_ENABLE(nap::ComponentInstance)
50 
51  public:
53 
54  protected:
58  NodeManager& getNodeManager();
59 
63  AudioService& getAudioService() { return *mAudioService; }
64 
65  private:
66  AudioService* mAudioService = nullptr;
67  };
68 
69  }
70 }
nap::audio::IMultiChannelOutput
Definition: multichannel.h:20
nap::audio::AudioComponentBaseInstance
Definition: audiocomponentbase.h:47
nap::audio::AudioComponentBase
Definition: audiocomponentbase.h:31
nap::audio::AudioService
Definition: audioservice.h:26
nap::audio::AudioComponentBase::AudioComponentBase
AudioComponentBase()
Definition: audiocomponentbase.h:37
nap::audio::NodeManager
Definition: audionodemanager.h:33
nap::EntityInstance
Definition: entity.h:34
nap::audio::AudioComponentBaseInstance::getAudioService
AudioService & getAudioService()
Definition: audiocomponentbase.h:63
nap::ComponentInstance
Definition: component.h:43
nap::Component
Definition: component.h:151
nap
Definition: templateapp.h:17