Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
main.cpp 1.72 KiB
#include "console.h"
#include "../core.h"
#include "../utils.h"

// #include "qnamespace.h"
#include <QCoreApplication>
#include <QTimer>

int main(int argc, char *argv[])
{

	QCoreApplication a(argc, argv);
	QCoreApplication::setApplicationVersion(getVersion());
	QCoreApplication::setApplicationName("recorder");

	Controller controller;
	Core core;

	//ui (controller) -> vmb (core)
	QObject::connect(&controller, &Controller::listCams, &core, &Core::listCams);
	QObject::connect(&controller, &Controller::openCam, &core, &Core::openCam);
	QObject::connect(&controller, &Controller::setCam, &core, &Core::setCam);
	QObject::connect(&controller, &Controller::startRecording, &core, &Core::startRecording);
	QObject::connect(&controller, &Controller::stopRecording, &core, &Core::stopRecording);
	// XXX add new func

	//vmb (core) -> ui (controller.console)
	QObject::connect(&core, SIGNAL(error(const QString&, const int&)), controller.console, SLOT(error(const QString&, const int&)), Qt::DirectConnection);
	QObject::connect(&core, SIGNAL(error(const int&)), controller.console, SLOT(error(const int&)), Qt::DirectConnection);
	QObject::connect(&core, SIGNAL(print(const QString&)), controller.console, SLOT(print(const QString&)), Qt::DirectConnection);
	QObject::connect(&core, SIGNAL(print(const QStringList&)), controller.console, SLOT(print(const QStringList&)), Qt::DirectConnection);
	// sa Controller() for delegating to Console

	QTimer::singleShot(0, &controller, SIGNAL(operate()));
	// QTimer::singleShot(10, controller.console, SLOT(printVersion()), Qt::DirectConnection); // for testing
	QTimer::singleShot(30, &core, SLOT(listCams())); // for testing
	// QTimer::singleShot(200, &core, SLOT(openCam())); // for testing

	return a.exec();
}