diff options
Diffstat (limited to 'kopete/protocols/testbed/ui')
-rw-r--r-- | kopete/protocols/testbed/ui/Makefile.am | 7 | ||||
-rw-r--r-- | kopete/protocols/testbed/ui/testbedwebcamdialog.cpp | 80 | ||||
-rw-r--r-- | kopete/protocols/testbed/ui/testbedwebcamdialog.h | 60 |
3 files changed, 147 insertions, 0 deletions
diff --git a/kopete/protocols/testbed/ui/Makefile.am b/kopete/protocols/testbed/ui/Makefile.am new file mode 100644 index 00000000..1bbf604c --- /dev/null +++ b/kopete/protocols/testbed/ui/Makefile.am @@ -0,0 +1,7 @@ +INCLUDES = +METASOURCES = AUTO +AM_CPPFLAGS = $(KOPETE_INCLUDES) -I$(srcdir)/.. $(all_includes) +libkopetetestbedui_la_LDFLAGS = $(all_libraries) +noinst_LTLIBRARIES = libkopetetestbedui.la +noinst_HEADERS = testbedwebcamdialog.h +libkopetetestbedui_la_SOURCES = testbedwebcamdialog.cpp diff --git a/kopete/protocols/testbed/ui/testbedwebcamdialog.cpp b/kopete/protocols/testbed/ui/testbedwebcamdialog.cpp new file mode 100644 index 00000000..22884036 --- /dev/null +++ b/kopete/protocols/testbed/ui/testbedwebcamdialog.cpp @@ -0,0 +1,80 @@ +/* + Kopete Testbed Protocol + + Copyright (c) 2006 by Cláudio da Silveira Pinheiro <[email protected]> + Kopete (c) 2002-2006 by the Kopete developers <[email protected]> + + ************************************************************************* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ************************************************************************* +*/ + +#include "testbedwebcamdialog.h" +#include <webcamwidget.h> +#include "avdevice/videodevicepool.h" + +#include <qframe.h> +#include <qobject.h> +#include <qwidget.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qvbox.h> +#include <kdebug.h> +#include <klocale.h> + +TestbedWebcamDialog::TestbedWebcamDialog( const QString &contactId, QWidget * parent, const char * name ) +: KDialogBase( KDialogBase::Plain, Qt::WDestructiveClose, parent, name, false, i18n( "Webcam for %1" ).arg( contactId ), + KDialogBase::Close, KDialogBase::Close, true /*seperator*/ ) +{ + setInitialSize( QSize(320,290), false ); + + setEscapeButton( KDialogBase::Close ); +// QObject::connect( this, SIGNAL( closeClicked() ), this, SIGNAL( closingWebcamDialog() ) ); + + QWidget *page = plainPage(); + setMainWidget(page); + + QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() ); + mImageContainer = new Kopete::WebcamWidget( page ); + mImageContainer->setMinimumSize(320,240); + mImageContainer->setText( i18n( "No webcam image received" ) ); + mImageContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + topLayout->add( mImageContainer ); + + show(); + + mVideoDevicePool = Kopete::AV::VideoDevicePool::self(); + mVideoDevicePool->open(); + mVideoDevicePool->setSize(320, 240); + mVideoDevicePool->startCapturing(); + mVideoDevicePool->getFrame(); + mVideoDevicePool->getImage(&mImage); +kdDebug() << "Just captured 1st frame" << endl; + + mPixmap=QPixmap(320,240,-1, QPixmap::DefaultOptim); + if (mPixmap.convertFromImage(mImage,0) == true) + mImageContainer->updatePixmap(mPixmap); + connect(&qtimer, SIGNAL(timeout()), this, SLOT(slotUpdateImage()) ); + qtimer.start(0,FALSE); +} + +TestbedWebcamDialog::~ TestbedWebcamDialog( ) +{ + mVideoDevicePool->stopCapturing(); + mVideoDevicePool->close(); +} + +void TestbedWebcamDialog::slotUpdateImage() +{ + mVideoDevicePool->getFrame(); + mVideoDevicePool->getImage(&mImage); + mImageContainer->updatePixmap( QPixmap( mImage ) ); +} + + +#include "testbedwebcamdialog.moc" diff --git a/kopete/protocols/testbed/ui/testbedwebcamdialog.h b/kopete/protocols/testbed/ui/testbedwebcamdialog.h new file mode 100644 index 00000000..59f43e68 --- /dev/null +++ b/kopete/protocols/testbed/ui/testbedwebcamdialog.h @@ -0,0 +1,60 @@ +/* + Kopete Testbed Protocol + + Copyright (c) 2006 by Cláudio da Silveira Pinheiro <[email protected]> + Kopete (c) 2002-2006 by the Kopete developers <[email protected]> + + ************************************************************************* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ************************************************************************* +*/ + +#ifndef TESTBEDWEBCAMDIALOG_H +#define TESTBEDWEBCAMDIALOG_H + +#include <qstring.h> +#include <qimage.h> +#include <qtimer.h> +#include <qpixmap.h> +#include <kdialogbase.h> + +/** + @author Kopete Developers <[email protected]> +*/ +class QPixmap; +class QWidget; +class TestbedContact; + +namespace Kopete { + namespace AV { + class VideoDevicePool; + } + class WebcamWidget; +} + +class TestbedWebcamDialog : public KDialogBase +{ +Q_OBJECT +public: + TestbedWebcamDialog( const QString &, QWidget* parent = 0, const char* name = 0 ); + ~TestbedWebcamDialog(); + +public slots: + void slotUpdateImage(); +//signals: +// void closingWebcamDialog(); + +private: + Kopete::WebcamWidget *mImageContainer; + QImage mImage; + QTimer qtimer; + QPixmap mPixmap; + Kopete::AV::VideoDevicePool *mVideoDevicePool; +}; + +#endif |