Skip to content
This repository has been archived by the owner on Oct 10, 2022. It is now read-only.

Commit

Permalink
Reduce c++ headers usage (#83)
Browse files Browse the repository at this point in the history
* Remove unused RecordingInformation::ptr #trigger_build

* Add helper for forward declaration.
Port a few classes (Frame in particular) to new FWD syntax

* ImageHandler::ptr -> ImageHandlerPtr

* ImageHandlers::ptr -> ImageHandlersPtr

* Forward declarations for SaveImages

* Forward declarations for Driver and Camera

* Histogram::ptr -> HistogramPtr #trigger_ci

* Fix ubuntu 16.04 build

* FileWriter::Ptr -> FileWriterPtr

* PlanetaryImager::Ptr -> PlanetaryImagerPtr

* DriverForwarder::ptr => DriverForwarderPtr

* FilesystemBrowser::ptr => FilesystemBrowserPtr

* QHYImagingWorker::Ptr -> QHYImagingWorkerPtr #trigger_ci

* RemoteDriver::ptr => RemoteDriverPtrRemoteDriver

* Split NetworkDispatcher and NetworkReceiver header/implementation
NetworkDispatcher::ptr => NetworkDispatcherPtr
#trigger_ci

* NetworkPacket::ptr => NetworkPacketPtr

* NetworkPacket::ptr => NetworkPacketPtr #trigger_ci

* RemoteFilesystem::ptr => RemoteFilesystemPtr

* NetworkClient::ptr => NetworkClientPtr

* SaveFileForwarder::ptr => SaveFileForwarderPtr

* Fix NetworkClientPtr

* FilesystemForwarder::ptr => FilesystemForwarderPtr

* V4L2Buffer::ptr => V4L2BufferPtr

* V4L2Device::ptr => V4L2DevicePtr

* V4L2Control::ptr => V4L2ControlPtr

* Fwd for V4L2 Formats and nested classes #trigger_ci

* QHYControl::ptr => QHYControlPtr

* ASIImagingWorker::ptr => ASIImagingWorkerPtr

* ROIValidator::ptr => ROIValidatorPtr

* More headers cleanup
  • Loading branch information
GuLinux authored Jun 6, 2019
1 parent 46e2389 commit d073dfb
Show file tree
Hide file tree
Showing 144 changed files with 991 additions and 666 deletions.
6 changes: 4 additions & 2 deletions src/commons/filesystembrowser.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@
#define FILESYSTEM_BROWSER_H
#include <QObject>
#include <memory>
#include "commons/fwd.h"

FWD_PTR(FilesystemBrowser)
FWD(QSettings)

class QSettings;
class FilesystemBrowser : public QObject
{
Q_OBJECT
public:
typedef std::shared_ptr<FilesystemBrowser> ptr;
virtual bool isLocal() const = 0;
public slots:
virtual void pickDirectory(const QString currentDirectory = {}) const = 0;
Expand Down
10 changes: 7 additions & 3 deletions src/commons/frame.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@
#include <QDateTime>
#include <QVariantMap>
#include <chrono>
#include "commons/fwd.h"

FWD_PTR(Frame)

class Frame
{
public:
typedef std::shared_ptr<Frame> ptr;
using const_ptr = std::shared_ptr<const Frame>;
enum ColorFormat {
Mono,
RGB,
Expand All @@ -55,7 +57,7 @@ class Frame
ByteOrder byteOrder() const;

QVariantMap const as_variant();
static ptr from_variant(const QVariantMap &map);
static FramePtr from_variant(const QVariantMap &map);
typedef std::chrono::duration<double> Seconds;
Seconds exposure() const;
void set_exposure(const Seconds &exposure);
Expand All @@ -64,4 +66,6 @@ class Frame
DPTR
};



#endif // FRAME_H
31 changes: 31 additions & 0 deletions src/commons/fwd.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2019 Marco Gulino (marco AT gulinux.net)
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/


#ifndef FWD_H

#define FWD(Class) class Class;
#define PTR(Class) typedef std::shared_ptr<Class> Class ## Ptr; \
typedef std::shared_ptr<const Class> Class ## ConstPtr;

#define FWD_PTR(Class) FWD(Class)\
PTR(Class)

#define FWD_H
#endif
1 change: 0 additions & 1 deletion src/commons/ser_header.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
#ifndef _SER_HEADER_H
#define _SER_HEADER_H
#include <stdint.h>
#include "frame.h"
#include <QDateTime>
#include <QtEndian>
Expand Down
22 changes: 11 additions & 11 deletions src/drivers/driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,25 @@
#define PLANETARY_IMAGER_DRIVER_H
#include <QList>
#include <QString>
#include <QtPlugin>
#include "imager.h"
#include "dptr.h"
#include "commons/fwd.h"

FWD_PTR(Driver)
FWD_PTR(Camera)

class Camera {
public:
virtual QString name() const = 0;
virtual Imager *imager(const ImageHandlerPtr &imageHandler) const = 0;
};

class Driver : public QObject {
Q_OBJECT
public:
typedef std::shared_ptr<Driver> ptr;
class Camera {
public:
typedef std::shared_ptr<Camera> ptr;
virtual QString name() const = 0;
virtual Imager *imager(const ImageHandler::ptr &imageHandler) const = 0;
};
typedef QList<Camera::ptr> Cameras;
virtual void aboutToQuit();
virtual Cameras cameras() const = 0;
virtual QList<CameraPtr> cameras() const = 0;
};
typedef QList<Driver::ptr> Drivers;
typedef Driver *(*LoadDriverFunction)();


Expand Down
10 changes: 5 additions & 5 deletions src/drivers/flycapture2/fc2_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "fc2_imager.h"


class FC2Camera: public Driver::Camera
class FC2Camera: public Camera
{
fc2PGRGuid guid;
QString camName;
Expand All @@ -36,7 +36,7 @@ class FC2Camera: public Driver::Camera

virtual ~FC2Camera();

Imager *imager(const ImageHandler::ptr &imageHandler) const override;
Imager *imager(const ImageHandlerPtr &imageHandler) const override;

QString name() const override { return camName; }
};
Expand Down Expand Up @@ -69,18 +69,18 @@ DPTR_IMPL(FC2Driver)
{
};

Imager *FC2Camera::imager(const ImageHandler::ptr &imageHandler) const
Imager *FC2Camera::imager(const ImageHandlerPtr &imageHandler) const
{
return new FC2Imager(guid, imageHandler);
}

Driver::Cameras FC2Driver::cameras() const
QList<CameraPtr> FC2Driver::cameras() const
{
fc2Context context;
FC2_CHECK << fc2CreateContext(&context)
<< "fc2CreateContext";

Driver::Cameras result;
QList<CameraPtr> result;

unsigned int numCams;
FC2_CHECK << fc2GetNumOfCameras(context, &numCams)
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/flycapture2/fc2_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class FC2Driver: public Driver

~FC2Driver();

Driver::Cameras cameras() const override;
QList<CameraPtr> cameras() const override;

private:

Expand Down
4 changes: 2 additions & 2 deletions src/drivers/flycapture2/fc2_imager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ DPTR_IMPL(FC2Imager)
// Copies of controls; used for informing the GUI about changes in their availability
Control ctrlWhiteBalanceRed, ctrlWhiteBalanceBlue;

ROIValidator::ptr roiValidator; ///< Region of Interest validator
ROIValidatorPtr roiValidator; ///< Region of Interest validator

/// Concerns the current video mode; used to disable ROI and return to full image size
QSize maxFrameSize;
Expand Down Expand Up @@ -338,7 +338,7 @@ static fc2PixelFormat GetFirstSupportedPixelFormat(const fc2Format7Info &f7info)
return first;
}

FC2Imager::FC2Imager(const fc2PGRGuid &guid, const ImageHandler::ptr &handler)
FC2Imager::FC2Imager(const fc2PGRGuid &guid, const ImageHandlerPtr &handler)
: Imager(handler), dptr()
{
//FIXME: if a CHECK fails in Imager constructor, there is a segfault (instead of printing the caught exception)
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/flycapture2/fc2_imager.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class FC2Imager: public Imager

public:

FC2Imager(const fc2PGRGuid &guid, const ImageHandler::ptr &handler);
FC2Imager(const fc2PGRGuid &guid, const ImageHandlerPtr &handler);

virtual ~FC2Imager();

Expand Down
3 changes: 2 additions & 1 deletion src/drivers/flycapture2/fc2_worker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

#include "fc2_exception.h"
#include "fc2_worker.h"
#include "commons/frame.h"


// Captured frames may be "inconsistent" (have damaged contents), e.g. sometimes when using GigE cameras
Expand Down Expand Up @@ -131,7 +132,7 @@ void FC2ImagerWorker::initFrameInfo()
}
}

Frame::ptr FC2ImagerWorker::shoot()
FramePtr FC2ImagerWorker::shoot()
{
// //TODO: fail gracefully if cannot capture

Expand Down
2 changes: 1 addition & 1 deletion src/drivers/flycapture2/fc2_worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class FC2ImagerWorker: public ImagerThread::Worker
/// Must be already validated; also used as the initial frame size for Format7 modes
const QRect &roi);

Frame::ptr shoot() override;
FramePtr shoot() override;

virtual ~FC2ImagerWorker();
};
Expand Down
10 changes: 5 additions & 5 deletions src/drivers/iidc/iidc_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ DPTR_IMPL(IIDCDriver)
std::unique_ptr<dc1394camera_list_t, Deleters::camera_list> cameraList;
};

