1 /*
2 * 1394-Based Digital Camera Control Library
3 *
4 * Low-level register access functions
5 *
6 * Written by Damien Douxchamps <ddouxchamps@users.sf.net>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22
23 #ifndef __DC1394_REGISTER_H__
24 #define __DC1394_REGISTER_H__
25
26 /*! \file dc1394/register.h
27 \brief Functions to directly access camera registers.
28 \author Damien Douxchamps: coding
29 \author Peter Antoniac: documentation maintainer
30
31 More details soon
32 */
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 /**
39 * No Docs
40 */
41 dc1394error_t dc1394_get_registers (dc1394camera_t *camera,
42 uint64_t offset, uint32_t *value, uint32_t num_regs);
43
44 /**
45 * No Docs
46 */
dc1394_get_register(dc1394camera_t * camera,uint64_t offset,uint32_t * value)47 static inline dc1394error_t dc1394_get_register (dc1394camera_t *camera,
48 uint64_t offset, uint32_t *value)
49 {
50 return dc1394_get_registers (camera, offset, value, 1);
51 }
52
53 /**
54 * No Docs
55 */
56 dc1394error_t dc1394_set_registers (dc1394camera_t *camera,
57 uint64_t offset, const uint32_t *value, uint32_t num_regs);
58
59 /**
60 * No Docs
61 */
dc1394_set_register(dc1394camera_t * camera,uint64_t offset,uint32_t value)62 static inline dc1394error_t dc1394_set_register (dc1394camera_t *camera,
63 uint64_t offset, uint32_t value)
64 {
65 return dc1394_set_registers (camera, offset, &value, 1);
66 }
67
68
69 /********************************************************************************/
70 /* Get/Set Command Registers */
71 /********************************************************************************/
72
73 /**
74 * No Docs
75 */
76 dc1394error_t dc1394_get_control_registers (dc1394camera_t *camera,
77 uint64_t offset, uint32_t *value, uint32_t num_regs);
78
79 /**
80 * No Docs
81 */
dc1394_get_control_register(dc1394camera_t * camera,uint64_t offset,uint32_t * value)82 static inline dc1394error_t dc1394_get_control_register (dc1394camera_t *camera,
83 uint64_t offset, uint32_t *value)
84 {
85 return dc1394_get_control_registers (camera, offset, value, 1);
86 }
87
88 /**
89 * No Docs
90 */
91 dc1394error_t dc1394_set_control_registers (dc1394camera_t *camera,
92 uint64_t offset, const uint32_t *value, uint32_t num_regs);
93
94 /**
95 * No Docs
96 */
dc1394_set_control_register(dc1394camera_t * camera,uint64_t offset,uint32_t value)97 static inline dc1394error_t dc1394_set_control_register (dc1394camera_t *camera,
98 uint64_t offset, uint32_t value)
99 {
100 return dc1394_set_control_registers (camera, offset, &value, 1);
101 }
102
103
104 /********************************************************************************/
105 /* Get/Set Advanced Features Registers */
106 /********************************************************************************/
107
108 /**
109 * No Docs
110 */
111 dc1394error_t
112 dc1394_get_adv_control_registers(dc1394camera_t *camera, uint64_t offset, uint32_t *value, uint32_t num_regs);
113
114 /**
115 * No Docs
116 */
117 static inline dc1394error_t
dc1394_get_adv_control_register(dc1394camera_t * camera,uint64_t offset,uint32_t * value)118 dc1394_get_adv_control_register(dc1394camera_t *camera, uint64_t offset, uint32_t *value)
119 {
120 return dc1394_get_adv_control_registers(camera, offset, value, 1);
121 }
122
123 /**
124 * No Docs
125 */
126 dc1394error_t
127 dc1394_set_adv_control_registers(dc1394camera_t *camera, uint64_t offset,
128 const uint32_t *value, uint32_t num_regs);
129
130 /**
131 * No Docs
132 */
133 static inline dc1394error_t
dc1394_set_adv_control_register(dc1394camera_t * camera,uint64_t offset,uint32_t value)134 dc1394_set_adv_control_register(dc1394camera_t *camera, uint64_t offset, uint32_t value)
135 {
136 return dc1394_set_adv_control_registers(camera, offset, &value, 1);
137 }
138
139
140 /********************************************************************************/
141 /* Get/Set Format_7 Registers */
142 /********************************************************************************/
143
144 /**
145 * No Docs
146 */
147 dc1394error_t
148 dc1394_get_format7_register(dc1394camera_t *camera, unsigned int mode, uint64_t offset, uint32_t *value);
149
150 /**
151 * No Docs
152 */
153 dc1394error_t
154 dc1394_set_format7_register(dc1394camera_t *camera, unsigned int mode, uint64_t offset, uint32_t value);
155
156
157 /********************************************************************************/
158 /* Get/Set Absolute Control Registers */
159 /********************************************************************************/
160
161 /**
162 * No Docs
163 */
164 dc1394error_t
165 dc1394_get_absolute_register(dc1394camera_t *camera, unsigned int feature, uint64_t offset, uint32_t *value);
166
167 /**
168 * No Docs
169 */
170 dc1394error_t
171 dc1394_set_absolute_register(dc1394camera_t *camera, unsigned int feature, uint64_t offset, uint32_t value);
172
173
174 /********************************************************************************/
175 /* Get/Set PIO Feature Registers */
176 /********************************************************************************/
177
178 /**
179 * No Docs
180 */
181 dc1394error_t
182 dc1394_get_PIO_register(dc1394camera_t *camera, uint64_t offset, uint32_t *value);
183
184 /**
185 * No Docs
186 */
187 dc1394error_t
188 dc1394_set_PIO_register(dc1394camera_t *camera, uint64_t offset, uint32_t value);
189
190
191 /********************************************************************************/
192 /* Get/Set SIO Feature Registers */
193 /********************************************************************************/
194
195 /**
196 * No Docs
197 */
198 dc1394error_t
199 dc1394_get_SIO_register(dc1394camera_t *camera, uint64_t offset, uint32_t *value);
200
201 /**
202 * No Docs
203 */
204 dc1394error_t
205 dc1394_set_SIO_register(dc1394camera_t *camera, uint64_t offset, uint32_t value);
206
207
208 /********************************************************************************/
209 /* Get/Set Strobe Feature Registers */
210 /********************************************************************************/
211
212 /**
213 * No Docs
214 */
215 dc1394error_t
216 dc1394_get_strobe_register(dc1394camera_t *camera, uint64_t offset, uint32_t *value);
217
218 /**
219 * No Docs
220 */
221 dc1394error_t
222 dc1394_set_strobe_register(dc1394camera_t *camera, uint64_t offset, uint32_t value);
223
224
225 #ifdef __cplusplus
226 }
227 #endif
228
229 #endif /* __DC1394_REGISTER_H__ */
230