root/include/gui.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef GUI_H
   2 #define GUI_H
   3 
   4 // CHDK Gui interface
   5 
   6 // Note: used in modules and platform independent code. 
   7 // Do not add platform dependent stuff in here (#ifdef/#endif compile options or camera dependent values)
   8 
   9 // Module ID's for specific modules that we need to be able to detect
  10 // use GUI_MODE_MODULE for generic module modes (e.g.games)
  11 enum Gui_Mode_ {
  12     GUI_MODE_STARTUP = -1,
  13     GUI_MODE_NONE = 0,
  14     GUI_MODE_ALT,
  15     GUI_MODE_MENU,
  16     GUI_MODE_SCRIPT,
  17     GUI_MODE_MBOX,
  18     GUI_MODE_OSD,       // OSD editor
  19     GUI_MODE_PALETTE,
  20     GUI_MODE_FSELECT,
  21     GUI_MODE_MPOPUP,
  22     GUI_MODE_MODULE,    // generic module
  23 };
  24 
  25 typedef unsigned int gui_mode_t;
  26 
  27 // States for flag to control entering / leaving ALT mode
  28 // Set in KBD task code and activated in GUI task - reduces conflicts
  29 // arising from tasks performin actions that should be done by the
  30 // other task (e.g. screen erase)
  31 enum ALT_Mode_State {
  32     ALT_MODE_NORMAL = 0,    // don't change ALT mode
  33     ALT_MODE_ENTER,         // enter ALT mode
  34     ALT_MODE_ENTER_SCRIPT,  // enter SCRIPT mode
  35     ALT_MODE_LEAVE,         // leave ALT mode
  36 };
  37 
  38 extern void gui_set_alt_mode_state(int);    // Called from KBD task to tell GUI task what state to set
  39 extern void gui_activate_alt_mode();        // Called from GUI task to set ALT mode
  40 
  41 #define GUI_MODE_MAGICNUM       0xd36c1559
  42 
  43 // Specific behaviour of gui mode
  44 #define GUI_MODE_FLAG_NODRAWRESTORE       1
  45 #define GUI_MODE_FLAG_NORESTORE_ON_SWITCH 2
  46 
  47 // Structure to store gui redraw and kbd process handlers for each mode
  48 typedef struct
  49 {
  50     // Gui_Mode enum value
  51     int mode;
  52 
  53         // Called to redraw screen. Argument is non-zero to force redraw
  54     void (*redraw)(int);
  55 
  56         // Main button handler for mode
  57     // Return:
  58     //          0 = normal button handling
  59     //          1 = force buttons pressed to be blocked from Camera firmware
  60     int (*kbd_process)(void);
  61 
  62         // Menu button handler for mode
  63     void (*kbd_process_menu_btn)(void);
  64 
  65     int (*touch_handler)(int x, int y);
  66 
  67         int flags;
  68 } gui_handler;
  69 
  70 extern int script_run_on_alt_flag ;
  71 
  72 extern gui_handler altGuiHandler;
  73 
  74 extern int gui_kbd_process();
  75 extern void gui_default_kbd_process_menu_btn();
  76 extern int gui_touch_process(int x, int y);
  77 
  78 extern void gui_redraw();
  79 extern void gui_set_need_restore();
  80 extern void gui_cancel_need_restore();
  81 
  82 extern gui_handler* gui_set_mode(gui_handler *mode);
  83 extern void gui_reset_alt_helper();
  84 
  85 extern void gui_enum_value_change(int *value, int change, unsigned num_items);
  86 extern const char* gui_subj_dist_override_value_enum(int change, int arg);
  87 extern const char* gui_subj_dist_override_koef_enum(int change, int arg);
  88 extern const char* gui_tv_override_value_enum(int change, int arg);
  89 extern const char* gui_hhmss_enum(int change, int arg);
  90 extern const char* gui_flash_power_modes_enum(int change, int arg);
  91 extern const char* gui_flash_exp_comp_modes_enum(int change, int arg);
  92 
  93 //------------------------------------------------------------------- 
  94 
  95 #endif

/* [<][>][^][v][top][bottom][index][help] */