Hi, On Thu, Apr 04, 2024 at 07:23:42PM +0200, Jeroen Lichtenauer wrote: > Hi Marcus, > > Here's the debug for your latest version: > https://drive.usercontent.google.com/uc?id=1MGvbSM_Oo2x6CpfFHn0cM8VAqgDvjDR0&export=download > Your version seems to come to the same result as mine (same list of > properties). > > I see that you have chosen to use the second (more complete) enum list for > the final property description. From that, I understand that the > ptp_unpack_Sony_DPD function should return a complete list of options, > including those that may currently not be available, right? > > Additionally, there were also 3 properties for which I needed to change the > data type for the ILCE-7SM3 in ptp2/config.c: > > { N_("Exposure Program"), "expprogram", > PTP_DPC_ExposureProgramMode, 0, PTP_DTC_UINT16, > _get_ExposureProgram, _put_ExposureProgram }, => to => > { N_("Exposure Program"), "expprogram", > PTP_DPC_ExposureProgramMode, 0, PTP_DTC_UINT32, > _get_ExposureProgram, _put_ExposureProgram }, > > static struct deviceproptableu16 exposure_program_modes[] = { => to => > static struct deviceproptableu32 exposure_program_modes[] = { > > GENERIC16TABLE(ExposureProgram,exposure_program_modes) => to => > GENERIC32TABLE(ExposureProgram,exposure_program_modes) > > === > > { N_("Still Capture Mode"), "capturemode", > PTP_DPC_StillCaptureMode, 0, > PTP_DTC_UINT16, _get_CaptureMode, _put_CaptureMode }, > => to => > { N_("Still Capture Mode"), "capturemode", > PTP_DPC_StillCaptureMode, 0, > PTP_DTC_UINT32, _get_CaptureMode, _put_CaptureMode }, > > static struct deviceproptableu16 capture_mode[] = { => to => > static struct deviceproptableu32 capture_mode[] = { > > GENERIC16TABLE(CaptureMode,capture_mode) => to => > GENERIC32TABLE(CaptureMode,capture_mode) > > === > > { N_("Priority Mode"), "prioritymode", PTP_DPC_SONY_PriorityMode, > PTP_VENDOR_SONY, PTP_DTC_INT8, _get_Sony_PriorityMode, > _put_Sony_PriorityMode }, => to => > { N_("Priority Mode"), "prioritymode", PTP_DPC_SONY_PriorityMode, > PTP_VENDOR_SONY, PTP_DTC_UINT8, _get_Sony_PriorityMode, > _put_Sony_PriorityMode }, > > static struct deviceproptablei8 sony_prioritymode[] = { => to => > static struct deviceproptableu8 sony_prioritymode[] = {
> Obviously, some additional device-specific definitions are needed here, > because now it won't work anymore for the other Sony cameras. But I haven't > yet figured out how to target a specific Sony device in config.c. In theory you should be able to add the 32bit variant as a secondary choice. The config code should skip the 16 bit variant if you have 32bit type, and then select the 32bit type. So copy the table and name it modes32 and just add the new line. There is "by usb id" table based driven code there (look for nikon ones), but I think just adding a different line with the different data type should work more transparently. > Unfortunately, still the operations/properties below are missing. I guess > there might be some more binary coding differences for operations as well. > Still some more work to do... > > Autofocus(0xd2c1): error 2002 on query. > Capture(0xd2c2): error 2002 on query. > Property 0xd2c3: error 2002 on query. > Property 0xd2c4: error 2002 on query. If the camera does not report them we can't really get to them. 0xd2c are also kind of write-only for instance. Ciao, Marcus _______________________________________________ Gphoto-devel mailing list Gphoto-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gphoto-devel