class IIDCCamera: public Driver::Camera
class IIDCCamera: public Camera
{
dc1394_t *context;
dc1394camera_id_t camId;
Expand All @@ -50,7 +50,7 @@ class IIDCCamera: public Driver::Camera

virtual ~IIDCCamera();

Imager *imager(const ImageHandler::ptr &imageHandler) const override;
Imager *imager(const ImageHandlerPtr &imageHandler) const override;

QString name() const override { return m_Name; }
};
Expand All @@ -59,7 +59,7 @@ IIDCCamera::~IIDCCamera()
{
}

Imager *IIDCCamera::imager(const ImageHandler::ptr &imageHandler) const
Imager *IIDCCamera::imager(const ImageHandlerPtr &imageHandler) const
{
std::unique_ptr<dc1394camera_t, Deleters::camera> cam(dc1394_camera_new_unit(context, camId.guid, camId.unit));

Expand All @@ -74,12 +74,12 @@ Imager *IIDCCamera::imager(const ImageHandler::ptr &imageHandler) const
return new IIDCImager(std::move(cam), imageHandler, m_Name, vendor);
}

Driver::Cameras IIDCDriver::cameras() const
QList<CameraPtr> IIDCDriver::cameras() const
{
if (!d->context)
return { };

Driver::Cameras cameras;
QList<CameraPtr> cameras;

dc1394camera_list_t *ptr;
auto result = dc1394_camera_enumerate(d->context.get(), &ptr);
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/iidc/iidc_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class IIDCDriver: public Driver

~IIDCDriver();

Driver::Cameras cameras() const override;
QList<CameraPtr> cameras() const override;

private:

Expand Down
4 changes: 2 additions & 2 deletions src/drivers/iidc/iidc_imager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ DPTR_IMPL(IIDCImager)
/// Copy of the SHUTTER control; used for informing GUI about shutter range change when frame rate changes
Control ctrlShutter;

ROIValidator::ptr roiValidator; ///< Region of Interest validator
ROIValidatorPtr roiValidator; ///< Region of Interest validator

/// Concerns the current video mode; used to disable ROI and return to full image size
QSize maxFrameSize;
Expand Down Expand Up @@ -215,7 +215,7 @@ Imager::Control IIDCImager::Private::getFrameRates(dc1394video_mode_t vidMode)

//Q_DECLARE_METATYPE(IIDCImagerWorker::ImageType)

IIDCImager::IIDCImager(std::unique_ptr<dc1394camera_t, Deleters::camera> camera, const ImageHandler::ptr &handler,
IIDCImager::IIDCImager(std::unique_ptr<dc1394camera_t, Deleters::camera> camera, const ImageHandlerPtr &handler,
const QString &cameraName, const QString &cameraVendor)
: Imager(handler), dptr(cameraName, cameraVendor)
{
Expand Down
2 changes: 1 addition & 1 deletion src/drivers/iidc/iidc_imager.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class IIDCImager: public Imager

public:

IIDCImager(std::unique_ptr<dc1394camera_t, Deleters::camera> camera, const ImageHandler::ptr &handler,
IIDCImager(std::unique_ptr<dc1394camera_t, Deleters::camera> camera, const ImageHandlerPtr &handler,
const QString &cameraName, const QString &cameraVendor);

virtual ~IIDCImager();
Expand Down
3 changes: 2 additions & 1 deletion src/drivers/iidc/iidc_worker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "iidc_exception.h"
#include "iidc_worker.h"
#include <QRect>
#include "commons/frame.h"


IIDCImagerWorker::IIDCImagerWorker(dc1394camera_t *_camera, dc1394video_mode_t _vidMode,
Expand Down Expand Up @@ -104,7 +105,7 @@ static bool isYUV(dc1394color_coding_t colorCoding)
colorCoding == DC1394_COLOR_CODING_YUV444;
}

Frame::ptr IIDCImagerWorker::shoot()
FramePtr IIDCImagerWorker::shoot()
{
//TODO: fail gracefully if cannot capture
IIDC_CHECK << dc1394_capture_dequeue(camera, DC1394_CAPTURE_POLICY_WAIT, &nativeFrame)
Expand Down
3 changes: 2 additions & 1 deletion src/drivers/iidc/iidc_worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <commons/utils.h>
#include <dc1394/dc1394.h>
#include <drivers/imagerthread.h>
#include "commons/frame.h" // TODO: remove, moving struct frameinfo into cpp file


class IIDCImagerWorker: public ImagerThread::Worker
Expand Down Expand Up @@ -65,7 +66,7 @@ class IIDCImagerWorker: public ImagerThread::Worker
/// Must be already validated; also used as the initial frame size for Format7 modes
const QRect &roi);

Frame::ptr shoot() override;
FramePtr shoot() override;

virtual ~IIDCImagerWorker();
};
Expand Down
6 changes: 3 additions & 3 deletions src/drivers/imager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ using namespace std;
using namespace std::placeholders;

DPTR_IMPL(Imager) {
const ImageHandler::ptr image_handler;
ImagerThread::ptr imager_thread;
const ImageHandlerPtr image_handler;
ImagerThreadPtr imager_thread;
LOG_C_SCOPE(Imager);
unique_ptr<QHash<Imager::Capability, bool>> capabilities;
bool destroyed = false;
Configuration::CaptureEndianess captureEndianess = Configuration::CaptureEndianess::CameraDefault;
};

Imager::Imager(const ImageHandler::ptr& image_handler) : QObject(nullptr), dptr(image_handler)
Imager::Imager(const ImageHandlerPtr& image_handler) : QObject(nullptr), dptr(image_handler)
{
static bool metatypes_registered = false;
if(!metatypes_registered) {
Expand Down
3 changes: 1 addition & 2 deletions src/drivers/imager.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
#include <QObject>
#include <QDebug>
#include <QSet>
#include "image_handlers/imagehandler.h"
#include "imagerthread.h"
#include "c++/dptr.h"
#include <QWaitCondition>
Expand All @@ -34,7 +33,7 @@ class Imager : public QObject {
Q_OBJECT
public:
class exception;
Imager(const ImageHandler::ptr &image_handler);
Imager(const ImageHandlerPtr &image_handler);
virtual ~Imager();
struct Control;
struct Properties;
Expand Down
1 change: 1 addition & 0 deletions src/drivers/imagerproperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

#include "imager.h"
#include "Qt/qt_strings_helper.h"
#include <QSize>

using namespace std;

Expand Down
Loading

0 comments on commit d073dfb

Please sign in to comment.