I'd like to ask for permission to do the following changes in core:
Index: core/ptp.c
===================================================================
--- core/ptp.c (revision 2515)
+++ core/ptp.c (working copy)
@@ -650,7 +650,7 @@
}
// send response
- data->send_resp( data->handle, &ptp );
+ data->send_resp( data->handle, &ptp, 0 );
return 1;
}
Index: core/ptp_chdk.h
===================================================================
--- core/ptp_chdk.h (revision 2515)
+++ core/ptp_chdk.h (working copy)
@@ -30,7 +30,7 @@
int handle;
int (*send_data)(int handle, const char *buf, int part_size, int total_size, int, int, int); // (0xFF9F525C), total_size should be 0 except for the first call
int (*recv_data)(int handle, char *buf, int size, int, int); // (0xFF9F5500)
- int (*send_resp)(int handle, PTPContainer *resp); // (0xFF9F5688)
+ int (*send_resp)(int handle, PTPContainer *resp, int zero); // (0xFF9F5688), ixus30/40 needs a third argument, which is always 0
int (*get_data_size)(int handle); // (0xFF9F5830)
int (*send_err_resp)(int handle, PTPContainer *resp); // (0xFF9F5784)
int unknown1; // ???
and
Index: platform/generic/wrappers.c
===================================================================
--- platform/generic/wrappers.c (revision 2515)
+++ platform/generic/wrappers.c (working copy)
@@ -109,7 +109,7 @@
char unk6;
} flashParam;
-short get_parameter_size(long id)
+short __attribute__((weak)) get_parameter_size(long id)
{
extern flashParam* FlashParamsTable[];
I believe that both are harmless.
I'd like to integrate my ixus30/sd200 port, the above changes are needed for correct operation. I plan to fix some issues on the ixus40/sd300 port too.