camera_info/
camera_info.rs

1extern crate gphoto;
2
3fn main() {
4    let mut context = match gphoto::Context::new() {
5        Ok(c) => c,
6        Err(err) => panic!("error creating context: {}", err)
7    };
8
9    let mut camera = match gphoto::Camera::autodetect(&mut context) {
10        Ok(c) => c,
11        Err(err) => panic!("error opening camera: {}", err)
12    };
13
14    {
15        let port = camera.port();
16
17        println!("[port info]");
18        println!("port type = {:?}", port.port_type());
19        println!("port name = {:?}", port.name());
20        println!("port path = {:?}", port.path());
21    }
22
23    let abilities = camera.abilities();
24
25    println!("\n[abilities]");
26    println!("      device type = {:?}", abilities.device_type());
27    println!("            model = {:?}", abilities.model());
28    println!("    driver status = {:?}", abilities.driver_status());
29    println!("       port types = {:?}", abilities.port_types());
30    println!("           speeds = {:?}", abilities.speeds());
31    println!("camera operations = {:?}", abilities.camera_operations());
32    println!("  file operations = {:?}", abilities.file_operations());
33    println!("folder operations = {:?}", abilities.folder_operations());
34    println!("       USB vendor = {:?}", abilities.usb_vendor());
35    println!("      USB product = {:?}", abilities.usb_product());
36    println!("        USB class = {:?}", abilities.usb_class());
37    println!("     USB subclass = {:?}", abilities.usb_subclass());
38    println!("     USB protocol = {:?}", abilities.usb_protocol());
39
40    match camera.storage(&mut context) {
41        Ok(storage) => {
42            for s in storage {
43                println!("\n[storage]");
44                println!("       base dir = {:?}", s.base_dir());
45                println!("          label = {:?}", s.label());
46                println!("    description = {:?}", s.description());
47                println!("   storage type = {:?}", s.storage_type());
48                println!("filesystem type = {:?}", s.filesystem_type());
49                println!("    access type = {:?}", s.access_type());
50                println!("    capacity kb = {:?}", s.capacity_kbytes());
51                println!("        free kb = {:?}", s.free_kbytes());
52                println!("    free images = {:?}", s.free_images());
53            }
54        },
55        Err(err) => println!("\ncould not retrieve storage information: {}", err)
56    }
57
58    if let Ok(s) = camera.summary(&mut context) {
59        println!("\n[summary]\n{}", s);
60    }
61
62    if let Ok(s) = camera.manual(&mut context) {
63        println!("\n[manual]\n{}", s);
64    }
65
66    if let Ok(s) = camera.about_driver(&mut context) {
67        println!("\n[driver]\n{}", s);
68    }
69}