Пример #1
0
        static void TestLib()
        {
            GPhoto2.GPContext           scanContext   = new GPhoto2.GPContext();
            GPhoto2.GPPortInfoList      portList      = new GPhoto2.GPPortInfoList();
            GPhoto2.CameraAbilitiesList abilitiesList = new GPhoto2.CameraAbilitiesList();

            // Query
            portList.Load();
            abilitiesList.Load(scanContext);
            GPhoto2.CameraList camList = abilitiesList.Detect(portList);

            // See how many popped out
            for (int i = 0; i < camList.Count; i++)
            {
                string cameraName = camList.GetName(i);
                string usbPort    = camList.GetValue(i);
                GPhoto2.CameraAbilities abilities = abilitiesList.GetAbilities(i);

                // We only want cameras that can take photos
                if (abilities.device_type == GPhoto2.GphotoDeviceType.GP_DEVICE_STILL_CAMERA)
                {
                    GPhoto2.Camera camera = new GPhoto2.Camera();

                    // Set the port informatoin
                    int portNum = portList.LookupPath(usbPort);
                    GPhoto2.GPPortInfo portInfo = portList.GetInfo(portNum);
                    camera.PortInfo = portInfo;

                    Console.Write($"{cameraName} at port {usbPort} - ");
                }
            }
        }
Пример #2
0
        static void TestLibCapture()
        {
            GPhoto2.GPContext           scanContext   = new GPhoto2.GPContext();
            GPhoto2.GPPortInfoList      portList      = new GPhoto2.GPPortInfoList();
            GPhoto2.CameraAbilitiesList abilitiesList = new GPhoto2.CameraAbilitiesList();

            // Query
            portList.Load();
            abilitiesList.Load(scanContext);
            GPhoto2.CameraList camList = abilitiesList.Detect(portList);

            // See how many popped out
            for (int i = 0; i < camList.Count; i++)
            {
                string cameraName = camList.GetName(i);
                string usbPort    = camList.GetValue(i);
                GPhoto2.CameraAbilities abilities = abilitiesList.GetAbilities(i);

                // We only want cameras that can take photos
                if (abilities.device_type == GPhoto2.GphotoDeviceType.GP_DEVICE_STILL_CAMERA)
                {
                    GPhoto2.Camera camera = new GPhoto2.Camera();

                    // Set the port informatoin
                    int portNum = portList.LookupPath(usbPort);
                    GPhoto2.GPPortInfo portInfo = portList.GetInfo(portNum);
                    camera.PortInfo = portInfo;

                    bool notCaptured = true;
                    while (notCaptured)
                    {
                        try
                        {
                            camera.Capture();
                            camera.Exit();

                            notCaptured = false;
                        }
                        catch (Exception ex)
                        { Thread.Sleep(100); }
                    }
                }
            }
        }