source: branches/juciphox/include/platform.h @ 412

Revision 388, 13.6 KB checked in by GrAnd, 5 years ago (diff)

+ Added TX1 support.
=> NOTE: Due to hardware differences there are (might be significant) changes in main core code and ALL cameras are affected

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