Hi All,
to be able to use camera in my app i've decided to use CCamera class and MCameraObserver2, below yuo'll find all my class code:
@
//MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <ecam.h>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow, public MCameraObserver2
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
//Derived from MCameraObserver2
public:
void HandleEvent(const TECAMEvent &);
void ImageBufferReady(MCameraBuffer &, TInt);
void VideoBufferReady(MCameraBuffer &, TInt);
void ViewFinderReady(MCameraBuffer &, TInt);
~MainWindow();
private:
Ui::MainWindow *ui;
bool iCameraOn;
private slots:
void on_pushButton_clicked();
public:
CCamera *iCamera;
TCameraInfo iCameraInfo;
};
#endif // MAINWINDOW_H
@
@
//MainWindow.cpp
#include <ecam.h>
//----------------
//To remove
#include <QDebug>
//----------------
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
iCamera=0;
QWidget::setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint);
setWindowFlags(Qt::WindowSoftkeysVisibleHint); //To be ablet to see down soft keys
iCameraOn=false;
}
MainWindow::~MainWindow()
{
qDebug()<<"Delete MainWindow";
if (iCamera!=0)
{
iCamera->Release();
delete iCamera;
iCamera=0;
}
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
//Activate Camera
// iCamera=CCamera::New2L(*this,CCamera::CamerasAvailable(),(TInt) 50);
TInt a_TInt_NoOfCameraAvailable=CCamera::CamerasAvailable();
int a_int_NoOfCameraAvailable=(int) a_TInt_NoOfCameraAvailable;
qDebug()<<"CamerasAvailable return value: "<<a_int_NoOfCameraAvailable;
if (a_int_NoOfCameraAvailable>0)
{
if (iCamera==NULL)
{
qDebug()<<"00 - Building iCamera and reserve it";
iCamera=CCamera::New2L(*this,0,0);
iCamera->Reserve();
}
}
}
void MainWindow::HandleEvent(const TECAMEvent & aEvent)
{
QString aString="I'm in HandleEvent";
qDebug()<<aString;
switch (aEvent.iEventType.iUid)
{
case 270499131:
{
//Reserve Complete
qDebug()<<"01 - Reserve Complete start power on";
if (iCameraOn==false)
{
qDebug()<<"MainWindow::HandleEvent iCamera->PowerOn();";
iCamera->PowerOn();
iCameraOn=true;
}
break;
}
case 270499132:
{
//PowerOn Complete
qDebug()<<"02 - Power On complete";
iCameraInfo;
iCamera->CameraInfo(iCameraInfo);
iCamera->PrepareImageCaptureL(CCamera::EFormatJpeg,0,TRect(0,0,360,640));
break;
}
default:
{
qDebug()<<"aEvent= "<<(int)aEvent.iEventType.iUid;
break;
}
}
}
void MainWindow::ImageBufferReady(MCameraBuffer & aCameraBuffer, TInt)
{
QString aString="I'm in ImageBufferReady";
qDebug()<<aString;
}
void MainWindow::VideoBufferReady(MCameraBuffer &aCameraBuffer, TInt)
{
QString aString="I'm in VideoBufferReady";
qDebug()<<aString;
}
void MainWindow::ViewFinderReady(MCameraBuffer &aCameraBuffer, TInt)
{
QString aString="I'm in ViewFinderReady";
qDebug()<<aString;
}
@
But when i run program console said: 'CActiveScheduler::RunIfReady() returned error: -5'
Could you please le tme know where i'm wronging.
Thanks.