summaryrefslogtreecommitdiff
path: root/camlibs/iclick/iclick.h
diff options
context:
space:
mode:
Diffstat (limited to 'camlibs/iclick/iclick.h')
-rw-r--r--camlibs/iclick/iclick.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/camlibs/iclick/iclick.h b/camlibs/iclick/iclick.h
new file mode 100644
index 000000000..2b27a93ef
--- /dev/null
+++ b/camlibs/iclick/iclick.h
@@ -0,0 +1,94 @@
+/*
+ * iclick.c
+ *
+ * Here, the functions which are needed to get data from the camera.
+ *
+ * Copyright (c) 2004 Theodore Kilgore <kilgota@auburn.edu>,
+ * Stephen Pollei <stephen_pollei@comcast.net>.
+ * Camera library support under libgphoto2.1.1 for camera(s)
+ * with chipset from Service & Quality Technologies, Taiwan.
+ * The chip supported by this driver is presumed to be the SQ915.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Licensed under GNU Lesser General Public License, as part of Gphoto
+ * camera support project. For a copy of the license, see the file
+ * COPYING in the main source tree of libgphoto2.
+ */
+
+
+
+#ifndef __ICLICK_H__
+#define __ICLICK_H__
+
+#include <libgphoto2_port/gphoto2-port.h>
+
+/* A 'picture' is a single standalone picture.
+ * A 'clip' is an autoshoot clip.
+ * A 'frame' is a single a picture out of a clip.
+ * An 'entry' corresponds to a line listed in the camera's configuration data,
+ * part of which is a rudimentary allocation table (the 'catalog').
+ * An entry, therefore, may be either a picture or a clip.
+ * We reserve the word 'file' for the user fetchable file,
+ * that is, a picture or a frame.
+ */
+
+
+typedef enum {
+ SQ_MODEL_POCK_CAM,
+ SQ_MODEL_PRECISION,
+ SQ_MODEL_MAGPIX,
+ SQ_MODEL_ICLICK,
+ SQ_MODEL_DEFAULT
+} SQModel;
+
+
+
+struct _CameraPrivateLibrary {
+ SQModel model;
+ unsigned char *catalog;
+ int nb_entries;
+ int data_offset;
+};
+
+
+// #define ID 0xf0
+enum icl_cmnd_type {
+ CONFIG =0x20,
+ DATA =0x30,
+ CLEAR =0xa0,
+ CAPTURE=0x61,
+};
+
+enum icl_index_type {
+ CONFIG_I =0x300,
+ DATA_I =0x000,
+ CLEAR_I =0x000,
+ CAPTURE_I=0x000,
+};
+
+
+int icl_access_reg (GPPort *, enum icl_cmnd_type);
+
+#if 0
+#define icl_access_reg(iar_port, iar_kind) do { \
+ SQWRITE (iar_port, 0x0c, iar_kind, iar_kind##_I, NULL, 0); \
+ } while (0)
+#endif
+
+int icl_reset (GPPort *);
+int icl_rewind (GPPort *, CameraPrivateLibrary *);
+int icl_init (GPPort *, CameraPrivateLibrary *);
+unsigned char *icl_read_picture_data (GPPort *, unsigned char *data, int size);
+
+/* Those functions don't need data transfer with the camera */
+
+int icl_get_start (CameraPrivateLibrary *, int entry);
+int icl_get_size (CameraPrivateLibrary *, int entry);
+int icl_get_width_height (CameraPrivateLibrary *, int entry, int *w, int *h);
+
+#endif
+