Libpktriggercord
What's this ?
This PR reworks pktriggercord so that we can build and expose pktriggercord as a static or dynamic library for other projects to plug in. A fair bit of work have been done to give the Makefile an overhaul to allow this, and almost all methods have been renamed with a standardized naming.
Why ?
While this will be a breaking change for projects that currently use a forked/modified version of pktriggercord, subsequent modifications and fixes will be much easier and quicker to propagate as it could be done by just updating the lib on the target systems rather than reshipping the entire project with the forked code. For instance, indi have a pentax driver that rely on gphotos2 that itself relies on a forked pktriggercord. Another driver has recently come to light by @karlrees who also contributed to this PR, but the it's the same story : it uses a forked and modified version of pktriggercord.
Previously, every single package of the chain had to updated for a simple fix to be applied. No more :)
Left to do
I have absolutely zero knownledge in linux package distribution (I only use them), but I think that a libpktriggercord package is mandatory for the library to be useful.
There is also a couple of opened PRs that we'll need to to manually merge into this one as methods & code have been moved around :)
Breaking changes in this PR
Breaking changes comes from the renaming that has been done all over the place :)
| Member | Renamed to |
|---|---|
| camera_close | pslr_camera_close |
| camera_connect | pslr_camera_connect |
| collect_settings_info | pslr_get_settings_info |
| collect_status_info | pslr_get_status_info |
| copyright | pslr_copyright |
| debug_onoff | pslr_set_debugmode |
| file_formats | pslr_user_file_formats |
| find_model_by_id | pslr_find_model_by_id |
| find_setting_by_name | pslr_find_setting_by_name |
| format_rational | pslr_format_rational |
| get_file_format_t | pslr_get_user_file_format_t |
| get_hw_jpeg_quality | pslr_get_hw_jpeg_quality |
| get_lens_name | pslr_get_lens_name |
| get_pslr_ae_metering | pslr_get_ae_metering |
| get_pslr_ae_metering_str | pslr_get_ae_metering_str |
| get_pslr_af_mode | pslr_get_af_mode |
| get_pslr_af_mode_str | pslr_get_af_mode_str |
| get_pslr_af_point_sel | pslr_get_af_point_sel |
| get_pslr_af_point_sel_str | pslr_get_af_point_sel_str |
| get_pslr_af11_point_str | pslr_get_af11_point_str |
| get_pslr_color_space | pslr_get_color_space |
| get_pslr_color_space_str | pslr_get_color_space_str |
| get_pslr_custom_ev_steps_str | pslr_get_custom_ev_steps_str |
| get_pslr_custom_sensitivity_steps_str | pslr_get_custom_sensitivity_steps_str |
| get_pslr_drive_mode | pslr_get_drive_mode |
| get_pslr_drive_mode_str | pslr_get_drive_mode_str |
| get_pslr_flash_mode | pslr_get_flash_mode |
| get_pslr_flash_mode_str | pslr_get_flash_mode_str |
| get_pslr_image_format_str | pslr_get_image_format_str |
| get_pslr_jpeg_image_tone | pslr_get_jpeg_image_tone |
| get_pslr_jpeg_image_tone_str | pslr_get_jpeg_image_tone_str |
| get_pslr_raw_format_str | pslr_get_raw_format_str |
| get_pslr_scene_mode_str | pslr_get_scene_mode_str |
| get_pslr_white_balance_mode | pslr_get_white_balance_mode |
| get_pslr_white_balance_mode_str | pslr_get_white_balance_mode_str |
| get_user_file_format | pslr_get_user_file_format |
| pslr_camera_name | pslr_get_camera_name |
| pslr_read_datetime | pslr_get_datetime |
| pslr_read_dspinfo | pslr_get_dspinfo |
| pslr_read_setting | pslr_get_setting |
| pslr_read_settings | pslr_get_settings |
| pslr_select_af_point | pslr_set_selected_af_point |
| pslr_set_ec | plsr_set_expose_compensation |
| pslr_write_setting | pslr_set_setting |
| pslr_write_setting_by_name | pslr_set_setting_by_name |
| shexdump | pslr_hexdump |
PS : given the breaking changes, I think that version should be bumped to 0.86.0.