camlib
Documentation for camlib is still a work-in-progress
Loading...
Searching...
No Matches
cl_ops.h
Go to the documentation of this file.
1
2#ifndef OPERATIONS_H
3#define OPERATIONS_H
4
5enum PtpLiveViewType {
6 PTP_LV_NONE = 0,
7 PTP_LV_EOS = 1,
8 PTP_LV_CANON = 2,
9 // ptpview v1, Old 360x240 manually computed 7fps liveview
10 PTP_LV_ML = 3,
11 // ptpview v2, only has bmp menu graphics
12 PTP_LV_EOS_ML_BMP = 4,
13};
14
15enum PtpLiveViewFormat {
16 PTP_LV_JPEG,
17};
18
20 uint32_t payload_offset_to_data;
21 enum PtpLiveViewFormat format;
22};
23
24int ptp_liveview_params(struct PtpRuntime *r, struct PtpLiveviewParams *params);
25
29int ptp_set_generic_property(struct PtpRuntime *r, const char *name, int value);
30
36
40
44
46int ptp_close_session(struct PtpRuntime *r);
47
49int ptp_get_device_info(struct PtpRuntime *r, struct PtpDeviceInfo *di);
50
53int ptp_get_storage_ids(struct PtpRuntime *r, struct PtpArray **a);
54
56int ptp_init_capture(struct PtpRuntime *r, int storage_id, int object_format);
57
59int ptp_init_open_capture(struct PtpRuntime *r, int storage_id, int object_format);
60
62int ptp_terminate_open_capture(struct PtpRuntime *r, int trans);
63
65int ptp_get_storage_info(struct PtpRuntime *r, int id, struct PtpStorageInfo *si);
66
68int ptp_send_object_info(struct PtpRuntime *r, int storage_id, int handle, struct PtpObjectInfo *oi);
69
71int ptp_get_prop_value(struct PtpRuntime *r, int code);
72
74int ptp_set_prop_value(struct PtpRuntime *r, int code, int value);
75
77int ptp_set_prop_value_data(struct PtpRuntime *r, int code, void *data, int length);
78
80int ptp_get_prop_desc(struct PtpRuntime *r, int code, struct PtpPropDesc *pd);
81
83// @param id storage ID
84// @param format Can specify file format ID, or zero for all IDs
85// @param in Can be folder object ID, or 0 for recursive (entire filesystem)
86// @param[out] a Output array is a pointer to data packet, and will be overwritten by new operations
88int ptp_get_object_handles(struct PtpRuntime *r, int id, int format, int in, struct PtpArray **a);
89
91int ptp_get_object_info(struct PtpRuntime *r, uint32_t handle, struct PtpObjectInfo *oi);
92
94int ptp_move_object(struct PtpRuntime *r, int storage_id, int handle, int folder);
95
97int ptp_delete_object(struct PtpRuntime *r, int handle, int format_code);
98
102int ptp_get_thumbnail(struct PtpRuntime *r, int handle);
103
106int ptp_get_partial_object(struct PtpRuntime *r, uint32_t handle, int offset, int max);
107
110int ptp_get_object(struct PtpRuntime *r, int handle);
111
114int ptp_download_object(struct PtpRuntime *r, int handle, FILE *stream, size_t max);
115
121int ptp_get_all_known(struct PtpRuntime *r, struct PtpGenericEvent **s, int *length);
122
126
129int ptpip_init_command_request(struct PtpRuntime *r, const char *device_name);
130
131// EOS Only functions - not for Canon point and shoot
132int ptp_eos_get_viewfinder_data(struct PtpRuntime *r);
133int ptp_eos_set_remote_mode(struct PtpRuntime *r, int mode);
134int ptp_eos_set_prop_value(struct PtpRuntime *r, int code, int value);
135int ptp_eos_set_event_mode(struct PtpRuntime *r, int mode);
136int ptp_eos_remote_release_off(struct PtpRuntime *r, int mode);
137int ptp_eos_remote_release_on(struct PtpRuntime *r, int mode);
138int ptp_eos_get_event(struct PtpRuntime *r);
139int ptp_eos_hdd_capacity_push(struct PtpRuntime *r);
140int ptp_eos_hdd_capacity_pop(struct PtpRuntime *r);
141int ptp_eos_get_prop_value(struct PtpRuntime *r, int code);
142int ptp_eos_bulb_start(struct PtpRuntime *r);
143int ptp_eos_bulb_stop(struct PtpRuntime *r);
144int ptp_eos_set_ui_lock(struct PtpRuntime *r);
145int ptp_eos_reset_ui_lock(struct PtpRuntime *r);
146int ptp_eos_cancel_af(struct PtpRuntime *r);
147// steps can be between -3 and 3
148int ptp_eos_drive_lens(struct PtpRuntime *r, int steps);
149int ptp_eos_ping(struct PtpRuntime *r);
150
151// Get max expected size of liveview, for allocations only
152int ptp_liveview_size(struct PtpRuntime *r);
153// Runs vendor-specific commands for the liveview
154int ptp_liveview_init(struct PtpRuntime *r);
155int ptp_liveview_deinit(struct PtpRuntime *r);
156// Get a frame directly into a buffer. Size is expected to be from ptp_liveview_size()
157int ptp_liveview_frame(struct PtpRuntime *r, void *buffer);
158int ptp_liveview_type(struct PtpRuntime *r);
159
160// Get Magic Lantern transparent menus buffer - see https://github.com/petabyt/ptpview
161int ptp_ml_init_bmp_lv(struct PtpRuntime *r);
162int ptp_ml_get_bmp_lv(struct PtpRuntime *r, uint32_t **buffer_ptr);
163int ptp_ml_get_liveview_v1(struct PtpRuntime *r);
164
165int ptp_chdk_get_version(struct PtpRuntime *r);
166int ptp_chdk_upload_file(struct PtpRuntime *r, char *input, char *dest);
167
168// Canon advanced extensions - available in canon-adv.c
169int ptp_eos_activate_command(struct PtpRuntime *r);
170int ptp_eos_exec_evproc(struct PtpRuntime *r, void *data, int length, int expect_return);
171int ptp_eos_evproc_run(struct PtpRuntime *r, char *fmt, ...);
172int ptp_eos_evproc_return_data(struct PtpRuntime *r);
173int ptp_eos_fa_get_build_version(struct PtpRuntime *r, char *buffer, int max);
174
177
178#endif
int ptp_get_storage_ids(struct PtpRuntime *r, struct PtpArray **a)
Returns allocated array of storage IDs call free() afterwards.
int ptp_eos_get_liveview(struct PtpRuntime *r)
Generic Struct for arrays.
Definition camlib.h:182
Generic event / property change.
Definition camlib.h:167
Definition cl_ops.h:19
Represents a single device connection.
Definition camlib.h:109
int ptp_get_thumbnail(struct PtpRuntime *r, int handle)
Raw JPEG data is accessible from ptp_get_payload()
int ptp_set_generic_property(struct PtpRuntime *r, const char *name, int value)
Set a generic property - abstraction over SetDeviceProp.
int ptp_get_partial_object(struct PtpRuntime *r, uint32_t handle, int offset, int max)
int ptpip_init_command_request(struct PtpRuntime *r, const char *device_name)
int ptp_download_object(struct PtpRuntime *r, int handle, FILE *stream, size_t max)
Download an object from handle, to a local file (uses GetPartialObject)
int ptp_pre_take_picture(struct PtpRuntime *r)
Call before taking a picture - this is generally for 'focusing' On some cameras this does nothing.
int ptpip_init_events(struct PtpRuntime *r)
int ptp_take_picture(struct PtpRuntime *r)
Call after calling ptp_pre_take_picture - this time a picture will be taken.
int ptp_get_object(struct PtpRuntime *r, int handle)
Download an object.
int ptp_open_session(struct PtpRuntime *r)
Open a new session - required for most commands.
int ptp_get_object_handles(struct PtpRuntime *r, int id, int format, int in, struct PtpArray **a)
Gets a list of object handles in a storage device or folder.
int ptp_get_all_known(struct PtpRuntime *r, struct PtpGenericEvent **s, int *length)
Recieve a generic list of all properties received in DeviceInfo This is similar to getting all events...