Skip to content

File imageContainer.h

File List > src > imageContainer.h

Go to the documentation of this file

/*******************************************************
 * Author: Intelligent Medical Systems
 * License: see LICENSE.md file
 *******************************************************/
#ifndef IMAGE_CONTAINER_H
#define IMAGE_CONTAINER_H

#include <xiApi.h>

#include <QObject>
#include <boost/thread.hpp>

#include "util.h"
#include "xiAPIWrapper.h"

class ImageContainer : public QObject
{
    Q_OBJECT

  public:
    std::unique_ptr<FileImage> m_imageFile;

    std::shared_ptr<XiAPIWrapper> m_apiWrapper;

    ImageContainer();

    void Initialize(const std::shared_ptr<XiAPIWrapper> &apiWrapper);

    void InitializeFile(const char *filePath);

    void CloseFile();

    ~ImageContainer() override;

    void PollImage(const HANDLE *cameraHandle, int pollingRate);

    XI_IMG GetCurrentImage();

    void StopPolling();

    void StartPolling();

    bool m_PollImage;

  signals:

    void NewImage();

  private:
    XI_IMG m_Image{};

    boost::mutex m_mutexImageAccess;
};

#endif // IMAGE_CONTAINER_H