From: Mohammed Sameer Date: Wed, 29 Aug 2012 14:04:16 +0000 (+0300) Subject: Added stopping() signal and emit stopping(), stopped() and started() X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=commitdiff_plain;h=fbaeb71472156bb1ac703209e89efb973d4f60d3 Added stopping() signal and emit stopping(), stopped() and started() --- diff --git a/lib/qtcamdevice.cpp b/lib/qtcamdevice.cpp index f93efb3..5db3fd2 100644 --- a/lib/qtcamdevice.cpp +++ b/lib/qtcamdevice.cpp @@ -48,8 +48,9 @@ QtCamDevice::QtCamDevice(QtCamConfig *config, const QString& name, QObject::connect(d_ptr->listener, SIGNAL(error(const QString&, int, const QString&)), this, SLOT(_d_error(const QString&, int, const QString&))); - QObject::connect(d_ptr->listener, SIGNAL(started()), this, SIGNAL(started())); - QObject::connect(d_ptr->listener, SIGNAL(stopped()), this, SIGNAL(stopped())); + QObject::connect(d_ptr->listener, SIGNAL(started()), this, SLOT(_d_started())); + QObject::connect(d_ptr->listener, SIGNAL(stopped()), this, SLOT(_d_stopped())); + QObject::connect(d_ptr->listener, SIGNAL(stopping()), this, SLOT(_d_stopping())); g_signal_connect(d_ptr->cameraBin, "notify::idle", G_CALLBACK(QtCamDevicePrivate::on_idle_changed), d_ptr); diff --git a/lib/qtcamdevice.h b/lib/qtcamdevice.h index b5c7ae5..1b6d229 100644 --- a/lib/qtcamdevice.h +++ b/lib/qtcamdevice.h @@ -42,11 +42,18 @@ public: signals: void error(const QString& message, int code, const QString& debug); void started(); + void stopping(); void stopped(); void idleStateChanged(bool isIdle); + void modeChanged(); + void runningStateChanged(bool running); private: Q_PRIVATE_SLOT(d_ptr, void _d_error(const QString&, int, const QString&)) + Q_PRIVATE_SLOT(d_ptr, void _d_started()) + Q_PRIVATE_SLOT(d_ptr, void _d_stopped()) + Q_PRIVATE_SLOT(d_ptr, void _d_stopping()) + friend class QtCamMetaData; QtCamDevicePrivate *d_ptr; }; diff --git a/lib/qtcamdevice_p.h b/lib/qtcamdevice_p.h index 34d7022..8315bdb 100644 --- a/lib/qtcamdevice_p.h +++ b/lib/qtcamdevice_p.h @@ -110,6 +110,30 @@ public: Q_ARG(int, code), Q_ARG(QString, debug)); } + void _d_stopped() { + QMetaObject::invokeMethod(q_ptr, "stopped"); + } + + void _d_stopping() { + if (active) { + QMetaObject::invokeMethod(active, "canCaptureChanged", Qt::QueuedConnection); + } + + QMetaObject::invokeMethod(q_ptr, "stopping", Qt::QueuedConnection); + QMetaObject::invokeMethod(q_ptr, "runningStateChanged", Qt::QueuedConnection, + Q_ARG(bool, false)); + } + + void _d_started() { + if (active) { + QMetaObject::invokeMethod(active, "canCaptureChanged", Qt::QueuedConnection); + } + + QMetaObject::invokeMethod(q_ptr, "started", Qt::QueuedConnection); + QMetaObject::invokeMethod(q_ptr, "runningStateChanged", Qt::QueuedConnection, + Q_ARG(bool, true)); + } + void setAudioCaptureCaps() { QString captureCaps = conf->audioCaptureCaps(); if (!captureCaps.isEmpty()) {