Accepting request 45617 from graphics
checked in (request 45617) OBS-URL: https://build.opensuse.org/request/show/45617 OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=39
This commit is contained in:
parent
4d9e9cdc72
commit
f886ce920c
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:8bb28232c246c19465724dbca2f511dd56feaee3cdb018589e8370c46f1cf1cd
|
|
||||||
size 5699257
|
|
3
libgphoto2-2.4.9.tar.bz2
Normal file
3
libgphoto2-2.4.9.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8bd80a70db64defcc9f50354326175eec1d070c2cc3dfbcd7ddd1ef9bb4f7af0
|
||||||
|
size 5642063
|
@ -1,12 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Sun Aug 15 20:04:51 CEST 2010 - meissner@suse.de
|
|
||||||
|
|
||||||
- Updated to 2.4.10 release
|
|
||||||
- lots of PTP and EOS related fixes
|
|
||||||
- shortcuts in UDEV rules
|
|
||||||
- new jl2005c driver for small cameras
|
|
||||||
- translation updates
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jun 21 16:43:41 CEST 2010 - meissner@suse.de
|
Mon Jun 21 16:43:41 CEST 2010 - meissner@suse.de
|
||||||
|
|
||||||
|
@ -30,10 +30,11 @@ Obsoletes: libgphoto2-64bit
|
|||||||
License: LGPLv2.1+
|
License: LGPLv2.1+
|
||||||
Group: Hardware/Camera
|
Group: Hardware/Camera
|
||||||
Summary: A Digital Camera Library
|
Summary: A Digital Camera Library
|
||||||
Version: 2.4.10
|
Version: 2.4.9
|
||||||
Release: 3
|
Release: 3
|
||||||
Source0: libgphoto2-%{version}.tar.bz2
|
Source0: libgphoto2-%{version}.tar.bz2
|
||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
|
Patch0: libgphoto24-branch.patch
|
||||||
Patch1: libgphoto2-4096files.patch
|
Patch1: libgphoto2-4096files.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Requires: %{name}-lang = %{version}
|
Requires: %{name}-lang = %{version}
|
||||||
@ -69,6 +70,7 @@ These are its development libraries and headers.
|
|||||||
%lang_package
|
%lang_package
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
416
libgphoto24-branch.patch
Normal file
416
libgphoto24-branch.patch
Normal file
@ -0,0 +1,416 @@
|
|||||||
|
diff -ru libgphoto2-2.4.9/camlibs/ptp2/config.c libgphoto2//camlibs/ptp2/config.c
|
||||||
|
--- libgphoto2-2.4.9/camlibs/ptp2/config.c 2010-04-11 14:17:51.000000000 +0200
|
||||||
|
+++ libgphoto2//camlibs/ptp2/config.c 2010-06-17 17:05:11.989020000 +0200
|
||||||
|
@@ -510,6 +524,7 @@
|
||||||
|
static int
|
||||||
|
_get_Generic16Table(CONFIG_GET_ARGS, struct deviceproptableu16* tbl, int tblsize) {
|
||||||
|
int i, j;
|
||||||
|
+ int isset = FALSE, isset2 = FALSE;
|
||||||
|
|
||||||
|
if (!(dpd->FormFlag & (PTP_DPFF_Enumeration|PTP_DPFF_Range))) {
|
||||||
|
gp_log (GP_LOG_DEBUG, "ptp/get_generic16", "no enumeration/range in 16bit table code");
|
||||||
|
@@ -537,16 +552,16 @@
|
||||||
|
return GP_OK;
|
||||||
|
}
|
||||||
|
for (i = 0; i<dpd->FORM.Enum.NumberOfValues; i++) {
|
||||||
|
- int isset = FALSE;
|
||||||
|
-
|
||||||
|
for (j=0;j<tblsize;j++) {
|
||||||
|
if ((tbl[j].value == dpd->FORM.Enum.SupportedValue[i].u16) &&
|
||||||
|
((tbl[j].vendor_id == 0) ||
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (tbl[j].value == dpd->CurrentValue.u16)
|
||||||
|
+ if (tbl[j].value == dpd->CurrentValue.u16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -555,8 +570,10 @@
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, _("Unknown value %04x"), dpd->FORM.Enum.SupportedValue[i].u16);
|
||||||
|
gp_widget_add_choice (*widget, buf);
|
||||||
|
- if (dpd->FORM.Enum.SupportedValue[i].u16 == dpd->CurrentValue.u16)
|
||||||
|
+ if (dpd->FORM.Enum.SupportedValue[i].u16 == dpd->CurrentValue.u16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -565,16 +582,16 @@
|
||||||
|
i<=dpd->FORM.Range.MaximumValue.u16;
|
||||||
|
i+= dpd->FORM.Range.StepSize.u16
|
||||||
|
) {
|
||||||
|
- int isset = FALSE;
|
||||||
|
-
|
||||||
|
for (j=0;j<tblsize;j++) {
|
||||||
|
if ((tbl[j].value == i) &&
|
||||||
|
((tbl[j].vendor_id == 0) ||
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (i == dpd->CurrentValue.u16)
|
||||||
|
+ if (i == dpd->CurrentValue.u16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -583,11 +600,19 @@
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, _("Unknown value %04d"), i);
|
||||||
|
gp_widget_add_choice (*widget, buf);
|
||||||
|
- if (i == dpd->CurrentValue.u16)
|
||||||
|
+ if (i == dpd->CurrentValue.u16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (!isset2) {
|
||||||
|
+ char buf[200];
|
||||||
|
+ sprintf(buf, _("Unknown value %04x"), dpd->CurrentValue.u16);
|
||||||
|
+ gp_widget_add_choice (*widget, buf);
|
||||||
|
+ gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
return (GP_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -634,6 +659,7 @@
|
||||||
|
static int
|
||||||
|
_get_GenericI16Table(CONFIG_GET_ARGS, struct deviceproptablei16* tbl, int tblsize) {
|
||||||
|
int i, j;
|
||||||
|
+ int isset = FALSE, isset2 = FALSE;
|
||||||
|
|
||||||
|
if (!(dpd->FormFlag & (PTP_DPFF_Range|PTP_DPFF_Enumeration))) {
|
||||||
|
gp_log (GP_LOG_DEBUG, "ptp/get_generici16", "no enumeration/range in 16bit table code");
|
||||||
|
@@ -661,16 +687,16 @@
|
||||||
|
return GP_OK;
|
||||||
|
}
|
||||||
|
for (i = 0; i<dpd->FORM.Enum.NumberOfValues; i++) {
|
||||||
|
- int isset = FALSE;
|
||||||
|
-
|
||||||
|
for (j=0;j<tblsize;j++) {
|
||||||
|
if ((tbl[j].value == dpd->FORM.Enum.SupportedValue[i].i16) &&
|
||||||
|
((tbl[j].vendor_id == 0) ||
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (tbl[j].value == dpd->CurrentValue.i16)
|
||||||
|
+ if (tbl[j].value == dpd->CurrentValue.i16) {
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -694,8 +720,10 @@
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (i == dpd->CurrentValue.i16)
|
||||||
|
+ if (i == dpd->CurrentValue.i16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -704,11 +732,19 @@
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, _("Unknown value %04d"), i);
|
||||||
|
gp_widget_add_choice (*widget, buf);
|
||||||
|
- if (i == dpd->CurrentValue.i16)
|
||||||
|
+ if (i == dpd->CurrentValue.i16) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (!isset2) {
|
||||||
|
+ char buf[200];
|
||||||
|
+ sprintf(buf, _("Unknown value %04x"), dpd->CurrentValue.i16);
|
||||||
|
+ gp_widget_add_choice (*widget, buf);
|
||||||
|
+ gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
return (GP_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -755,6 +791,7 @@
|
||||||
|
static int
|
||||||
|
_get_Generic8Table(CONFIG_GET_ARGS, struct deviceproptableu8* tbl, int tblsize) {
|
||||||
|
int i, j;
|
||||||
|
+ int isset = FALSE, isset2 = FALSE;
|
||||||
|
|
||||||
|
if (dpd->FormFlag & PTP_DPFF_Enumeration) {
|
||||||
|
if (dpd->DataType != PTP_DTC_UINT8)
|
||||||
|
@@ -762,16 +799,16 @@
|
||||||
|
gp_widget_new (GP_WIDGET_RADIO, _(menu->label), widget);
|
||||||
|
gp_widget_set_name (*widget, menu->name);
|
||||||
|
for (i = 0; i<dpd->FORM.Enum.NumberOfValues; i++) {
|
||||||
|
- int isset = FALSE;
|
||||||
|
-
|
||||||
|
for (j=0;j<tblsize;j++) {
|
||||||
|
if ((tbl[j].value == dpd->FORM.Enum.SupportedValue[i].u8) &&
|
||||||
|
((tbl[j].vendor_id == 0) ||
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (tbl[j].value == dpd->CurrentValue.u8)
|
||||||
|
+ if (tbl[j].value == dpd->CurrentValue.u8) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -784,6 +821,12 @@
|
||||||
|
gp_widget_set_value (*widget, buf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (!isset2) {
|
||||||
|
+ char buf[200];
|
||||||
|
+ sprintf(buf, _("Unknown value %04x"), dpd->CurrentValue.u8);
|
||||||
|
+ gp_widget_add_choice (*widget, buf);
|
||||||
|
+ gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
return (GP_OK);
|
||||||
|
}
|
||||||
|
if (dpd->FormFlag & PTP_DPFF_Range) {
|
||||||
|
@@ -795,16 +838,16 @@
|
||||||
|
i <= dpd->FORM.Range.MaximumValue.u8;
|
||||||
|
i+= dpd->FORM.Range.StepSize.u8
|
||||||
|
) {
|
||||||
|
- int isset = FALSE;
|
||||||
|
-
|
||||||
|
for (j=0;j<tblsize;j++) {
|
||||||
|
if ((tbl[j].value == i) &&
|
||||||
|
((tbl[j].vendor_id == 0) ||
|
||||||
|
(tbl[j].vendor_id == camera->pl->params.deviceinfo.VendorExtensionID))
|
||||||
|
) {
|
||||||
|
gp_widget_add_choice (*widget, _(tbl[j].label));
|
||||||
|
- if (tbl[j].value == dpd->CurrentValue.u8)
|
||||||
|
+ if (tbl[j].value == dpd->CurrentValue.u8) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, _(tbl[j].label));
|
||||||
|
+ }
|
||||||
|
isset = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -813,10 +856,18 @@
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, _("Unknown value %04x"), i);
|
||||||
|
gp_widget_add_choice (*widget, buf);
|
||||||
|
- if (i == dpd->CurrentValue.u8)
|
||||||
|
+ if (i == dpd->CurrentValue.u8) {
|
||||||
|
+ isset2 = TRUE;
|
||||||
|
gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (!isset2) {
|
||||||
|
+ char buf[200];
|
||||||
|
+ sprintf(buf, _("Unknown value %04x"), dpd->CurrentValue.u8);
|
||||||
|
+ gp_widget_add_choice (*widget, buf);
|
||||||
|
+ gp_widget_set_value (*widget, buf);
|
||||||
|
+ }
|
||||||
|
return (GP_OK);
|
||||||
|
}
|
||||||
|
return (GP_ERROR);
|
||||||
|
@@ -3367,7 +3418,12 @@
|
||||||
|
return GP_ERROR;
|
||||||
|
}
|
||||||
|
/* Get the next set of event data */
|
||||||
|
- return _ptp_check_eos_events (params);
|
||||||
|
+ ret = _ptp_check_eos_events (params);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_ERROR,"ptp2/canon_eos_afdrive", "getevent failed!");
|
||||||
|
+ return translate_ptp_result (ret);
|
||||||
|
+ }
|
||||||
|
+ return GP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
@@ -3450,7 +3506,92 @@
|
||||||
|
return GP_ERROR;
|
||||||
|
}
|
||||||
|
/* Get the next set of event data */
|
||||||
|
- return _ptp_check_eos_events (params);
|
||||||
|
+ ret = _ptp_check_eos_events (params);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_ERROR,"ptp2/canon_eos_mfdrive", "getevent failed!");
|
||||||
|
+ return translate_ptp_result (ret);
|
||||||
|
+ }
|
||||||
|
+ return GP_OK;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
+_get_Canon_EOS_Zoom(CONFIG_GET_ARGS) {
|
||||||
|
+ gp_widget_new (GP_WIDGET_TEXT, _(menu->label), widget);
|
||||||
|
+ gp_widget_set_name (*widget, menu->name);
|
||||||
|
+
|
||||||
|
+ gp_widget_set_value (*widget, "0");
|
||||||
|
+ return (GP_OK);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* Only 1 and 5 seem to work on the EOS 1000D */
|
||||||
|
+static int
|
||||||
|
+_put_Canon_EOS_Zoom(CONFIG_PUT_ARGS) {
|
||||||
|
+ uint16_t ret;
|
||||||
|
+ const char* val;
|
||||||
|
+ unsigned int xval;
|
||||||
|
+ PTPParams *params = &(camera->pl->params);
|
||||||
|
+
|
||||||
|
+ if (!ptp_operation_issupported(params, PTP_OC_CANON_EOS_Zoom))
|
||||||
|
+ return (GP_ERROR_NOT_SUPPORTED);
|
||||||
|
+
|
||||||
|
+ gp_widget_get_value(widget, &val);
|
||||||
|
+ if (!sscanf (val, "%d", &xval)) {
|
||||||
|
+ gp_log (GP_LOG_DEBUG, "ptp2/canon_eos_zoom", "Could not parse %s", val);
|
||||||
|
+ return GP_ERROR;
|
||||||
|
+ }
|
||||||
|
+ ret = ptp_canon_eos_zoom (params, xval);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_DEBUG, "ptp2/canon_eos_zoom", "Canon zoom 0x%x failed: 0x%x", xval, ret);
|
||||||
|
+ return GP_ERROR;
|
||||||
|
+ }
|
||||||
|
+ /* Get the next set of event data */
|
||||||
|
+ ret = _ptp_check_eos_events (params);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_ERROR,"ptp2/canon_eos_zoom", "getevent failed!");
|
||||||
|
+ return translate_ptp_result (ret);
|
||||||
|
+ }
|
||||||
|
+ return GP_OK;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* EOS Zoom. Works in approx 64 pixel steps on the EOS 1000D, but just accept
|
||||||
|
+ * all kind of pairs */
|
||||||
|
+static int
|
||||||
|
+_get_Canon_EOS_ZoomPosition(CONFIG_GET_ARGS) {
|
||||||
|
+ gp_widget_new (GP_WIDGET_TEXT, _(menu->label), widget);
|
||||||
|
+ gp_widget_set_name (*widget, menu->name);
|
||||||
|
+
|
||||||
|
+ gp_widget_set_value (*widget, "0,0");
|
||||||
|
+ return (GP_OK);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
+_put_Canon_EOS_ZoomPosition(CONFIG_PUT_ARGS) {
|
||||||
|
+ uint16_t ret;
|
||||||
|
+ const char* val;
|
||||||
|
+ unsigned int x,y;
|
||||||
|
+ PTPParams *params = &(camera->pl->params);
|
||||||
|
+
|
||||||
|
+ if (!ptp_operation_issupported(params, PTP_OC_CANON_EOS_ZoomPosition))
|
||||||
|
+ return (GP_ERROR_NOT_SUPPORTED);
|
||||||
|
+
|
||||||
|
+ gp_widget_get_value(widget, &val);
|
||||||
|
+ if (2!=sscanf (val, "%d,%d", &x,&y)) {
|
||||||
|
+ gp_log (GP_LOG_DEBUG, "ptp2/canon_eos_zoomposition", "Could not parse %s (expected 'x,y')", val);
|
||||||
|
+ return GP_ERROR;
|
||||||
|
+ }
|
||||||
|
+ ret = ptp_canon_eos_zoomposition (params, x,y);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_DEBUG, "ptp2/canon_eos_zoomposition", "Canon zoom position %d,%d failed: 0x%x", x, y, ret);
|
||||||
|
+ return GP_ERROR;
|
||||||
|
+ }
|
||||||
|
+ /* Get the next set of event data */
|
||||||
|
+ ret = _ptp_check_eos_events (params);
|
||||||
|
+ if (ret != PTP_RC_OK) {
|
||||||
|
+ gp_log (GP_LOG_ERROR,"ptp2/canon_eos_zoomposition", "getevent failed!");
|
||||||
|
+ return translate_ptp_result (ret);
|
||||||
|
+ }
|
||||||
|
+ return GP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -4241,6 +4382,8 @@
|
||||||
|
{ N_("Drive Canon DSLR Autofocus"), "autofocusdrive", 0, PTP_VENDOR_CANON, PTP_OC_CANON_EOS_DoAf, _get_Canon_EOS_AFDrive, _put_Canon_EOS_AFDrive },
|
||||||
|
{ N_("Drive Nikon DSLR Manual focus"), "manualfocusdrive", 0, PTP_VENDOR_NIKON, PTP_OC_NIKON_MfDrive, _get_Nikon_MFDrive, _put_Nikon_MFDrive },
|
||||||
|
{ N_("Drive Canon DSLR Manual focus"), "manualfocusdrive", 0, PTP_VENDOR_CANON, PTP_OC_CANON_EOS_DriveLens, _get_Canon_EOS_MFDrive, _put_Canon_EOS_MFDrive },
|
||||||
|
+ { N_("Canon EOS Zoom "), "eoszoom", 0, PTP_VENDOR_CANON, PTP_OC_CANON_EOS_Zoom, _get_Canon_EOS_Zoom, _put_Canon_EOS_Zoom},
|
||||||
|
+ { N_("Canon EOS Zoom Position"), "eoszoomposition", 0, PTP_VENDOR_CANON, PTP_OC_CANON_EOS_ZoomPosition, _get_Canon_EOS_ZoomPosition, _put_Canon_EOS_ZoomPosition},
|
||||||
|
{ 0,0,0,0,0,0,0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
diff -ru libgphoto2-2.4.9/camlibs/ptp2/library.c libgphoto2//camlibs/ptp2/library.c
|
||||||
|
--- libgphoto2-2.4.9/camlibs/ptp2/library.c 2010-04-11 14:13:03.000000000 +0200
|
||||||
|
+++ libgphoto2//camlibs/ptp2/library.c 2010-06-17 17:05:11.958020000 +0200
|
||||||
|
@@ -2031,7 +2031,8 @@
|
||||||
|
/* delete last / or we get confused later. */
|
||||||
|
path->folder[ strlen(path->folder)-1 ] = '\0';
|
||||||
|
gp_filesystem_append (camera->fs, path->folder, path->name, context);
|
||||||
|
- continue; /* for RAW+JPG mode capture, we just return the last image for now. */
|
||||||
|
+ break;/* for RAW+JPG mode capture, we just return the first image for now, and
|
||||||
|
+ * let wait_for_event get the rest. */
|
||||||
|
}
|
||||||
|
if (newobject)
|
||||||
|
break;
|
||||||
|
@@ -2466,6 +2467,8 @@
|
||||||
|
|
||||||
|
init_ptp_fs (camera, context);
|
||||||
|
|
||||||
|
+ *eventtype = GP_EVENT_TIMEOUT;
|
||||||
|
+ *eventdata = NULL;
|
||||||
|
gettimeofday (&event_start,NULL);
|
||||||
|
if ( (params->deviceinfo.VendorExtensionID == PTP_VENDOR_CANON) &&
|
||||||
|
ptp_operation_issupported(params, PTP_OC_CANON_EOS_RemoteRelease)
|
||||||
|
@@ -2474,7 +2477,6 @@
|
||||||
|
|
||||||
|
if (!params->eos_captureenabled)
|
||||||
|
camera_prepare_capture (camera, context);
|
||||||
|
- *eventtype = GP_EVENT_TIMEOUT;
|
||||||
|
while (1) {
|
||||||
|
PTPCanon_changes_entry entry;
|
||||||
|
|
||||||
|
@@ -2589,10 +2591,8 @@
|
||||||
|
int isevent;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
- if (_timeout_passed(&event_start, timeout)) {
|
||||||
|
- *eventtype = GP_EVENT_TIMEOUT;
|
||||||
|
+ if (_timeout_passed(&event_start, timeout))
|
||||||
|
break;
|
||||||
|
- }
|
||||||
|
gp_context_idle (context);
|
||||||
|
ret = ptp_canon_checkevent (params,&event,&isevent);
|
||||||
|
if (ret!=PTP_RC_OK)
|
||||||
|
@@ -2609,7 +2609,6 @@
|
||||||
|
) {
|
||||||
|
uint32_t newobject, hasc101;
|
||||||
|
|
||||||
|
- *eventtype = GP_EVENT_TIMEOUT;
|
||||||
|
while (1) {
|
||||||
|
int evtcnt;
|
||||||
|
PTPContainer *nevent = NULL;
|
||||||
|
diff -ru libgphoto2-2.4.9/camlibs/ptp2/usb.c libgphoto2//camlibs/ptp2/usb.c
|
||||||
|
--- libgphoto2-2.4.9/camlibs/ptp2/usb.c 2009-12-15 09:28:43.000000000 +0100
|
||||||
|
+++ libgphoto2//camlibs/ptp2/usb.c 2010-06-17 17:05:12.019025000 +0200
|
||||||
|
@@ -506,6 +506,7 @@
|
||||||
|
gp_port_get_timeout (camera->port, &timeout);
|
||||||
|
gp_port_set_timeout (camera->port, PTP2_FAST_TIMEOUT);
|
||||||
|
result = gp_port_check_int (camera->port, (char*)&usbevent, sizeof(usbevent));
|
||||||
|
+ if (result <= 0) result = gp_port_check_int (camera->port, (char*)&usbevent, sizeof(usbevent));
|
||||||
|
gp_port_set_timeout (camera->port, timeout);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
diff -ru libgphoto2-2.4.9/libgphoto2/gphoto2-camera.c libgphoto2//libgphoto2/gphoto2-camera.c
|
||||||
|
--- libgphoto2-2.4.9/libgphoto2/gphoto2-camera.c 2010-04-11 14:30:03.000000000 +0200
|
||||||
|
+++ libgphoto2//libgphoto2/gphoto2-camera.c 2010-06-17 17:05:13.489925000 +0200
|
||||||
|
@@ -1035,8 +1035,6 @@
|
||||||
|
CHECK_INIT (camera, context);
|
||||||
|
|
||||||
|
if (!camera->functions->wait_for_event) {
|
||||||
|
- gp_context_error (context, _("This camera does "
|
||||||
|
- "not support event handling."));
|
||||||
|
CAMERA_UNUSED (camera, context);
|
||||||
|
return (GP_ERROR_NOT_SUPPORTED);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user