You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BoxPlugins.h 890B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <openvibe/ov_all.h>
  3. #include "BoxAdapter.h"
  4. #include "Contexted.h"
  5. namespace OpenViBE {
  6. namespace Tracker {
  7. /**
  8. * \class BoxPlugins
  9. * \brief Box Plugins is a factory-like class that keeps a list of box plugins that can be 'applied' to streams in Tracker
  10. * \details Boxes can be registered in the constructor
  11. * \author J. T. Lindgren
  12. *
  13. */
  14. class BoxPlugins final : protected Contexted
  15. {
  16. public:
  17. explicit BoxPlugins(const Kernel::IKernelContext& ctx);
  18. ~BoxPlugins() override { for (auto ptr : m_boxPlugins) { delete ptr; } }
  19. // Get a list of available box plugins
  20. const std::vector<BoxAdapterStream*>& getBoxPlugins() const { return m_boxPlugins; }
  21. protected:
  22. bool create(const CIdentifier& streamType, const CIdentifier& alg, const CIdentifier& desc);
  23. std::vector<BoxAdapterStream*> m_boxPlugins;
  24. };
  25. } // namespace Tracker
  26. } // namespace OpenViBE