1extern crate gphoto;
2
3use std::path::Path;
4
5fn main() {
6 let mut context = match gphoto::Context::new() {
7 Ok(c) => c,
8 Err(err) => panic!("error creating context: {}", err)
9 };
10
11 println!("opening camera ...");
14 let mut camera = match gphoto::Camera::autodetect(&mut context) {
15 Ok(c) => c,
16 Err(err) => panic!("error opening camera: {}", err)
17 };
18 println!(" (done)");
19
20 println!("capturing image ...");
23 let capture = match camera.capture_image(&mut context) {
24 Ok(c) => c,
25 Err(err) => panic!("error capturing image: {}", err)
26 };
27 println!(" (done) {:?}", capture.basename());
28
29 let mut file = match gphoto::FileMedia::create(Path::new(capture.basename().as_ref())) {
32 Ok(f) => f,
33 Err(err) => panic!("error saving file: {}", err)
34 };
35
36 println!("downloading ...");
37 if let Err(err) = camera.download(&mut context, &capture, &mut file) {
38 panic!("error downloading file: {}", err);
39 }
40 println!(" (done)");
41}