NAP
sequenceplayercurveoutput.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 // local includes
8 #include "sequenceplayeroutput.h"
9 
10 // nap includes
11 #include <nap/resourceptr.h>
12 #include <parameter.h>
13 
14 namespace nap
15 {
17 
18  // forward declares
19  class SequencePlayerCurveAdapterBase;
20  class SequenceService;
21 
25  class NAPAPI SequencePlayerCurveOutput final : public SequencePlayerOutput
26  {
27  RTTI_ENABLE(SequencePlayerOutput)
28  public:
30 
31  // properties
32  ResourcePtr<Parameter> mParameter = nullptr;
33  bool mUseMainThread = true;
34 
39  void registerAdapter(SequencePlayerCurveAdapterBase* curveAdapter);
40 
45  void removeAdapter(SequencePlayerCurveAdapterBase* curveAdapter);
46 
52  bool init(utility::ErrorState& errorState) override;
53 
54  protected:
59  void update(double deltaTime) override;
60 
61  // vector holding registered parameter setters
62  std::vector<SequencePlayerCurveAdapterBase*> mAdapters;
63  };
64 
66 }
nap::SequencePlayerCurveOutput
Definition: sequenceplayercurveoutput.h:25
nap::rtti::ObjectPtr
Definition: objectptr.h:154
nap::SequenceService
Definition: sequenceservice.h:42
nap::rtti::ObjectCreator
Definition: factory.h:49
nap::utility::ErrorState
Definition: errorstate.h:19
nap::SequencePlayerCurveAdapterBase
Definition: sequenceplayercurveadapter.h:26
nap::SequencePlayerOutput
Definition: sequenceplayeroutput.h:23
nap
Definition: templateapp.h:17
nap::SequencePlayerCurveOutput::mAdapters
std::vector< SequencePlayerCurveAdapterBase * > mAdapters
Definition: sequenceplayercurveoutput.h:62