source: trunk/include/platform.h @ 316

Revision 316, 13.3 KB checked in by cail, 5 years ago (diff)

ixus65 support onto trunk
many bugs, but it works

Line 
1#ifndef PLATFORM_H
2#define PLATFORM_H
3
4#define SSID_INVALID (-32767)
5#define ASID_INVALID (-32767)
6
7#define MODE_MASK               0x0300
8#define MODE_REC                0x0100
9#define MODE_PLAY               0x0200
10
11#define MODE_SHOOTING_MASK      0x00FF
12
13enum {
14MODE_AUTO               =1,
15MODE_P                  ,
16MODE_TV                 ,
17MODE_AV                 ,
18MODE_M                  ,
19MODE_PORTRAIT           ,
20MODE_NIGHT              ,
21MODE_LANDSCAPE          ,
22MODE_VIDEO_STD          ,
23MODE_VIDEO_SPEED        ,
24MODE_VIDEO_COMPACT      ,
25MODE_VIDEO_MY_COLORS    ,
26MODE_VIDEO_COLOR_ACCENT ,
27MODE_STITCH             ,
28MODE_MY_COLORS          ,
29MODE_SCN_WATER          ,
30MODE_SCN_NIGHT          ,
31MODE_SCN_CHILD          ,
32MODE_SCN_PARTY          ,
33MODE_SCN_GRASS          ,
34MODE_SCN_SNOW           ,
35MODE_SCN_BEACH          ,
36MODE_SCN_FIREWORK       ,
37MODE_SCN_COLOR_ACCENT   ,
38MODE_VIDEO_HIRES        ,
39MODE_SCN_AQUARIUM       ,
40MODE_COLOR_ACCENT       ,
41MODE_SCN_NIGHT1         ,
42MODE_SCN_ISO_3200       ,
43MODE_SCN_SPORT          ,
44MODE_SCN_KIDS_PETS      ,
45MODE_INDOOR             ,
46MODE_KIDS_PETS          ,
47MODE_NIGHT_SNAPSHOT     ,
48MODE_DIGITAL_MACRO      ,
49MODE_SCN_FOLIAGE        ,
50MODE_VIDEO_TIME_LAPSE   ,
51MODE_SCN_INDOOR         ,
52};
53
54#if defined(CAMERA_a570) || defined(CAMERA_a560) || defined(CAMERA_a720) || defined(CAMERA_ixus70_sd1000) || defined(CAMERA_a650) || defined(CAMERA_a460)
55 #define PROPCASE_DRIVE_MODE                                    102
56 #define PROPCASE_FOCUS_MODE                                    133
57 #define PROPCASE_FLASH_MODE                            143
58 #define PROPCASE_USER_TV                                       264
59 #define PROPCASE_TV                                            262
60 #define PROPCASE_USER_AV                                       26
61 #define PROPCASE_AV                                            23
62 #define PROPCASE_MIN_AV                                        25
63 #define PROPCASE_SV                                            247
64 #define PROPCASE_DELTA_SV                                      79
65 #define PROPCASE_SV_MARKET                                     246
66 #define PROPCASE_BV                                            34
67 #define PROPCASE_SUBJECT_DIST1                                 245
68 #define PROPCASE_SUBJECT_DIST2                                 65
69 #define PROPCASE_ISO_MODE                                      149
70 #define PROPCASE_SHOOTING                                      206
71 #define PROPCASE_IS_FLASH_READY                        208
72 #define PROPCASE_OVEREXPOSURE                                  103
73 #define PROPCASE_SHOOTING_MODE                                 49
74
75#else
76 #define PROPCASE_DRIVE_MODE                                    6
77 #define PROPCASE_FOCUS_MODE                                    12
78 #define PROPCASE_FLASH_MODE                                    16
79 #define PROPCASE_USER_TV                                       40
80 #define PROPCASE_TV                                            69
81 #define PROPCASE_USER_AV                                       39
82 #define PROPCASE_AV                                            68
83 #define PROPCASE_MIN_AV                                        77
84 #define PROPCASE_SV                                            73
85 #define PROPCASE_DELTA_SV                                      70
86 #define PROPCASE_SV_MARKET                                     72
87 #define PROPCASE_BV                                            71
88 #define PROPCASE_ISO_MODE                                      21
89 #define PROPCASE_SUBJECT_DIST1                                 65
90 #define PROPCASE_SUBJECT_DIST2                                 66
91 #define PROPCASE_SHOOTING                                      205
92 #define PROPCASE_IS_FLASH_READY                                221
93 #define PROPCASE_OVEREXPOSURE                                  76
94 #define PROPCASE_SHOOTING_MODE                                 0
95#endif
96
97
98#define MAX_DIST 65535
99
100//********************
101//char * get_debug();
102//********************
103
104#define MODE_SCREEN_MASK        0x0C00
105#define MODE_SCREEN_OPENED      0x0400
106#define MODE_SCREEN_ROTATED     0x0800
107
108#define AS_SIZE (sizeof(aperture_sizes_table)/sizeof(aperture_sizes_table[0]))
109#define ASID_MIN (aperture_sizes_table[0].id)
110#define ASID_MAX (aperture_sizes_table[AS_SIZE-1].id)
111
112#if defined (CAMERA_g7) || defined (CAMERA_a710) || defined (CAMERA_s3is) || defined (CAMERA_a630) || defined (CAMERA_a640) || defined (CAMERA_a560) || defined (CAMERA_a570)
113#define CAMERA_MULTIPART
114#endif
115
116/* Keyboard repeat and initial delays */
117#define KBD_REPEAT_DELAY  140
118#define KBD_INITIAL_DELAY 300
119
120typedef struct {
121    short id; // hacks id
122    short prop_id; // Canons id
123    char name[8];
124    short shutter_dfs_value; // shutter speed to use dark frame substraction
125} ISOTable;
126
127typedef struct {
128    short id; // hacks id
129    short prop_id; // Canons id
130    char name[8];
131    long usec;
132} ShutterSpeed;
133
134typedef struct {
135    short id; // hacks id
136    short prop_id; // Canons id
137    char name[8];
138} ApertureSize;
139
140typedef struct {
141    short av96;
142    short dav96;
143    short av96_step;
144    short tv96;
145    short dtv96;
146    short tv96_step;
147    short sv96;
148    short dsv96;
149    short sv96_step;
150    short iso;
151    short diso;
152    short iso_step;
153    short subj_dist;
154    short dsubj_dist;
155    short subj_dist_step;
156    short shoot_counter;
157    short type;
158} EXPO_BRACKETING_VALUES;
159
160#define SET_NOW      1
161#define SET_LATER    0
162
163#define SHOW_ALWAYS    1
164#define SHOW_HALF      2
165
166
167typedef struct {
168    short av96;
169    short tv96;
170    short sv96;
171    short subj_dist;
172    short nd_filter;
173} PHOTO_PARAM;
174
175typedef struct {
176    int    subject_distance;
177    int     near_limit;
178    int     far_limit;
179    int     hyperfocal_distance;
180    int     depth_of_field;
181    int     lens_to_focal_plane_width;
182} DOF_TYPE;
183
184typedef struct {
185    short av96;
186    short tv96;
187    short sv96;
188    short iso;
189    short sv96_market;
190    short iso_market;
191    short bv96_measured;
192    short bv96_seted;//Ev96_internal-Sv96
193    short ev96_seted; //Tv96+Av96
194    short ev96_measured; //Bv96+Sv96
195    short dev96;// Ev96_external-Ev96_internal
196    short dev96_canon;// Canon OverExposure
197    short b; //average scene luminance
198} EXPO_TYPE;
199
200typedef struct {
201    float value;
202    char fraction[10];
203} shutter_speed;
204
205
206/******************************************************************/
207
208int get_focal_length(int zp);
209int get_effective_focal_length(int zp);
210int get_zoom_x(int zp);
211
212/******************************************************************/
213
214long get_tick_count();
215
216void remount_filesystem();
217void mark_filesystem_bootable();
218
219/******************************************************************/
220
221long get_parameter_data(long id, void *buf, long bufsize);
222long set_parameter_data(long id, void *buf, long bufsize);
223
224long get_property_case(long id, void *buf, long bufsize);
225long set_property_case(long id, void *buf, long bufsize);
226
227long get_file_counter();
228long get_file_next_counter();
229long get_target_dir_num();
230long get_target_file_num();
231
232/******************************************************************/
233
234void kbd_key_press(long key);
235void kbd_key_release(long key);
236void kbd_key_release_all();
237long kbd_is_key_pressed(long key);
238long kbd_is_key_clicked(long key);
239long kbd_get_pressed_key();
240long kbd_get_clicked_key();
241long kbd_get_autoclicked_key();
242void kbd_reset_autoclicked_key();
243long kbd_use_zoom_as_mf();
244void kbd_set_alt_mode_key_mask(long key);
245int get_usb_power(int edge);
246/******************************************************************/
247
248long vid_is_bitmap_shown();
249void *vid_get_bitmap_fb();
250long vid_get_bitmap_width();
251long vid_get_bitmap_height();
252void *vid_get_viewport_fb();
253void *vid_get_viewport_fb_d();
254void *vid_get_viewport_live_fb();
255void vid_bitmap_refresh();
256long vid_get_viewport_height();
257
258/******************************************************************/
259
260void *hook_raw_fptr();
261void *hook_raw_ret_addr();
262char *hook_raw_image_addr();
263long hook_raw_size();
264void hook_raw_install();
265void hook_raw_save_complete();
266
267/******************************************************************/
268
269long lens_get_zoom_pos();
270void lens_set_zoom_pos(long newpos);
271long lens_get_zoom_point();
272void lens_set_zoom_point(long newpt);
273void lens_set_zoom_speed(long newspd); //for S-series
274long lens_get_focus_pos();
275long lens_get_focus_pos_from_lense();
276void lens_set_focus_pos(long newpos);
277long lens_get_target_distance();
278
279/******************************************************************/
280
281int shooting_in_progress();
282int shooting_is_flash_ready();
283
284/******************************************************************/
285int shooting_get_user_tv_id();
286char* shooting_get_tv_str();
287short shooting_get_tv96_from_shutter_speed(float t);
288short shooting_get_tv96();
289void shooting_set_tv96(short v, short is_now);
290void shooting_set_tv96_direct(short v, short is_now);
291void shooting_set_shutter_speed_ubasic(int t, short is_now);
292short shooting_get_user_tv96();
293void shooting_set_user_tv96(short v);
294float shooting_get_shutter_speed_from_tv96(short tv);
295float shooting_get_shutter_speed_override_value();
296const char * shooting_get_tv_override_value();
297const char * shooting_get_tv_bracket_value();
298const char * shooting_get_bracket_type();
299void shooting_set_user_tv_by_id(int v);
300void shooting_set_user_tv_by_id_rel(int v);
301const ShutterSpeed *shooting_get_tv_line();
302/******************************************************************/
303short shooting_get_aperture_sizes_table_size();
304short shooting_get_aperture_sizes_table_prop_id(short i);
305short shooting_get_max_aperture_sizes_table_prop_id();
306short shooting_get_aperture_from_av96(short av96);
307int shooting_get_user_av_id();
308char* shooting_get_av_str();
309void shooting_set_user_av_by_id(int v);
310short shooting_get_av96();
311void shooting_set_av96(short v,short is_now);
312void shooting_set_av96_direct(short v, short is_now);
313short shooting_get_user_av96();
314void shooting_set_user_av96(short v);
315void shooting_set_user_av_by_id_rel(int v);
316short shooting_get_real_aperture();
317short shooting_get_min_real_aperture();
318short shooting_get_av96_override_value();
319const char * shooting_get_av_bracket_value();
320void shooting_set_nd_filter_state(short v, short is_now);
321/******************************************************************/
322int shooting_get_day_seconds();
323int shooting_get_tick_count();
324/******************************************************************/
325void shooting_set_prop(int id, int v);
326int shooting_get_prop(int id);
327/******************************************************************/
328extern int circle_of_confusion;
329/******************************************************************/
330extern const int zoom_points;
331int shooting_get_zoom();
332void shooting_set_zoom(int v);
333void shooting_set_zoom_rel(int v);
334void shooting_set_zoom_speed(int v);
335/******************************************************************/
336int shooting_get_focus();
337void shooting_set_focus(int v, short is_now);
338short shooting_get_focus_mode();
339int shooting_get_hyperfocal_distance();
340int shooting_get_hyperfocal_distance_f(int av, int fl);
341int shooting_get_near_limit_of_acceptable_sharpness();
342int shooting_get_far_limit_of_acceptable_sharpness();
343int shooting_get_depth_of_field();
344int shooting_get_subject_distance();
345int shooting_get_subject_distance_override_value();
346int shooting_get_subject_distance_bracket_value();
347int shooting_get_subject_distance_override_koef();
348int shooting_get_lens_to_focal_plane_width();
349short shooting_get_drive_mode();
350short shooting_can_focus();
351short shooting_get_common_focus_mode();
352/******************************************************************/
353int shooting_get_iso_mode();
354void shooting_set_iso_mode(int v);
355short shooting_get_sv96();
356short shooting_get_svm96();
357short shooting_get_iso_market();
358short shooting_get_iso_real();
359void shooting_set_iso_real(short iso, short is_now);
360//void shooting_set_iso_market(short isom);
361//void shooting_set_iso_real_delta_from_base(short diso);
362void shooting_set_sv96(short sv96, short is_now);
363short shooting_get_iso_override_value();
364short shooting_get_iso_bracket_value();
365/******************************************************************/
366short shooting_get_canon_overexposure_value();
367short shooting_get_bv96();
368short shooting_get_luminance();
369//const char* shooting_get_flash_light_value();
370/******************************************************************/
371int shooting_get_canon_subject_distance();
372int shooting_get_exif_subject_dist();
373/******************************************************************/
374void shooting_expo_param_override();
375void shooting_bracketing(void);
376
377void shooting_video_bitrate_change(int v);
378extern int auto_started;
379void shooting_tv_bracketing();
380void shooting_av_bracketing();
381void shooting_iso_bracketing();
382/******************************************************************/
383void clear_values();
384/******************************************************************/
385
386
387int mode_get();
388
389/******************************************************************/
390
391long stat_get_vbatt();
392long get_vbatt_min();
393long get_vbatt_max();
394void ubasic_camera_set_raw(int mode);
395void ubasic_camera_set_nr(int mode);
396int ubasic_camera_get_nr();
397int ubasic_camera_script_autostart();
398void ubasic_camera_set_script_autostart();
399void exit_alt();
400void camera_shutdown_in_a_second(void);
401
402void disable_shutdown();
403void enable_shutdown();
404
405void JogDial_CW(void);
406void JogDial_CCW(void);
407void change_video_tables(int a, int b);
408int get_flash_params_count(void);
409
410/******************************************************************/
411void __attribute__((noreturn)) shutdown();
412void ubasic_set_led(int led, int state, int bright);
413void debug_led(int state);
414/****************************************/
415extern int canon_menu_active; 
416extern char canon_shoot_menu_active; 
417extern int recreview_hold;
418
419unsigned int GetFreeCardSpaceKb(void);
420unsigned int GetTotalCardSpaceKb(void);
421
422void swap_partitions(void);
423int get_part_count(void);
424void create_partitions(void);
425extern char * camera_jpeg_count_str();
426
427#define started() debug_led(1)
428#define finished() debug_led(0)
429
430#endif
Note: See TracBrowser for help on using the repository browser.