Skip to content

Commit 9756369

Browse files
authored
camera: multiple taps (#745)
1 parent 7daa5e8 commit 9756369

3 files changed

Lines changed: 83 additions & 1 deletion

File tree

src/arvcamera.c

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,6 +1869,45 @@ arv_camera_get_gain_auto (ArvCamera *camera, GError **error)
18691869
return arv_auto_from_string (arv_camera_get_string (camera, "GainAuto", error));
18701870
}
18711871

1872+
/**
1873+
* arv_camera_select_gain:
1874+
* @camera: a #ArvCamera
1875+
* @gainSelector: gain selector
1876+
* @error: a #GError placeholder, %NULL to ignore
1877+
*
1878+
* Configures Gain Selector feature.
1879+
*
1880+
* Since: 0.8.27
1881+
**/
1882+
1883+
void
1884+
arv_camera_select_gain (ArvCamera *camera, const char *gainSelector, GError **error)
1885+
{
1886+
arv_camera_set_string (camera, "GainSelector", gainSelector, error);
1887+
}
1888+
1889+
/**
1890+
* arv_camera_dup_available_gains:
1891+
* @camera: a #ArvCamera
1892+
* @n_selectors: (out): number of different gain selectors
1893+
* @error: a #GError placeholder, %NULL to ignore
1894+
*
1895+
* Retrieves the list of all available gain selectors as strings.
1896+
*
1897+
* Returns: (array length=n_selectors) (transfer container): a newly allocated array of strings, to be freed after use with
1898+
* g_free().
1899+
*
1900+
* Since: 0.8.27
1901+
*/
1902+
1903+
const char **
1904+
arv_camera_dup_available_gains (ArvCamera *camera, guint *n_selectors, GError **error)
1905+
{
1906+
g_return_val_if_fail (ARV_IS_CAMERA (camera), NULL);
1907+
1908+
return arv_camera_dup_available_enumerations_as_strings (camera, "GainSelector", n_selectors, error);
1909+
}
1910+
18721911
/**
18731912
* arv_camera_is_black_level_available:
18741913
* @camera: a #ArvCamera
@@ -1944,6 +1983,45 @@ arv_camera_get_black_level (ArvCamera *camera, GError **error)
19441983
return arv_camera_get_float (camera, "BlackLevel", error);
19451984
}
19461985

1986+
/**
1987+
* arv_camera_select_black_level:
1988+
* @camera: a #ArvCamera
1989+
* @blackLevelSelector: black level selection
1990+
* @error: a #GError placeholder, %NULL to ignore
1991+
*
1992+
* Configures Black Level Selector feature.
1993+
*
1994+
* Since: 0.8.27
1995+
**/
1996+
1997+
void
1998+
arv_camera_select_black_level (ArvCamera *camera, const char *blackLevelSelector, GError **error)
1999+
{
2000+
arv_camera_set_string (camera, "BlackLevelSelector", blackLevelSelector, error);
2001+
}
2002+
2003+
/**
2004+
* arv_camera_dup_available_black_levels:
2005+
* @camera: a #ArvCamera
2006+
* @n_selectors: (out): number of different black level selectors
2007+
* @error: a #GError placeholder, %NULL to ignore
2008+
*
2009+
* Retrieves the list of all available black level selectors as strings.
2010+
*
2011+
* Returns: (array length=n_selectors) (transfer container): a newly allocated array of strings, to be freed after use with
2012+
* g_free().
2013+
*
2014+
* Since: 0.8.27
2015+
*/
2016+
2017+
const char **
2018+
arv_camera_dup_available_black_levels (ArvCamera *camera, guint *n_selectors, GError **error)
2019+
{
2020+
g_return_val_if_fail (ARV_IS_CAMERA (camera), NULL);
2021+
2022+
return arv_camera_dup_available_enumerations_as_strings (camera, "BlackLevelSelector", n_selectors, error);
2023+
}
2024+
19472025
/**
19482026
* arv_camera_get_black_level_bounds:
19492027
* @camera: a #ArvCamera

src/arvcamera.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ ARV_API void arv_camera_set_exposure_mode (ArvCamera *camera, ArvExposureMode
141141

142142
ARV_API gboolean arv_camera_is_gain_available (ArvCamera *camera, GError **error);
143143
ARV_API gboolean arv_camera_is_gain_auto_available (ArvCamera *camera, GError **error);
144+
ARV_API void arv_camera_select_gain (ArvCamera *camera, const char *selector, GError **error);
145+
ARV_API const char ** arv_camera_dup_available_gains (ArvCamera *camera, guint *n_selectors, GError **error);
144146

145147
ARV_API void arv_camera_set_gain (ArvCamera *camera, double gain, GError **error);
146148
ARV_API double arv_camera_get_gain (ArvCamera *camera, GError **error);
@@ -150,6 +152,8 @@ ARV_API ArvAuto arv_camera_get_gain_auto (ArvCamera *camera, GError **error);
150152

151153
ARV_API gboolean arv_camera_is_black_level_available (ArvCamera *camera, GError **error);
152154
ARV_API gboolean arv_camera_is_black_level_auto_available(ArvCamera *camera, GError **error);
155+
ARV_API void arv_camera_select_black_level (ArvCamera *camera, const char *selector, GError **error);
156+
ARV_API const char ** arv_camera_dup_available_black_level(ArvCamera *camera, guint *n_selectors, GError **error);
153157

154158
ARV_API void arv_camera_set_black_level (ArvCamera *camera, double blacklevel, GError **error);
155159
ARV_API double arv_camera_get_black_level (ArvCamera *camera, GError **error);

src/arvenums.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* Aravis - Digital camera library
22
*
3-
* Copyright © 2009-2022 Emmanuel Pacaud
3+
* Copyright © 2009-2023 Emmanuel Pacaud
44
*
55
* This library is free software; you can redistribute it and/or
66
* modify it under the terms of the GNU Lesser General Public

0 commit comments

Comments
 (0)