#ifndef wrap_gphoto_h
#define wrap_gphoto_h

#include <gphoto2/gphoto2.h>
#include <gphoto2/gphoto2-camera.h>

class WrapCamera;

// C++ wrappers for limited access to cameras via libgphoto2 (nothing is
// implemented here except the bits I need for my book scanner program and
// those bits are probably not implemented as efficiently as possible since
// I have no idea what I'm doing :-).

// Create one instance of this thing to be able to access cameras.
//
class WrapGphoto2 {
public:

   WrapGphoto2();

   ~WrapGphoto2();

      // Find the camera on the given port (ex: "usb:1234,5678") and
      // open it, returning a WrapCamera class instance.
      //
   WrapCamera *
   OpenCameraOnPort(const char * port);

   GPContext *
   GetContext() {
         return context;
      }

private:

   void
   InitGphoto2Data();

   GPContext *context;
   GPPortInfoList *portinfolist;
};

#endif // wrap_gphoto_h
