NAP
videoservice.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 "videoplayer.h"
9 
10 // External Includes
11 #include <nap/service.h>
12 
13 namespace nap
14 {
19  class NAPAPI VideoService : public Service
20  {
21  friend class VideoPlayer;
22  RTTI_ENABLE(Service)
23  public:
24  // Default constructor
25  VideoService(ServiceConfiguration* configuration);
26 
27  protected:
28  // This service depends on render and scene
29  virtual void getDependentServices(std::vector<rtti::TypeInfo>& dependencies) override;
30 
36  virtual bool init(nap::utility::ErrorState& errorState) override;
37 
41  virtual void update(double deltaTime) override;
42 
46  virtual void registerObjectCreators(rtti::Factory& factory) override;
47 
48  private:
52  void registerVideoPlayer(VideoPlayer& receiver);
53 
57  void removeVideoPlayer(VideoPlayer& receiver);
58 
59  private:
60  std::vector<VideoPlayer*> mVideoPlayers;
61  bool mVideoMaterialInitialized = false;
62  };
63 }
nap::VideoService
Definition: videoservice.h:19
nap::utility::ErrorState
Definition: errorstate.h:19
nap::ServiceConfiguration
Definition: service.h:28
nap::Service
Definition: templateservice.h:8
nap::VideoPlayer
Definition: videoplayer.h:58
nap::rtti::Factory
Definition: factory.h:78
nap
Definition: templateapp.h:17