NAP
sequenceplayereventoutput.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 #include "sequenceevent.h"
10 
11 // nap includes
12 #include <nap/resourceptr.h>
13 #include <nap/signalslot.h>
14 
15 // external includes
16 #include <queue>
17 
18 namespace nap
19 {
21 
22  // forward declares
23  class SequenceService;
24 
29  class NAPAPI SequencePlayerEventOutput final : public SequencePlayerOutput
30  {
32 
33  RTTI_ENABLE(SequencePlayerOutput);
34  public:
40 
45  protected:
50  void update(double deltaTime) override;
51 
56  void addEvent(SequenceEventPtr event);
57 
58  private:
59  // the queue of events
60  std::queue<SequenceEventPtr> mEvents;
61 
62  // thread mutex
63  std::mutex mEventMutex;
64  };
65 
67 }
nap::SequenceService
Definition: sequenceservice.h:42
nap::rtti::ObjectCreator
Definition: factory.h:49
nap::Signal
Definition: signalslot.h:28
nap::SequencePlayerOutput
Definition: sequenceplayeroutput.h:23
nap::SequenceEventPtr
std::unique_ptr< SequenceEventBase > SequenceEventPtr
Definition: sequenceevent.h:68
nap::SequencePlayerEventOutput
Definition: sequenceplayereventoutput.h:29
nap::SequencePlayerEventOutput::mSignal
nap::Signal< const SequenceEventBase & > mSignal
Definition: sequenceplayereventoutput.h:44
nap
Definition: templateapp.h:17
nap::SequencePlayerEventAdapter
Definition: sequenceplayereventadapter.h:24