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

Revision 437, 15.6 KB checked in by phyrephox, 5 years ago (diff)

+ RAW Exceptions: Disable RAW in Sportsmode, Burstmode (continious), EV Bracketing, Timer

Also added Option to be warned when RAW exception is in effect
Hint: Sports Mode Exception only is visible on S3is. EV Bracketing only visible on VXworks (digic II) cameras

+ new mode MODE_SPORTS (removed scn_child from s3is' definition)
+ new propcases defined in platform.h - DISPLAY_MODE & BRACKET_MODE (needs dryos part!)
+ new ubasic command: get_display_mode (0 = show info icons, 1 = Do not show info icons, 2 = LCD off, 3 = EVF)

Maybe we should also add a get_EVF_present?


  • readded mainmenu entry to usermenu
  • remaining video now smaller and can be positioned more to the sides
  • moved remaining video time to video overrides menu
  • changed some symbols in menus
  • english & german lng files
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       ,
66MODE_SPORTS                                                     ,
67};
68
69#if CAM_PROPSET == 2     // most digic3 cameras
70 #define PROPCASE_DRIVE_MODE                                    102
71 #define PROPCASE_FOCUS_MODE                                    133
72 #define PROPCASE_FLASH_MODE                            143
73 #define PROPCASE_USER_TV                                       264
74 #define PROPCASE_TV                                            262
75 #define PROPCASE_USER_AV                                       26
76 #define PROPCASE_AV                                            23
77 #define PROPCASE_MIN_AV                                        25
78 #define PROPCASE_SV                                            247
79 #define PROPCASE_DELTA_SV                                      79
80 #define PROPCASE_SV_MARKET                                     246
81 #define PROPCASE_BV                                            34
82 #define PROPCASE_SUBJECT_DIST1                                 245
83 #define PROPCASE_SUBJECT_DIST2                                 65
84 #define PROPCASE_ISO_MODE                                      149
85 #define PROPCASE_SHOOTING                                      206
86 #define PROPCASE_IS_FLASH_READY                        208
87 #define PROPCASE_OVEREXPOSURE                                  103
88 #define PROPCASE_SHOOTING_MODE                                 49
89 #define PROPCASE_IS_MODE                                           145
90 #define PROPCASE_EV_CORRECTION_1                               107
91 #define PROPCASE_EV_CORRECTION_2                               207
92 #define PROPCASE_ORIENTATION_SENSOR                    219
93 #define PROPCASE_DIGITAL_ZOOM_STATE                            94
94 #define PROPCASE_DIGITAL_ZOOM_POSITION                         95
95 #define PROPCASE_DISPLAY_MODE                         105
96 #define PROPCASE_BRACKET_MODE                         278 //fictional value! need to find out!
97#elif CAM_PROPSET == 1   // most digic2 cameras
98 #define PROPCASE_DRIVE_MODE                                    6
99 #define PROPCASE_FOCUS_MODE                                    12
100 #define PROPCASE_FLASH_MODE                                    16
101// need corresponding values for propset2!!!
102// #define PROPCASE_FLASH_ADJUST_MODE           15
103// #define PROPCASE_FLASH_CORRECTION               28     
104// #define PROPCASE_FLASH_MANUAL_OUTPUT    29
105//  #define PROPCASE_FOCUS_OK           67
106 #define PROPCASE_USER_TV                                       40
107 #define PROPCASE_TV                                            69
108 #define PROPCASE_USER_AV                                       39
109 #define PROPCASE_AV                                            68
110 #define PROPCASE_MIN_AV                                        77
111 #define PROPCASE_SV                                            73
112 #define PROPCASE_DELTA_SV                                      70
113 #define PROPCASE_SV_MARKET                                     72
114 #define PROPCASE_BV                                            71
115 #define PROPCASE_ISO_MODE                                      21
116 #define PROPCASE_SUBJECT_DIST1                                 65
117 #define PROPCASE_SUBJECT_DIST2                                 66
118 #define PROPCASE_SHOOTING                                      205
119 #define PROPCASE_IS_FLASH_READY                                221
120 #define PROPCASE_OVEREXPOSURE                                  76
121 #define PROPCASE_SHOOTING_MODE                                 0
122 #define PROPCASE_IS_MODE                                       229
123 #define PROPCASE_EV_CORRECTION_1                               25
124 #define PROPCASE_EV_CORRECTION_2                               26
125 #define PROPCASE_ORIENTATION_SENSOR                    37
126 #define PROPCASE_DIGITAL_ZOOM_STATE                            58
127 #define PROPCASE_DIGITAL_ZOOM_POSITION                         57
128 #define PROPCASE_DISPLAY_MODE                         181
129 #define PROPCASE_BRACKET_MODE                         36 //missing for dryos!
130#else
131 #error unknown camera processor
132#endif
133
134
135#define MAX_DIST 65535
136
137//********************
138//char * get_debug();
139//********************
140
141#define MODE_SCREEN_MASK        0x0C00
142#define MODE_SCREEN_OPENED      0x0400
143#define MODE_SCREEN_ROTATED     0x0800
144
145#define AS_SIZE (sizeof(aperture_sizes_table)/sizeof(aperture_sizes_table[0]))
146#define ASID_MIN (aperture_sizes_table[0].id)
147#define ASID_MAX (aperture_sizes_table[AS_SIZE-1].id)
148
149/* Keyboard repeat and initial delays */
150#define KBD_REPEAT_DELAY  140
151#define KBD_INITIAL_DELAY 300
152
153// Video recording current status constants, see movie_status variable
154#define VIDEO_RECORD_NEVER_STARTED 0 
155#define VIDEO_RECORD_STOPPED 1 
156#define VIDEO_RECORD_IN_PROGRESS 4
157
158//Optical & digital zoom status constants, see zoom_status variable
159#define ZOOM_OPTICAL_MIN         1
160#define ZOOM_OPTICAL_MAX         2
161#define ZOOM_OPTICAL_MEDIUM      3
162#define ZOOM_OPTICAL_IN          4
163#define ZOOM_OPTICAL_OUT         5
164#define ZOOM_OPTICAL_REACHED_MIN 7
165
166#define ZOOM_DIGITAL_MAX         9
167#define ZOOM_DIGITAL_MEDIUM      10
168#define ZOOM_DIGITAL_IN          11
169#define ZOOM_DIGITAL_OUT         12
170#define ZOOM_DIGITAL_REACHED_MAX 13
171
172typedef struct {
173    short id; // hacks id
174    short prop_id; // Canons id
175    char name[8];
176    short shutter_dfs_value; // shutter speed to use dark frame substraction
177} ISOTable;
178
179typedef struct {
180    short id; // hacks id
181    short prop_id; // Canons id
182    char name[8];
183    long usec;
184} ShutterSpeed;
185
186typedef struct {
187    short id; // hacks id
188    short prop_id; // Canons id
189    char name[8];
190} ApertureSize;
191
192typedef struct {
193    short av96;
194    short dav96;
195    short av96_step;
196    short tv96;
197    short dtv96;
198    short tv96_step;
199    short sv96;
200    short dsv96;
201    short sv96_step;
202    short iso;
203    short diso;
204    short iso_step;
205    short subj_dist;
206    short dsubj_dist;
207    short subj_dist_step;
208    short shoot_counter;
209    short type;
210} EXPO_BRACKETING_VALUES;
211
212#define SET_NOW      1
213#define SET_LATER    0
214
215#define SHOW_ALWAYS    1
216#define SHOW_HALF      2
217
218
219typedef struct {
220    short av96;
221    short tv96;
222    short sv96;
223    short subj_dist;
224    short nd_filter;
225} PHOTO_PARAM;
226
227typedef struct {
228    int    subject_distance;
229    int     near_limit;
230    int     far_limit;
231    int     hyperfocal_distance;
232    int     depth_of_field;
233    int     lens_to_focal_plane_width;
234} DOF_TYPE;
235
236typedef struct {
237    short av96;
238    short tv96;
239    short sv96;
240    short iso;
241    short sv96_market;
242    short iso_market;
243    short bv96_measured;
244    short bv96_seted;//Ev96_internal-Sv96
245    short ev96_seted; //Tv96+Av96
246    short ev96_measured; //Bv96+Sv96
247    short dev96;// Ev96_external-Ev96_internal
248    short dev96_canon;// Canon OverExposure
249    int b; //average scene luminance
250} EXPO_TYPE;
251
252typedef struct {
253    float value;
254    char fraction[10];
255} shutter_speed;
256
257
258/******************************************************************/
259
260int get_focal_length(int zp);
261int get_effective_focal_length(int zp);
262int get_zoom_x(int zp);
263
264/******************************************************************/
265
266long get_tick_count();
267
268void remount_filesystem();
269void mark_filesystem_bootable();
270
271/******************************************************************/
272
273long get_parameter_data(long id, void *buf, long bufsize);
274long set_parameter_data(long id, void *buf, long bufsize);
275
276long get_property_case(long id, void *buf, long bufsize);
277long set_property_case(long id, void *buf, long bufsize);
278
279long get_file_counter();
280long get_exposure_counter();
281long get_file_next_counter();
282long get_target_dir_num();
283long get_target_file_num();
284
285/******************************************************************/
286
287void kbd_key_press(long key);
288void kbd_key_release(long key);
289void kbd_key_release_all();
290long kbd_is_key_pressed(long key);
291long kbd_is_key_clicked(long key);
292long kbd_get_pressed_key();
293long kbd_get_clicked_key();
294long kbd_get_autoclicked_key();
295void kbd_reset_autoclicked_key();
296long kbd_use_zoom_as_mf();
297long kbd_use_up_down_as_fast_ev();
298void kbd_set_alt_mode_key_mask(long key);
299int get_usb_power(int edge);
300/******************************************************************/
301
302long vid_is_bitmap_shown();
303void *vid_get_bitmap_fb();
304long vid_get_bitmap_screen_width();
305long vid_get_bitmap_screen_height();
306long vid_get_bitmap_buffer_width();
307long vid_get_bitmap_buffer_height();
308void *vid_get_viewport_fb();
309void *vid_get_viewport_fb_d();
310void *vid_get_viewport_live_fb();
311void vid_bitmap_refresh();
312long vid_get_viewport_height();
313
314/******************************************************************/
315
316void *hook_raw_fptr();
317void *hook_raw_ret_addr();
318char *hook_raw_image_addr();
319long hook_raw_size();
320void hook_raw_install();
321void hook_raw_save_complete();
322
323/******************************************************************/
324
325long lens_get_zoom_pos();
326void lens_set_zoom_pos(long newpos);
327long lens_get_zoom_point();
328void lens_set_zoom_point(long newpt);
329void lens_set_zoom_speed(long newspd); //for S-series
330long lens_get_focus_pos();
331long lens_get_focus_pos_from_lense();
332void lens_set_focus_pos(long newpos);
333long lens_get_target_distance();
334
335/******************************************************************/
336
337int shooting_in_progress();
338int shooting_is_flash();
339int shooting_is_flash_ready();
340short shooting_get_flash_mode();
341
342
343/******************************************************************/
344int shooting_get_user_tv_id();
345char* shooting_get_tv_str();
346short shooting_get_tv96_from_shutter_speed(float t);
347short shooting_get_tv96();
348void shooting_set_tv96(short v, short is_now);
349void shooting_set_tv96_direct(short v, short is_now);
350void shooting_set_shutter_speed_ubasic(int t, short is_now);
351short shooting_get_user_tv96();
352void shooting_set_user_tv96(short v);
353float shooting_get_shutter_speed_from_tv96(short tv);
354float shooting_get_shutter_speed_override_value();
355const char * shooting_get_tv_override_value();
356const char * shooting_get_tv_bracket_value();
357const char * shooting_get_bracket_type();
358void shooting_set_user_tv_by_id(int v);
359void shooting_set_user_tv_by_id_rel(int v);
360const ShutterSpeed *shooting_get_tv_line();
361/******************************************************************/
362short shooting_get_aperture_sizes_table_size();
363short shooting_get_aperture_sizes_table_prop_id(short i);
364short shooting_get_max_aperture_sizes_table_prop_id();
365short shooting_get_aperture_from_av96(short av96);
366int shooting_get_user_av_id();
367char* shooting_get_av_str();
368void shooting_set_user_av_by_id(int v);
369short shooting_get_av96();
370void shooting_set_av96(short v,short is_now);
371void shooting_set_av96_direct(short v, short is_now);
372short shooting_get_user_av96();
373void shooting_set_user_av96(short v);
374void shooting_set_user_av_by_id_rel(int v);
375short shooting_get_real_aperture();
376short shooting_get_min_real_aperture();
377short shooting_get_av96_override_value();
378const char * shooting_get_av_bracket_value();
379void shooting_set_nd_filter_state(short v, short is_now);
380/******************************************************************/
381int shooting_get_day_seconds();
382int shooting_get_tick_count();
383/******************************************************************/
384void shooting_set_prop(int id, int v);
385int shooting_get_prop(int id);
386/******************************************************************/
387extern int circle_of_confusion;
388/******************************************************************/
389extern const int zoom_points;
390int shooting_get_zoom();
391void shooting_set_zoom(int v);
392void shooting_set_zoom_rel(int v);
393void shooting_set_zoom_speed(int v);
394/******************************************************************/
395int shooting_get_focus();
396void shooting_set_focus(int v, short is_now);
397short shooting_get_focus_mode();
398int shooting_get_hyperfocal_distance();
399int shooting_get_hyperfocal_distance_f(int av, int fl);
400int shooting_get_near_limit_of_acceptable_sharpness();
401int shooting_get_far_limit_of_acceptable_sharpness();
402int shooting_get_depth_of_field();
403int shooting_get_subject_distance();
404int shooting_get_subject_distance_override_value();
405int shooting_get_subject_distance_bracket_value();
406int shooting_get_subject_distance_override_koef();
407int shooting_get_lens_to_focal_plane_width();
408short shooting_get_drive_mode();
409short shooting_can_focus();
410short shooting_get_common_focus_mode();
411/******************************************************************/
412int shooting_get_iso_mode();
413void shooting_set_iso_mode(int v);
414short shooting_get_sv96();
415short shooting_get_svm96();
416short shooting_get_iso_market();
417short shooting_get_iso_real();
418void shooting_set_iso_real(short iso, short is_now);
419//void shooting_set_iso_market(short isom);
420//void shooting_set_iso_real_delta_from_base(short diso);
421void shooting_set_sv96(short sv96, short is_now);
422short shooting_get_iso_override_value();
423short shooting_get_iso_bracket_value();
424/******************************************************************/
425short shooting_get_canon_overexposure_value();
426short shooting_get_bv96();
427int shooting_get_luminance();
428//const char* shooting_get_flash_light_value();
429/******************************************************************/
430int shooting_get_canon_subject_distance();
431int shooting_get_exif_subject_dist();
432/******************************************************************/
433void shooting_expo_param_override();
434void shooting_bracketing(void);
435
436void shooting_video_bitrate_change(int v);
437extern int auto_started;
438void shooting_tv_bracketing();
439void shooting_av_bracketing();
440void shooting_iso_bracketing();
441/******************************************************************/
442void clear_values();
443/******************************************************************/
444
445
446int mode_get();
447
448/******************************************************************/
449
450long stat_get_vbatt();
451long get_vbatt_min();
452long get_vbatt_max();
453void ubasic_camera_set_raw(int mode);
454void ubasic_camera_set_nr(int mode);
455int ubasic_camera_get_nr();
456int ubasic_camera_script_autostart();
457void ubasic_camera_set_script_autostart();
458void exit_alt();
459void camera_shutdown_in_a_second(void);
460
461extern int shot_histogram_enabled;
462
463void disable_shutdown();
464void enable_shutdown();
465
466void JogDial_CW(void);
467void JogDial_CCW(void);
468void change_video_tables(int a, int b);
469int get_flash_params_count(void);
470
471/******************************************************************/
472void __attribute__((noreturn)) shutdown();
473void ubasic_set_led(int led, int state, int bright);
474void debug_led(int state);
475/****************************************/
476extern int canon_menu_active; 
477extern char canon_shoot_menu_active; 
478extern int recreview_hold;
479
480extern int movie_status;
481unsigned int GetFreeCardSpaceKb(void);
482unsigned int GetTotalCardSpaceKb(void);
483
484void swap_partitions(void);
485int get_part_count(void);
486void create_partitions(void);
487extern char * camera_jpeg_count_str();
488
489unsigned int GetJpgCount(void);
490unsigned int GetRawCount(void);
491
492void MakeAFScan(void);
493extern int movie_status;
494extern int zoom_status;
495
496void wait_until_remote_button_is_released(void);
497
498
499#define started() debug_led(1)
500#define finished() debug_led(0)
501
502#endif
Note: See TracBrowser for help on using the repository browser.