1 #include "qtcamviewfinderrenderer.h"
2 #include "qtcamconfig.h"
6 static QMap<QString, QMetaObject> _renderers;
8 QtCamViewfinderRenderer::QtCamViewfinderRenderer(QtCamConfig *config, QObject *parent) :
14 QtCamViewfinderRenderer::~QtCamViewfinderRenderer() {
18 QtCamViewfinderRenderer *QtCamViewfinderRenderer::create(QtCamConfig *config, QObject *parent) {
19 QString key = config->viewfinderRenderer();
20 if (!_renderers.contains(key)) {
21 qCritical() << "Unknown renderer" << key << "will fallback to" << RENDERER_TYPE_GENERIC;
22 key = RENDERER_TYPE_GENERIC;
25 QObject *obj = _renderers[key].newInstance(Q_ARG(QtCamConfig *, config),
26 Q_ARG(QObject *, parent));
29 qCritical() << "Failed to create renderer" << key;
33 return dynamic_cast<QtCamViewfinderRenderer *>(obj);
36 int QtCamViewfinderRenderer::registerRenderer(const QString& key, const QMetaObject& meta) {
37 _renderers[key] = meta;
38 return _renderers.size() - 1;