summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/camera/mainwindow.cpp36
-rw-r--r--noncore/multimedia/camera/mainwindow.h2
-rw-r--r--noncore/multimedia/camera/zcameraio.cpp10
-rw-r--r--noncore/multimedia/camera/zcameraio.h2
4 files changed, 42 insertions, 8 deletions
diff --git a/noncore/multimedia/camera/mainwindow.cpp b/noncore/multimedia/camera/mainwindow.cpp
index 7080e63..34ebe9e 100644
--- a/noncore/multimedia/camera/mainwindow.cpp
+++ b/noncore/multimedia/camera/mainwindow.cpp
@@ -19,9 +19,12 @@
19 19
20#include <qvbox.h> 20#include <qvbox.h>
21#include <qcombobox.h> 21#include <qcombobox.h>
22#include <qcursor.h>
22#include <qdatastream.h> 23#include <qdatastream.h>
23#include <qpushbutton.h>
24#include <qlabel.h> 24#include <qlabel.h>
25#include <qpopupmenu.h>
26#include <qpushbutton.h>
27#include <qmessagebox.h>
25#include <qdirectpainter_qws.h> 28#include <qdirectpainter_qws.h>
26#include <qpe/resource.h> 29#include <qpe/resource.h>
27#include <qpe/qcopenvelope_qws.h> 30#include <qpe/qcopenvelope_qws.h>
@@ -34,6 +37,21 @@
34CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f ) 37CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f )
35 :QMainWindow( parent, name, f ) 38 :QMainWindow( parent, name, f )
36{ 39{
40 if ( !ZCameraIO::instance()->isOpen() )
41 {
42 QVBox* v = new QVBox( this );
43 v->setMargin( 10 );
44 QLabel* l1 = new QLabel( v );
45 l1->setPixmap( Resource::loadPixmap( "camera/error" ) );
46 QLabel* l2 = new QLabel( v );
47 l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>"
48 "* Is the sharpzdc_cs module loaded ?<br>"
49 "* Is /dev/sharpzdc read/writable ?<p>" );
50 connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) );
51 setCentralWidget( v );
52 return;
53 }
54
37 _rotation = 270; //TODO: grab these from the actual settings 55 _rotation = 270; //TODO: grab these from the actual settings
38 56
39 preview = new PreviewWidget( this, "camera preview widget" ); 57 preview = new PreviewWidget( this, "camera preview widget" );
@@ -46,6 +64,7 @@ CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags
46 connect( _sysChannel, SIGNAL( received( const QCString&, const QByteArray& ) ), 64 connect( _sysChannel, SIGNAL( received( const QCString&, const QByteArray& ) ),
47 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); 65 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) );
48 66
67 connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) );
49}; 68};
50 69
51 70
@@ -67,7 +86,9 @@ void CameraMainWindow::systemMessage( const QCString& msg, const QByteArray& dat
67 { 86 {
68 case 270: preview->resize( QSize( 240, 288 ) ); break; 87 case 270: preview->resize( QSize( 240, 288 ) ); break;
69 case 180: preview->resize( QSize( 320, 208 ) ); break; 88 case 180: preview->resize( QSize( 320, 208 ) ); break;
70 default: assert( 0 ); // not yet handled 89 default: QMessageBox::warning( this, "opie-camera",
90 "This rotation is not supported.\n"
91 "Supported are 180° and 270°" );
71 } 92 }
72 } 93 }
73} 94}
@@ -87,3 +108,14 @@ void CameraMainWindow::changeZoom( int zoom )
87 ZCameraIO::instance()->setCaptureFrame( 240, 160, z ); 108 ZCameraIO::instance()->setCaptureFrame( 240, 160, z );
88} 109}
89 110
111
112void CameraMainWindow::showContextMenu()
113{
114 QPopupMenu m( this );
115 m.insertItem( "Item 1" );
116 m.insertItem( "Item 1" );
117 m.insertItem( "Item 1" );
118 m.insertItem( "Item 1" );
119 m.exec( QCursor::pos() );
120}
121
diff --git a/noncore/multimedia/camera/mainwindow.h b/noncore/multimedia/camera/mainwindow.h
index cc12840..df66204 100644
--- a/noncore/multimedia/camera/mainwindow.h
+++ b/noncore/multimedia/camera/mainwindow.h
@@ -40,6 +40,8 @@ class CameraMainWindow: public QMainWindow
40 void changeZoom( int ); 40 void changeZoom( int );
41 void systemMessage( const QCString&, const QByteArray& ); 41 void systemMessage( const QCString&, const QByteArray& );
42 42
43 void showContextMenu();
44
43 protected: 45 protected:
44 46
45 private: 47 private:
diff --git a/noncore/multimedia/camera/zcameraio.cpp b/noncore/multimedia/camera/zcameraio.cpp
index 51771a5..b37ae8c 100644
--- a/noncore/multimedia/camera/zcameraio.cpp
+++ b/noncore/multimedia/camera/zcameraio.cpp
@@ -75,32 +75,32 @@ ZCameraIO::~ZCameraIO()
75} 75}
76 76
77 77
78inline bool ZCameraIO::isOpen() const 78bool ZCameraIO::isOpen() const
79{ 79{
80 return _driver != -1; 80 return _driver != -1;
81} 81}
82 82
83 83
84inline bool ZCameraIO::isShutterPressed() 84bool ZCameraIO::isShutterPressed()
85{ 85{
86 return _status[0] == 'S'; 86 return _status[0] == 'S';
87 clearShutterLatch(); 87 clearShutterLatch();
88} 88}
89 89
90 90
91inline bool ZCameraIO::isFinderReversed() const 91bool ZCameraIO::isFinderReversed() const
92{ 92{
93 return _status[1] == 'M'; 93 return _status[1] == 'M';
94} 94}
95 95
96 96
97inline bool ZCameraIO::isCapturing() const 97bool ZCameraIO::isCapturing() const
98{ 98{
99 return _status[2] == 'C'; 99 return _status[2] == 'C';
100} 100}
101 101
102 102
103inline bool ZCameraIO::isAvailable() const 103bool ZCameraIO::isAvailable() const
104{ 104{
105 return _status[3] == 'A'; 105 return _status[3] == 'A';
106} 106}
diff --git a/noncore/multimedia/camera/zcameraio.h b/noncore/multimedia/camera/zcameraio.h
index bc4926b..9d4b1d7 100644
--- a/noncore/multimedia/camera/zcameraio.h
+++ b/noncore/multimedia/camera/zcameraio.h
@@ -38,8 +38,8 @@ class ZCameraIO
38 bool isAvailable() const; 38 bool isAvailable() const;
39 bool isCapturing() const; 39 bool isCapturing() const;
40 bool isFinderReversed() const; 40 bool isFinderReversed() const;
41
42 bool isOpen() const; 41 bool isOpen() const;
42
43 bool snapshot( QImage* ); 43 bool snapshot( QImage* );
44 bool snapshot( unsigned char* ); 44 bool snapshot( unsigned char* );
45 static ZCameraIO* instance(); 45 static ZCameraIO* instance();