Updating link to change in openSUSE:Factory/libgphoto2 revision 55.0

OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=2982913cb9fb150b3b2269e1658658a9
This commit is contained in:
OBS User buildservice-autocommit 2010-08-23 13:29:20 +00:00 committed by Git OBS Bridge
parent f886ce920c
commit 383762d810
5 changed files with 15 additions and 424 deletions

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8bb28232c246c19465724dbca2f511dd56feaee3cdb018589e8370c46f1cf1cd
size 5699257

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8bd80a70db64defcc9f50354326175eec1d070c2cc3dfbcd7ddd1ef9bb4f7af0
size 5642063

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
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

View File

@ -1,5 +1,5 @@
#
# spec file for package libgphoto2 (Version 2.4.9)
# spec file for package libgphoto2 (Version 2.4.10)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -30,11 +30,10 @@ Obsoletes: libgphoto2-64bit
License: LGPLv2.1+
Group: Hardware/Camera
Summary: A Digital Camera Library
Version: 2.4.9
Release: 3
Version: 2.4.10
Release: 1
Source0: libgphoto2-%{version}.tar.bz2
Source1: baselibs.conf
Patch0: libgphoto24-branch.patch
Patch1: libgphoto2-4096files.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: %{name}-lang = %{version}
@ -70,7 +69,6 @@ These are its development libraries and headers.
%lang_package
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%build

View File

@ -1,416 +0,0 @@
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);
}