#ifndef UTILS_H
#define UTILS_H

#include "VmbC/VmbCommonTypes.h" //VmbError_t -> cant really fwd-decl typedef...??

#include <atomic>
#include <chrono>

#include <QString>
#include <QList>
#include <QPair>

class QDir;
using std::chrono::seconds;
using namespace std::chrono_literals;

namespace utils
{

bool parseConfig(QList<QPair<QString,QString>>&, seconds&);
QString configFile(QString filename="");
QString settingsFile(QString filename="");
QString outDir(QString dirname="");
QString getFirstFileInAppDirEndingWith( QString const&);


const QStringList getVersions();
const QString getVersion();
const QString errorCodeToMessage( VmbError_t );

extern std::atomic<bool> running; //global flag to ensure proper exit of threads
int threadsPerCam();
int ncam();

const QChar DELIM='|';

typedef enum camtronErr
{
	errCamIdx	=	10,		//!< camera index out of range
	errNoCams	=	11,		//!< no cameras found
	errRegisterCamObserver	=	12,		//!< cant register camobserver
	errLessCamsThanExpected	=	13,		//!< no cameras found
} camtronErr;

} //namespace utils


#endif