summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cameras/pco.c11
-rw-r--r--src/uca-cam.h9
-rw-r--r--src/uca.c1
-rw-r--r--src/uca.h11
4 files changed, 32 insertions, 0 deletions
diff --git a/src/cameras/pco.c b/src/cameras/pco.c
index c11ba24..e643ab0 100644
--- a/src/cameras/pco.c
+++ b/src/cameras/pco.c
@@ -90,6 +90,9 @@ static uint32_t uca_pco_set_property(struct uca_camera_priv *cam, enum uca_prope
case UCA_PROP_TIMESTAMP_MODE:
return pco_set_timestamp_mode(GET_PCO(cam), *((uint16_t *) data));
+ case UCA_PROP_HOTPIXEL_CORRECTION:
+ return pco_set_hotpixel_correction(GET_PCO(cam), *(uint32_t *) data);
+
default:
return err | UCA_ERR_INVALID;
}
@@ -219,6 +222,14 @@ static uint32_t uca_pco_get_property(struct uca_camera_priv *cam, enum uca_prope
}
break;
+ case UCA_PROP_HOTPIXEL_CORRECTION:
+ {
+ SC2_Hot_Pixel_Correction_Mode_Response response;
+ if (pco_read_property(pco, GET_HOT_PIXEL_CORRECTION_MODE, &response, sizeof(response)) == PCO_NOERROR)
+ uca_set_void(data, uint32_t, response.wMode);
+ }
+ break;
+
default:
return UCA_ERR_CAMERA | UCA_ERR_PROP | UCA_ERR_INVALID;
}
diff --git a/src/uca-cam.h b/src/uca-cam.h
index 8b6fc0d..a194054 100644
--- a/src/uca-cam.h
+++ b/src/uca-cam.h
@@ -19,6 +19,15 @@ extern "C" {
enum uca_property_ids;
+/**
+ * Describes the current state of the camera.
+ */
+enum uca_cam_state {
+ UCA_CAM_CONFIGURABLE, /**< Camera can be configured and is not recording */
+ UCA_CAM_ARMED, /**< Camera is ready for recording */
+ UCA_CAM_RECORDING, /**< Camera is currently recording */
+};
+
/*
* --- non-virtual methods ----------------------------------------------------
*/
diff --git a/src/uca.c b/src/uca.c
index 94aeca0..7a9d628 100644
--- a/src/uca.c
+++ b/src/uca.c
@@ -84,6 +84,7 @@ static struct uca_property property_map[UCA_PROP_LAST+1] = {
{ "Grabber.Synchronous", uca_bool, uca_uint32t, uca_readwrite },
{ "Mode.Timestamp", uca_na, uca_uint32t, uca_readwrite },
{ "Mode.Scan", uca_na, uca_uint32t, uca_readwrite },
+ { "Mode.Hotpixel", uca_na, uca_uint32t, uca_readwrite },
{ "Interlace.Samplerate", uca_na, uca_uint32t, uca_readwrite },
{ "Interlace.Threshold.Pixel", uca_na, uca_uint32t, uca_readwrite },
{ "Interlace.Threshold.Row", uca_na, uca_uint32t, uca_readwrite },
diff --git a/src/uca.h b/src/uca.h
index bcab72f..9ca21db 100644
--- a/src/uca.h
+++ b/src/uca.h
@@ -112,6 +112,7 @@ enum uca_property_ids {
/* pco.edge specific */
UCA_PROP_TIMESTAMP_MODE,
UCA_PROP_SCAN_MODE,
+ UCA_PROP_HOTPIXEL_CORRECTION,
/* IPE camera specific */
UCA_PROP_INTERLACE_SAMPLE_RATE,
@@ -225,6 +226,16 @@ union uca_value {
};
/**
+ * Describes the current state of the camera.
+ */
+enum uca_cam_state {
+ UCA_CAM_CONFIGURABLE, /**< Camera can be configured and is not recording */
+ UCA_CAM_ARMED, /**< Camera is ready for recording */
+ UCA_CAM_RECORDING, /**< Camera is currently recording */
+};
+
+
+/**
* Grab callback.
*
* Register such a callback function with uca_cam_register_callback() to