#include "grabber.h"
#include <iostream>
#include <pylon/PylonIncludes.h>

void Grabber::run() {
  stop_request = false;
  int count = 0;
  if (camera->isOpen()) {
      camera->frameRate(static_cast<uint>(framerate));
      camera->exposureTime(exposure);
      camera->gain(gain);
      ImageSettings settings = camera->getImageSettings();
      Pylon::CInstantCamera *cam = camera->getCamera();
      Pylon::CGrabResultPtr frame;
      cam->StartGrabbing();
      while (camera->isOpen() && !stop_request) {
          MyImage *img = new MyImage(settings.width, settings.height);
          cam->RetrieveResult( 5000, frame, Pylon::TimeoutHandling_ThrowException);
          img->setFrame(frame);
          buffer->push(img);
          count += 1;
      }
      cam->StopGrabbing();
    }
}