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.

StreamRendererMatrix.h 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // OpenViBE Tracker
  3. //
  4. #pragma once
  5. #include "StreamRendererBase.h"
  6. #include "TypeMatrix.h"
  7. namespace OpenViBE {
  8. namespace Tracker {
  9. /**
  10. * \class StreamRendererMatrix
  11. * \brief Renderer for Matrix streams
  12. * \author J. T. Lindgren
  13. *
  14. */
  15. class StreamRendererMatrix final : public StreamRendererBase
  16. {
  17. public:
  18. StreamRendererMatrix(const Kernel::IKernelContext& ctx, std::shared_ptr<const Stream<TypeMatrix>> stream)
  19. : StreamRendererBase(ctx), m_stream(stream) { }
  20. bool initialize() override;
  21. bool spool(const CTime startTime, const CTime endTime) override { return spoolImpl<TypeMatrix, StreamRendererMatrix>(m_stream, *this, startTime, endTime); }
  22. CString renderAsText(const size_t indent) const override;
  23. bool showChunkList() override;
  24. protected:
  25. friend bool spoolImpl<TypeMatrix, StreamRendererMatrix>(std::shared_ptr<const Stream<TypeMatrix>> stream, StreamRendererMatrix& renderer, CTime startTime,
  26. CTime endTime);
  27. bool finalize() override;
  28. bool reset(CTime startTime, CTime endTime) override;
  29. bool push(const TypeMatrix::Buffer& chunk, bool zeroInput = false);
  30. bool mouseButton(int x, int y, int button, int status) override;
  31. bool preDraw() override;
  32. bool draw() override;
  33. size_t m_nRows = 0;
  34. size_t m_nCols = 0;
  35. std::shared_ptr<const Stream<TypeMatrix>> m_stream;
  36. GtkWidget* m_streamListWindow = nullptr;
  37. std::vector<float> m_swap;
  38. StreamRendererMatrix() = delete;
  39. };
  40. } // namespace Tracker
  41. } // namespace OpenViBE