Source code upload
[framework/connectivity/libgphoto2.git] / examples / sample-autodetect.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4
5 #include <gphoto2/gphoto2-camera.h>
6
7 #include "samples.h"
8
9 /* Sample autodetection program.
10  *
11  * This program can autodetect a single camera and then calls a
12  * simple function in it (summary).
13  */
14
15 int main(int argc, char **argv) {
16         Camera          *camera;
17         int             ret;
18         char            *owner;
19         GPContext       *context;
20         CameraText      text;
21
22         context = sample_create_context (); /* see context.c */
23         gp_camera_new (&camera);
24
25         /* This call will autodetect cameras, take the
26          * first one from the list and use it. It will ignore
27          * any others... See the *multi* examples on how to
28          * detect and use more than the first one.
29          */
30         ret = gp_camera_init (camera, context);
31         if (ret < GP_OK) {
32                 printf("No camera auto detected.\n");
33                 gp_camera_free (camera);
34                 return 0;
35         }
36
37         /* Simple query the camera summary text */
38         ret = gp_camera_get_summary (camera, &text, context);
39         if (ret < GP_OK) {
40                 printf("Camera failed retrieving summary.\n");
41                 gp_camera_free (camera);
42                 return 0;
43         }
44         printf("Summary:\n%s\n", text.text);
45
46         /* Simple query of a string configuration variable. */
47         ret = get_config_value_string (camera, "owner", &owner, context);
48         if (ret >= GP_OK) {
49                 printf("Owner: %s\n", owner);
50                 free (owner);
51         }
52         gp_camera_exit (camera, context);
53         gp_camera_free (camera);
54         return 0;
55 }