summaryrefslogtreecommitdiff
path: root/noncore/multimedia/camera/lib/zcameraio.h
Side-by-side diff
Diffstat (limited to 'noncore/multimedia/camera/lib/zcameraio.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/camera/lib/zcameraio.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/noncore/multimedia/camera/lib/zcameraio.h b/noncore/multimedia/camera/lib/zcameraio.h
new file mode 100644
index 0000000..3352a5e
--- a/dev/null
+++ b/noncore/multimedia/camera/lib/zcameraio.h
@@ -0,0 +1,86 @@
+/**********************************************************************
+** Copyright (C) 2003 Michael 'Mickey' Lauer. All rights reserved.
+**
+** This file is part of Opie Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#ifndef ZCAMERAIO_H
+#define ZCAMERAIO_H
+
+#include <qobject.h>
+
+class QImage;
+class QTime;
+
+class ZCameraIO : public QObject
+{
+ Q_OBJECT
+
+ public:
+ virtual ~ZCameraIO();
+
+ enum ReadMode
+ {
+ IMAGE = 0, STATUS = 1,
+ FASTER = 0, BETTER = 2,
+ XNOFLIP = 0, XFLIP = 4,
+ YNOFLIP = 0, YFLIP = 8,
+ AUTOMATICFLIP = -1
+ };
+
+ // low level interface
+
+ bool setCaptureFrame( int w, int h, int zoom = 256, bool rot = true );
+ bool setZoom( int zoom = 0 );
+ void setReadMode( int = IMAGE | XFLIP | YFLIP );
+ void setFlip( int flip );
+
+ bool isShutterPressed(); // not const, because it calls clearShutterLatch
+ bool isAvailable() const;
+ bool isCapturing() const;
+ bool isFinderReversed() const;
+
+ bool snapshot( QImage* image );
+ bool snapshot( unsigned char* buf );
+
+ // high level interface
+ bool isOpen() const;
+ static ZCameraIO* instance();
+ void captureFrame( int w, int h, int zoom, QImage* image );
+ void captureFrame( int w, int h, int zoom, unsigned char* buf );
+
+ protected:
+ ZCameraIO();
+ void clearShutterLatch();
+ void init();
+ bool read( char*, int );
+ bool write( char*, int = 0 );
+
+ signals:
+ void shutterClicked();
+
+ private:
+ int _driver;
+ char _status[4];
+ bool _pressed;
+ static ZCameraIO* _instance;
+ int _height;
+ int _width;
+ int _zoom;
+ int _flip;
+ bool _rot;
+ int _readlen;
+
+ QTime* _timer;
+};
+
+#endif