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

Revision 416, 14.3 KB checked in by Jucifer, 5 years ago (diff)

(pretty much from http://chdk.setepontos.com/index.php/topic,688.0.html:)

  • all uBASIC commands beginning with "get_" can now use the "new" syntax (e.g. [f=]get_focus, S=get_prop 205), the ones listed in Wikia work as they used to

+ applied PhyrePhox?'s customizations (the newest commands have the new syntax ([x=]command)), http://chdk.setepontos.com/index.php/topic,978.msg8339.html#msg8339

+ applied wontolla's RAW purge, http://chdk.setepontos.com/index.php/topic,557.msg5849.html#msg5849

+ applied m2tk's gui_fselect.c-patch, http://chdk.setepontos.com/index.php/topic,1059.msg9530.html#msg9530

+ applied CHDKLover's and msl's Symbol Mod, http://chdk.setepontos.com/index.php/topic,1133.msg10043.html#msg10043

+ applied Velo's Lua Scripting Integration (and added all new uBASIC-commands), http://chdk.setepontos.com/index.php/topic,1194.msg11413.html#msg11413

+ added scripting command get_exp_count (value incremented by 1 on every exposure, returns numbers as in the files saved by the camera (1-9999, should be taken into account when scripting, maybe something along these lines:
T=get_exp_count+N
if T>9999 then T=T-9999
press "shoot_half"
press "shoot_full"
do
until get_exp_count=T
release "shoot_full"
), ubasic syntax: [x=]get_exp_count ([]=optional))

+ added scripting command is_pressed. Usage is similar to is_key, but checks, if a button is pressed, when the command is called. This can be really useful in autostart-scripts.

+ added script command autostarted, returns 1/true if script was autostarted, 0/false if not

  • modified get_script_autostart and set_script_autostart to read & write conf.script_startup (values: 0=off, 1=on, 2=once)
  • new script autostart option(s): Off, On, Once
  • user menu modified
    • now with 14 entries (that's what fits on my screen with the default font)
    • main menu -entry removed
    • invoked also with shoot_half + menu
    • can be used as root menu, main menu becomes accessible with shoot_half + menu
  • faster menu navigation
    • in alt menus and file browser, shoot_half can be used with up/down to move 4 items up/down at a time
    • int-variable changing behaviour is modified: zoom rocker works also a bit like shift: when "held down" while pressing left/right, zoom_out changes values by 10, zoom_in by 100, shoot_half by 1000.
    • int-variables can be set to 0 with shoot_half+set
    • when changing enum-type-variables (e.g. Tv bracketing value), zoom_in(+left/right) changes value by 6 (2EV), zoom_out and(/or) shoot_half by 3 (1EV).

+ added numbers 2, 4 and 5 from cyril42e's modification list, http://chdk.setepontos.com/index.php/topic,1687.msg15345.html#msg15345

+ added scriptless Ricoh & home hacked remote support from SDM 1.70

+ added fbonomi's shot histogram, commands shot_histo_enable 0|1, get_histo_range from to, http://chdk.setepontos.com/index.php/topic,1145.msg13008.html#msg13008

+ added hiker_jon's edge overlay code for testing, may or may not work, http://chdk.setepontos.com/index.php/topic,1192.msg11317.html#msg11317

+ and last and perhaps least, added the missing get_raw_nr to tokenizer.c

I may have forgotten something. Hopefully nothing major, though.

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