libgphoto2 photo camera library (libgphoto2) Internals  2.5.23
template.c
Go to the documentation of this file.
1 
52 #include "config.h"
53 
54 #include <string.h>
55 
57 #include <gphoto2/gphoto2-result.h>
58 
59 #ifdef ENABLE_NLS
60 # include <libintl.h>
61 # undef _
62 
68 # define _(String) dgettext (GETTEXT_PACKAGE, String)
69 # ifdef gettext_noop
70 
74 # define N_(String) gettext_noop (String)
75 # else
76 # define N_(String) (String)
77 # endif
78 #else
79 # define _(String) (String)
80 # define N_(String) (String)
81 #endif
82 
83 
84 /**********************************************************************/
92 /**********************************************************************/
93 
94 
101 int camera_exit (Camera *camera, GPContext *context);
102 int
103 camera_exit (Camera *camera, GPContext *context)
104 {
105  return GP_OK;
106 }
107 
108 
114 int camera_config_get (Camera *camera, CameraWidget **window, GPContext *context);
115 int
116 camera_config_get (Camera *camera, CameraWidget **window, GPContext *context)
117 {
118  gp_widget_new (GP_WIDGET_WINDOW, "Camera Configuration", window);
119 
120  /* Append your sections and widgets here. */
121 
122  return GP_OK;
123 }
124 
125 
133 int camera_config_set (Camera *camera, CameraWidget *window, GPContext *context);
134 int
135 camera_config_set (Camera *camera, CameraWidget *window, GPContext *context)
136 {
137  /*
138  * Check if the widgets' values have changed. If yes, tell the camera.
139  */
140 
141  return GP_OK;
142 }
143 
144 
153 int camera_capture_preview (Camera *camera, CameraFile *file, GPContext *context);
154 int
156 {
157  return GP_OK;
158 }
159 
160 
167 int
169  GPContext *context);
170 int
172  GPContext *context)
173 {
174  return GP_OK;
175 }
176 
177 
184 int
185 camera_summary (Camera *camera, CameraText *summary, GPContext *context);
186 int
187 camera_summary (Camera *camera, CameraText *summary, GPContext *context)
188 {
189  return GP_OK;
190 }
191 
192 
200 int
201 camera_manual (Camera *camera, CameraText *manual, GPContext *context);
202 int
203 camera_manual (Camera *camera, CameraText *manual, GPContext *context)
204 {
205  return GP_OK;
206 }
207 
208 
215 int
216 camera_about (Camera *camera, CameraText *about, GPContext *context);
217 int
218 camera_about (Camera *camera, CameraText *about, GPContext *context)
219 {
220  strcpy (about->text, _("Library Name\n"
221  "YOUR NAME <email@somewhere.com>\n"
222  "Quick description of the library.\n"
223  "No more than 5 lines if possible."));
224 
225  return GP_OK;
226 }
227 
231 /**********************************************************************/
237 /**********************************************************************/
238 
239 
245 int
246 get_file_func (CameraFilesystem *fs, const char *folder, const char *filename,
247  CameraFileType type, CameraFile *file, void *data,
248  GPContext *context);
249 int
250 get_file_func (CameraFilesystem *fs, const char *folder, const char *filename,
251  CameraFileType type, CameraFile *file, void *data,
252  GPContext *context)
253 {
254  /*Camera *camera = data;*/
255 
256  /*
257  * Get the file from the camera. Use gp_file_set_mime_type,
258  * gp_file_set_data_and_size, etc.
259  */
260 
261  return GP_OK;
262 }
263 
264 
270 int
271 put_file_func (CameraFilesystem *fs, const char *folder, const char *name,
272  CameraFileType type, CameraFile *file, void *data, GPContext *context);
273 int
274 put_file_func (CameraFilesystem *fs, const char *folder, const char *name,
275  CameraFileType type, CameraFile *file, void *data, GPContext *context)
276 {
277  /*Camera *camera = data;*/
278 
279  /*
280  * Upload the file to the camera. Use gp_file_get_data_and_size, etc
281  */
282 
283  return GP_OK;
284 }
285 
286 
292 int
293 delete_file_func (CameraFilesystem *fs, const char *folder,
294  const char *filename, void *data, GPContext *context);
295 int
296 delete_file_func (CameraFilesystem *fs, const char *folder,
297  const char *filename, void *data, GPContext *context)
298 {
299  /*Camera *camera = data;*/
300 
301  /* Delete the file from the camera. */
302 
303  return GP_OK;
304 }
305 
306 
312 int
313 delete_all_func (CameraFilesystem *fs, const char *folder, void *data,
314  GPContext *context);
315 int
316 delete_all_func (CameraFilesystem *fs, const char *folder, void *data,
317  GPContext *context)
318 {
319  /*Camera *camera = data;*/
320 
321  /*
322  * Delete all files in the given folder. If your camera doesn't have
323  * such a functionality, just don't implement this function.
324  */
325 
326  return GP_OK;
327 }
328 
329 
337 int
338 get_info_func (CameraFilesystem *fs, const char *folder, const char *filename,
339  CameraFileInfo *info, void *data, GPContext *context);
340 int
341 get_info_func (CameraFilesystem *fs, const char *folder, const char *filename,
342  CameraFileInfo *info, void *data, GPContext *context)
343 {
344  /*Camera *camera = data;*/
345 
346  return GP_OK;
347 }
348 
349 
355 int
356 set_info_func (CameraFilesystem *fs, const char *folder, const char *file,
357  CameraFileInfo info, void *data, GPContext *context);
358 int
359 set_info_func (CameraFilesystem *fs, const char *folder, const char *file,
360  CameraFileInfo info, void *data, GPContext *context)
361 {
362  /*Camera *camera = data;*/
363 
364  /* Set the file info here from <info> */
365 
366  return GP_OK;
367 }
368 
369 
375 int
376 folder_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
377  void *data, GPContext *context);
378 int
379 folder_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
380  void *data, GPContext *context)
381 {
382  /*Camera *camera = data;*/
383 
384  /* List your folders here */
385 
386  return GP_OK;
387 }
388 
389 
395 int
396 file_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
397  void *data, GPContext *context);
398 int
399 file_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
400  void *data, GPContext *context)
401 {
402  /*Camera *camera = data;*/
403 
404  /* List your files here */
405 
406  return GP_OK;
407 }
408 
414 int
416  CameraStorageInformation **storageinformations,
417  int *nrofstorageinformations, void *data,
418  GPContext *context);
419 int
421  CameraStorageInformation **storageinformations,
422  int *nrofstorageinformations, void *data,
423  GPContext *context)
424 {
425  /*Camera *camera = data;*/
426 
427  /* List your storages here */
428 
429  return GP_ERROR_NOT_SUPPORTED;
430 }
431 
435 /**********************************************************************/
441 /**********************************************************************/
442 
443 
452 int
454 {
455  strcpy(id->text, "REPLACE WITH UNIQUE LIBRARY ID");
456 
457  return GP_OK;
458 }
459 
460 
475 int
477 {
478  CameraAbilities a;
479 
480  memset(&a, 0, sizeof(a));
481  strcpy(a.model, "CAMERA VENDOR:CAMERA MODEL");
484  a.speed[0] = 0;
490 
491  gp_abilities_list_append(list, a);
492 
493  return GP_OK;
494 }
495 
506  .folder_list_func = folder_list_func,
507  .get_info_func = get_info_func,
508  .set_info_func = set_info_func,
509  .get_file_func = get_file_func,
510  .del_file_func = delete_file_func,
511  .put_file_func = put_file_func,
512  .delete_all_func = delete_all_func,
513  .storage_info_func = storage_info_func
514 };
515 
525 int
526 camera_init (Camera *camera, GPContext *context)
527 {
528  /* First, set up all the function pointers */
529  camera->functions->exit = camera_exit;
532  camera->functions->capture = camera_capture;
534  camera->functions->summary = camera_summary;
535  camera->functions->manual = camera_manual;
536  camera->functions->about = camera_about;
537 
538  /* Now, tell the filesystem where to get lists, files and info */
539  gp_filesystem_set_funcs (camera->fs, &fsfuncs, camera);
540 
541  /*
542  * The port is already provided with camera->port (and
543  * already open). You just have to use functions like
544  * gp_port_timeout_set, gp_port_settings_get, gp_port_settings_set.
545  */
546 
547  /*
548  * Once you have configured the port, you should check if a
549  * connection to the camera can be established.
550  */
551 
552  return GP_OK;
553 }
554 
558 /*********************************************************************
559  * End of camlib template.
560  *********************************************************************/
561 
562 /*
563  * Local Variables:
564  * c-file-style:"linux"
565  * indent-tabs-mode:t
566  * End:
567  */
fsfuncs
CameraFilesystemFuncs fsfuncs
Definition: template.c:504
CameraAbilities
Describes the properties of a specific camera.
Definition: gphoto2-abilities-list.h:120
GP_OPERATION_CAPTURE_PREVIEW
@ GP_OPERATION_CAPTURE_PREVIEW
Definition: gphoto2-abilities-list.h:66
CameraAbilities::operations
CameraOperation operations
Camera operation funcs.
Definition: gphoto2-abilities-list.h:130
_CameraFilesystemFuncs::file_list_func
CameraFilesystemListFunc file_list_func
Definition: gphoto2-filesys.h:349
GP_FOLDER_OPERATION_NONE
@ GP_FOLDER_OPERATION_NONE
Definition: gphoto2-abilities-list.h:87
CameraAbilities::model
char model[128]
name of camera model
Definition: gphoto2-abilities-list.h:121
put_file_func
int put_file_func(CameraFilesystem *fs, const char *folder, const char *name, CameraFileType type, CameraFile *file, void *data, GPContext *context)
Definition: template.c:274
camera_manual
int camera_manual(Camera *camera, CameraText *manual, GPContext *context)
Definition: template.c:203
gp_abilities_list_append
int gp_abilities_list_append(CameraAbilitiesList *list, CameraAbilities abilities)
Append the abilities to the list.
Definition: gphoto2-abilities-list.c:510
file_list_func
int file_list_func(CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
Definition: template.c:399
delete_file_func
int delete_file_func(CameraFilesystem *fs, const char *folder, const char *filename, void *data, GPContext *context)
Definition: template.c:296
CameraFile
File structure.
camera_exit
int camera_exit(Camera *camera, GPContext *context)
Definition: template.c:103
_CameraFunctions::get_config
CameraGetConfigFunc get_config
Called for requesting the configuration widgets.
Definition: gphoto2-camera.h:292
storage_info_func
int storage_info_func(CameraFilesystem *fs, CameraStorageInformation **storageinformations, int *nrofstorageinformations, void *data, GPContext *context)
Definition: template.c:420
camera_capture
int camera_capture(Camera *camera, CameraCaptureType type, CameraFilePath *path, GPContext *context)
Definition: template.c:171
_CameraFunctions::capture_preview
CameraCapturePreviewFunc capture_preview
Preview viewfinder content.
Definition: gphoto2-camera.h:302
folder_list_func
int folder_list_func(CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
Definition: template.c:379
_CameraFunctions::capture
CameraCaptureFunc capture
Remote control the camera to capture.
Definition: gphoto2-camera.h:300
CameraFileType
CameraFileType
The type of view on the specified file.
Definition: gphoto2-file.h:73
GP_DRIVER_STATUS_PRODUCTION
@ GP_DRIVER_STATUS_PRODUCTION
Definition: gphoto2-abilities-list.h:42
camera_abilities
int camera_abilities(CameraAbilitiesList *list)
Get a list of abilities of all supported cameras.
Definition: template.c:476
_Camera
Definition: gphoto2-camera.h:325
camera_summary
int camera_summary(Camera *camera, CameraText *summary, GPContext *context)
Definition: template.c:187
gphoto2-result.h
GP_PORT_USB
@ GP_PORT_USB
USB port.
Definition: gphoto2-port-info-list.h:37
CameraAbilities::status
CameraDriverStatus status
driver quality
Definition: gphoto2-abilities-list.h:122
_CameraWidget
Definition: gphoto2-widget.c:38
_Camera::fs
CameraFilesystem * fs
Definition: gphoto2-camera.h:330
_CameraAbilitiesList
Definition: gphoto2-abilities-list.c:62
GP_OK
#define GP_OK
Everything is OK.
Definition: gphoto2-port-result.h:30
camera_config_set
int camera_config_set(Camera *camera, CameraWidget *window, GPContext *context)
Definition: template.c:135
gp_filesystem_set_funcs
int gp_filesystem_set_funcs(CameraFilesystem *fs, CameraFilesystemFuncs *funcs, void *data)
Set all filesystem related function pointers.
Definition: gphoto2-filesys.c:1824
_CameraFunctions::exit
CameraExitFunc exit
Function called on closing the camera.
Definition: gphoto2-camera.h:289
get_info_func
int get_info_func(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, void *data, GPContext *context)
Definition: template.c:341
GP_FILE_OPERATION_DELETE
@ GP_FILE_OPERATION_DELETE
Definition: gphoto2-abilities-list.h:76
_CameraFunctions::about
CameraAboutFunc about
A little About text, including authors and credits.
Definition: gphoto2-camera.h:307
_CameraFileInfo
File information structure.
Definition: gphoto2-filesys.h:141
camera_capture_preview
int camera_capture_preview(Camera *camera, CameraFile *file, GPContext *context)
Definition: template.c:155
GP_WIDGET_WINDOW
@ GP_WIDGET_WINDOW
Window widget This is the toplevel configuration widget. It should likely contain multiple GP_WIDGET_...
Definition: gphoto2-widget.h:55
gp_widget_new
int gp_widget_new(CameraWidgetType type, const char *label, CameraWidget **widget)
Create a new widget.
Definition: gphoto2-widget.c:93
GP_PORT_SERIAL
@ GP_PORT_SERIAL
Serial port.
Definition: gphoto2-port-info-list.h:36
GP_FILE_OPERATION_PREVIEW
@ GP_FILE_OPERATION_PREVIEW
Definition: gphoto2-abilities-list.h:77
get_file_func
int get_file_func(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, void *data, GPContext *context)
Definition: template.c:250
CameraText::text
char text[32 *1024]
Character string containing the translated text.
Definition: gphoto2-camera.h:69
_Camera::functions
CameraFunctions * functions
Definition: gphoto2-camera.h:331
CameraFilePath
A structure created by the capture operation.
Definition: gphoto2-camera.h:79
_CameraFilesystemFuncs
Definition: gphoto2-filesys.h:348
camera_id
int camera_id(CameraText *id)
Get a unique camera id.
Definition: template.c:453
_CameraList
Definition: gphoto2-list.c:47
camera_init
int camera_init(Camera *camera, GPContext *context)
Definition: template.c:526
CameraAbilities::speed
int speed[64]
Supported serial port speeds (terminated with a value of 0).
Definition: gphoto2-abilities-list.h:127
_CameraFilesystem
The internal camera filesystem structure.
Definition: gphoto2-filesys.c:242
_CameraFunctions::manual
CameraManualFunc manual
Give a brief manual about any specific items a user has to know, translated.
Definition: gphoto2-camera.h:306
CameraText
CameraText structure used in various functions.
Definition: gphoto2-camera.h:68
camera_config_get
int camera_config_get(Camera *camera, CameraWidget **window, GPContext *context)
Definition: template.c:116
set_info_func
int set_info_func(CameraFilesystem *fs, const char *folder, const char *file, CameraFileInfo info, void *data, GPContext *context)
Definition: template.c:359
GP_CAPTURE_IMAGE
@ GP_CAPTURE_IMAGE
Capture an image.
Definition: gphoto2-camera.h:91
CameraCaptureType
CameraCaptureType
Type of the capture to do.
Definition: gphoto2-camera.h:90
_CameraFunctions::summary
CameraSummaryFunc summary
Give a summary about the current camera status, translated.
Definition: gphoto2-camera.h:305
_CameraFunctions::set_config
CameraSetConfigFunc set_config
Called after a configuration was changed.
Definition: gphoto2-camera.h:293
CameraAbilities::folder_operations
CameraFolderOperation folder_operations
Camera folder op funcs.
Definition: gphoto2-abilities-list.h:132
camera_about
int camera_about(Camera *camera, CameraText *about, GPContext *context)
Definition: template.c:218
CameraAbilities::port
GPPortType port
Supported port types.
Definition: gphoto2-abilities-list.h:125
_
#define _(String)
Definition: template.c:79
CameraAbilities::file_operations
CameraFileOperation file_operations
Camera file op funcs.
Definition: gphoto2-abilities-list.h:131
gphoto2-library.h
Camery driver header.
GP_ERROR_NOT_SUPPORTED
#define GP_ERROR_NOT_SUPPORTED
Functionality not supported.
Definition: gphoto2-port-result.h:54
_GPContext
Definition: gphoto2-context.c:39
delete_all_func
int delete_all_func(CameraFilesystem *fs, const char *folder, void *data, GPContext *context)
Definition: template.c:316
_CameraStorageInformation
Storage information structue.
Definition: gphoto2-filesys.h:214