CHDK_DE Vorschauversion  Trunk Rev. 5229
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
kbd.c-Dateireferenz
#include "stdlib.h"
#include "lolevel.h"
#include "platform.h"
#include "core.h"
#include "conf.h"
#include "keyboard.h"
#include "touchscreen.h"
#include "gui.h"
#include "gui_draw.h"
#include "gui_osd.h"
+ Include-Abhängigkeitsdiagramm für kbd.c:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  KeyMap
 

Makrodefinitionen

#define KEYS_MASK0   (0x00000000)
 
#define KEYS_MASK1   (0x2F000000)
 
#define KEYS_MASK2   (0x00000000)
 
#define SD_READONLY_FLAG   0x00008000
 
#define SD_READONLY_IDX   0
 
#define USB_MASK   0x40000000
 
#define USB_IDX   2
 
#define TS_KEY_TOGGLE_RAW   200
 
#define TS_KEY_TOGGLE_ZEBRA   201
 
#define TS_KEY_TOGGLE_HISTO   202
 
#define TS_KEY_TOGGLE_OSD   203
 
#define TS_KEY_TOGGLE_OVRD   204
 
#define TS_KEY_TOGGLE_EDGE   205
 
#define TS_KEY_TOGGLE_ND   206
 
#define TS_KEY_TOGGLE_EV   207
 
#define TS_KEY_TOGGLE_TV_DN   208
 
#define TS_KEY_TOGGLE_TV_UP   209
 
#define TS_KEY_TOGGLE_AV_DN   210
 
#define TS_KEY_TOGGLE_AV_UP   211
 
#define TS_KEY_TOGGLE_SV_DN   212
 
#define TS_KEY_TOGGLE_SV_UP   213
 
#define TS_KEY_PLAYBACK   214
 
#define TS_KEY_POWER   215
 
#define TS_UP_DN_BUTTON   300
 
#define TS_PG_DN   301
 
#define TS_PG_UP   302
 
#define TS_XL   2
 
#define TS_W   55
 
#define TS_YT   1
 
#define TS_H   44
 
#define TS_XR   (480-TS_W-2)
 
#define LB(x, n)   TS_XL+x*TS_W, TS_YT+n*TS_H, TS_XL+(x+1)*TS_W, TS_YT+n*TS_H+TS_H
 
#define RB(x, n)   TS_XR-x*TS_W, TS_YT+n*TS_H, TS_XR+TS_W-x*TS_W, TS_YT+n*TS_H+TS_H
 
#define RBW(x, n)   TS_XR-TS_W-x*TS_W, TS_YT+n*TS_H, TS_XR+TS_W-x*TS_W, TS_YT+n*TS_H+TS_H
 
#define MODE_VID   0x400
 

Funktionen

void _GetKbdState (long *)
 
int get_usb_bit ()
 
const char * gui_on_off_enum (int change, int arg)
 
const char * gui_histo_show_enum (int change, int arg)
 
const char * gui_nd_filter_state_enum (int change, int arg)
 
const char * gui_override_disable_enum (int change, int arg)
 
void set_tv_video (int x)
 
void set_av_video (int x)
 
void set_sv_video (int x)
 
void set_ev_video_avail (int x)
 
const char * ts_video_nd (int change, int arg)
 
const char * ts_video_ev (int change, int arg)
 
const char * ts_video_tv_dn (int change, int arg)
 
const char * ts_video_tv_up (int change, int arg)
 
const char * ts_video_av_dn (int change, int arg)
 
const char * ts_video_av_up (int change, int arg)
 
const char * ts_video_sv_dn (int change, int arg)
 
const char * ts_video_sv_up (int change, int arg)
 
const char * ts_pg_dn (int change, int arg)
 
const char * ts_pg_up (int change, int arg)
 
static int is_button_displayed (int b, int guiMode, int camMode)
 
static int is_button_active (int b, int guiMode, int camMode)
 
int show_virtual_buttons ()
 
static int draw_test_pixel (coord x, coord y, color c)
 
int chdk_process_touch ()
 
void virtual_buttons ()
 
int ts_process_touch ()
 
long __attribute__ ((naked))
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 
void my_kbd_read_keys ()
 
void kbd_key_press (long key)
 
void kbd_key_release (long key)
 
void kbd_key_release_all ()
 
long kbd_is_key_pressed (long key)
 
long kbd_is_key_clicked (long key)
 
long kbd_get_pressed_key ()
 
long kbd_get_clicked_key ()
 

Variablen

static long kbd_new_state [4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
 
static long kbd_prev_state [4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
 
static long kbd_mod_state [4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
 
static long touch_panel_state
 
int video_ael
 
int tv_video
 
int av_video
 
int sv_video
 
int tv_min_video
 
short cds_gain_value
 
static char ev_tv [15]
 
static char ev_av [15]
 
static char ev_sv [15]
 
static char debug_pg [15]
 
static KeyMap keymap []
 
int redraw_buttons = 1
 
int print_key_index = -1
 

Makro-Dokumentation

#define KEYS_MASK0   (0x00000000)

Definiert in Zeile 35 der Datei kbd.c.

#define KEYS_MASK1   (0x2F000000)

Definiert in Zeile 36 der Datei kbd.c.

#define KEYS_MASK2   (0x00000000)

Definiert in Zeile 37 der Datei kbd.c.

#define LB (   x,
  n 
)    TS_XL+x*TS_W, TS_YT+n*TS_H, TS_XL+(x+1)*TS_W, TS_YT+n*TS_H+TS_H

Definiert in Zeile 78 der Datei kbd.c.

#define MODE_VID   0x400

Definiert in Zeile 87 der Datei kbd.c.

#define RB (   x,
  n 
)    TS_XR-x*TS_W, TS_YT+n*TS_H, TS_XR+TS_W-x*TS_W, TS_YT+n*TS_H+TS_H

Definiert in Zeile 79 der Datei kbd.c.

#define RBW (   x,
  n 
)    TS_XR-TS_W-x*TS_W, TS_YT+n*TS_H, TS_XR+TS_W-x*TS_W, TS_YT+n*TS_H+TS_H

Definiert in Zeile 80 der Datei kbd.c.

#define SD_READONLY_FLAG   0x00008000

Definiert in Zeile 39 der Datei kbd.c.

#define SD_READONLY_IDX   0

Definiert in Zeile 40 der Datei kbd.c.

#define TS_H   44

Definiert in Zeile 76 der Datei kbd.c.

#define TS_KEY_PLAYBACK   214

Definiert in Zeile 66 der Datei kbd.c.

#define TS_KEY_POWER   215

Definiert in Zeile 67 der Datei kbd.c.

#define TS_KEY_TOGGLE_AV_DN   210

Definiert in Zeile 62 der Datei kbd.c.

#define TS_KEY_TOGGLE_AV_UP   211

Definiert in Zeile 63 der Datei kbd.c.

#define TS_KEY_TOGGLE_EDGE   205

Definiert in Zeile 57 der Datei kbd.c.

#define TS_KEY_TOGGLE_EV   207

Definiert in Zeile 59 der Datei kbd.c.

#define TS_KEY_TOGGLE_HISTO   202

Definiert in Zeile 54 der Datei kbd.c.

#define TS_KEY_TOGGLE_ND   206

Definiert in Zeile 58 der Datei kbd.c.

#define TS_KEY_TOGGLE_OSD   203

Definiert in Zeile 55 der Datei kbd.c.

#define TS_KEY_TOGGLE_OVRD   204

Definiert in Zeile 56 der Datei kbd.c.

#define TS_KEY_TOGGLE_RAW   200

Definiert in Zeile 52 der Datei kbd.c.

#define TS_KEY_TOGGLE_SV_DN   212

Definiert in Zeile 64 der Datei kbd.c.

#define TS_KEY_TOGGLE_SV_UP   213

Definiert in Zeile 65 der Datei kbd.c.

#define TS_KEY_TOGGLE_TV_DN   208

Definiert in Zeile 60 der Datei kbd.c.

#define TS_KEY_TOGGLE_TV_UP   209

Definiert in Zeile 61 der Datei kbd.c.

#define TS_KEY_TOGGLE_ZEBRA   201

Definiert in Zeile 53 der Datei kbd.c.

#define TS_PG_DN   301

Definiert in Zeile 70 der Datei kbd.c.

#define TS_PG_UP   302

Definiert in Zeile 71 der Datei kbd.c.

#define TS_UP_DN_BUTTON   300

Definiert in Zeile 69 der Datei kbd.c.

#define TS_W   55

Definiert in Zeile 74 der Datei kbd.c.

#define TS_XL   2

Definiert in Zeile 73 der Datei kbd.c.

#define TS_XR   (480-TS_W-2)

Definiert in Zeile 77 der Datei kbd.c.

#define TS_YT   1

Definiert in Zeile 75 der Datei kbd.c.

#define USB_IDX   2

Definiert in Zeile 42 der Datei kbd.c.

#define USB_MASK   0x40000000

Definiert in Zeile 41 der Datei kbd.c.

Dokumentation der Funktionen

long __attribute__ ( (naked)  )

Definiert in Zeile 531 der Datei kbd.c.

535 {
536  while (physw_run) {
537  _SleepTask(physw_sleep_delay);
538 
539  if (wrap_kbd_p1_f() == 1) { // autorepeat ?
540  _kbd_p2_f();
541  }
542  }
543 }
void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

Definiert in Zeile 546 der Datei kbd.c.

548 {
549  mykbd_task_proceed();
550 
551  _ExitTask();
552 }
void _GetKbdState ( long *  )
int chdk_process_touch ( )

Definiert in Zeile 377 der Datei kbd.c.

378 {
379  //ts_check_cnt++;
380 
381  // If in canon menu, let the firmware have all the touch events.
382  if (!show_virtual_buttons()) return 0;
383 
384  int guiMode = gui_get_mode();
386 
387  // Touch co-ordinate
388  unsigned short tx, ty;
389  tx = ((touch_screen_x & 0x7FFF) >> 2) ^ 0x3FF; //ixus240.101a @ loc_ff069d58
390  ty = ((touch_screen_y & 0x7FFF) >> 2) ^ 0x3FF;
391 
392 
393  // map touch coordinates to screen (try&error values)
394  tx = (tx - 190) * 0.74;
395  ty = (ty - 330) * 0.65;
396 
397  // Search for CHDK on screen buttons matching co-ordinate
398  int i;
399  for (i=0; keymap[i].hackkey; i++)
400  {
401  if ((tx >= keymap[i].x1) && (tx < keymap[i].x2) && (ty >= keymap[i].y1) && (ty < keymap[i].y2) && is_button_active(i,guiMode,camMode))
402  {
404  }
405  }
406  // If in alt mode (or about to enter alt mode) set the touch koords to 0x0 to block it from firmware
407  if((guiMode != 0) || (((touch_panel_state & 1) == 0) && ((kbd_mod_state[3] & 1) != 0)))
408  {
409  touch_screen_x=touch_screen_y=0 ^ 0x3FF;
410  }
411  // let the firmware handle a touch press
412  // otherwise it wont set touch_screen_active to 1
413  return 0;
414 
415  // If in alt mode (or about to enter alt mode) block event from firmware
416 // return (guiMode != 0) || (((touch_panel_state & 1) == 0) && ((kbd_mod_state[3] & 1) != 0));
417 }
static int draw_test_pixel ( coord  x,
coord  y,
color  c 
)
static

Definiert in Zeile 365 der Datei kbd.c.

366 {
367  extern char* bitmap_buffer[];
368  extern int active_bitmap_buffer;
369  return (bitmap_buffer[active_bitmap_buffer][y * camera_screen.buffer_width + ASPECT_XCORRECTION(x)] == c);
370 }
int get_usb_bit ( )

Definiert in Zeile 44 der Datei kbd.c.

45 {
46  long usb_physw[3];
47  usb_physw[USB_IDX] = 0;
48  _kbd_read_keys_r2(usb_physw);
49  return(( usb_physw[USB_IDX] & USB_MASK)==USB_MASK) ;
50 }
const char* gui_histo_show_enum ( int  change,
int  arg 
)
const char* gui_nd_filter_state_enum ( int  change,
int  arg 
)
const char* gui_on_off_enum ( int  change,
int  arg 
)
const char* gui_override_disable_enum ( int  change,
int  arg 
)
static int is_button_active ( int  b,
int  guiMode,
int  camMode 
)
static

Definiert in Zeile 347 der Datei kbd.c.

348 {
349  return (is_button_displayed(b, guiMode, camMode) && keymap[b].canonkey);
350 }
static int is_button_displayed ( int  b,
int  guiMode,
int  camMode 
)
static

Definiert in Zeile 336 der Datei kbd.c.

337 {
338  return (
339  (keymap[b].grp == 3) &&
340  (guiMode >= keymap[b].min_gui_mode) &&
341  (guiMode <= keymap[b].max_gui_mode) &&
342  (camMode & keymap[b].cam_mode_mask) &&
343  ((keymap[b].conf_disable == 0) || (*keymap[b].conf_disable == 0))
344  );
345 }
long kbd_get_clicked_key ( )

Definiert in Zeile 678 der Datei kbd.c.

679 {
680  int i;
681  for (i=0;keymap[i].hackkey;i++)
682  {
683  if (keymap[i].canonkey &&
684  ((kbd_prev_state[keymap[i].grp] & keymap[i].canonkey) != 0) &&
685  ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0))
686  {
687  return keymap[i].hackkey;
688  }
689  }
690  return 0;
691 }
long kbd_get_pressed_key ( )

Definiert in Zeile 665 der Datei kbd.c.

666 {
667  int i;
668  for (i=0;keymap[i].hackkey;i++)
669  {
670  if (keymap[i].canonkey && ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0))
671  {
672  return keymap[i].hackkey;
673  }
674  }
675  return 0;
676 }
long kbd_is_key_clicked ( long  key)

Definiert in Zeile 651 der Datei kbd.c.

652 {
653  int i;
654  for (i=0;keymap[i].hackkey;i++)
655  {
656  if ((keymap[i].hackkey == key) && keymap[i].canonkey)
657  {
658  return ((kbd_prev_state[keymap[i].grp] & keymap[i].canonkey) != 0) &&
659  ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0);
660  }
661  }
662  return 0;
663 }
long kbd_is_key_pressed ( long  key)

Definiert in Zeile 638 der Datei kbd.c.

639 {
640  int i;
641  for (i=0;keymap[i].hackkey;i++)
642  {
643  if ((keymap[i].hackkey == key) && keymap[i].canonkey)
644  {
645  return ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0) ? 1:0;
646  }
647  }
648  return 0;
649 }
void kbd_key_press ( long  key)

Definiert in Zeile 606 der Datei kbd.c.

607 {
608  int i;
609 
610  for (i=0;keymap[i].hackkey;i++) {
611  if (keymap[i].hackkey == key)
612  {
613  kbd_mod_state[keymap[i].grp] &= ~keymap[i].canonkey;
614  return;
615  }
616  }
617 }
void kbd_key_release ( long  key)

Definiert in Zeile 619 der Datei kbd.c.

620 {
621  int i;
622  for (i=0;keymap[i].hackkey;i++) {
623  if (keymap[i].hackkey == key) {
625  return;
626  }
627  }
628 }
void kbd_key_release_all ( )

Definiert in Zeile 630 der Datei kbd.c.

631 {
635  kbd_mod_state[3] = 0xFFFFFFFF;
636 }
void my_kbd_read_keys ( )

Definiert in Zeile 566 der Datei kbd.c.

567 {
572 
575  if (touch_screen_active == 1) // Touch screen activated?
576  {
577  kbd_new_state[3] = touch_panel_state; // Yes, use virtual button state
578  }
579  else
580  {
581  kbd_new_state[3] = touch_panel_state = 0xFFFFFFFF; // No, clear out virtual button state
582  }
583 
584  if (kbd_process() == 0) {
585  // leave it alone...
586  // we read keyboard state with _kbd_read_keys()
587  physw_status[0] = kbd_new_state[0];
588  physw_status[1] = kbd_new_state[1];
589  physw_status[2] = kbd_new_state[2];
590  } else {
591  // override keys
595  }
597 
598  if (conf.remote_enable) {
600  }
601 }
void set_av_video ( int  x)

Definiert in Zeile 110 der Datei kbd.c.

111 {
112  if (video_ael)
113  {
114  if (x < 200) x = 200;
115  if (x > 576) x = 576;
116  if (av_video != x)
117  {
118  av_video = x;
120  extern int _MoveIrisWithAv(short*);
121  _MoveIrisWithAv((short*)&av_video);
123  }
124  }
125 }
void set_ev_video_avail ( int  x)

Definiert in Zeile 143 der Datei kbd.c.

144 {
145  if (video_ael == x) return;
146  video_ael = x;
147  if (x)
148  {
149  av_video = tv_video = 0;
150 
152 
156 
158  else tv_min_video=441; //480; //1/30
159  }
160  else
162 }
void set_sv_video ( int  x)

Definiert in Zeile 127 der Datei kbd.c.

128 {
129  if (video_ael)
130  {
131  if (x < 0) x = 0;
132  if (x > 768) x = 768;
133  sv_video = x;
134 
135  extern int _SetCDSGain(short*);
136  _SetCDSGain((short*)&sv_video);
137 
138  extern int _GetCdsGainValue();
139  sv_video = _GetCdsGainValue();
140  }
141 }
void set_tv_video ( int  x)

Definiert in Zeile 96 der Datei kbd.c.

97 {
98  if (video_ael)
99  {
100  if (x < tv_min_video) x = tv_min_video;
101  if (x > 1152) x = 1152;
102  if (tv_video != x)
103  {
104  tv_video = x;
106  }
107  }
108 }
int show_virtual_buttons ( )

Definiert in Zeile 352 der Datei kbd.c.

353 {
354  // The canon_playback_menu_active check prevents the CHDK button from being shown in rec mode
355  // The variable does not appear to be equivalent to the variable used in ixus500_elph310hs
356  /*
357  extern char canon_play_menu_active;
358  return (canon_menu_active==(int)&canon_menu_active-4) && (canon_shoot_menu_active==0) && (canon_play_menu_active == 0);
359  */
360  return (canon_menu_active==(int)&canon_menu_active-4) && (canon_shoot_menu_active==0);
361 }
const char* ts_pg_dn ( int  change,
int  arg 
)

Definiert in Zeile 253 der Datei kbd.c.

254 {
255  if (change)
256  {
257  if ((*(int*)arg) > 0) (*(int*)arg)--;
258  }
259  sprintf(debug_pg,"%4d",(*(int*)arg));
260  return debug_pg;
261 }
const char* ts_pg_up ( int  change,
int  arg 
)

Definiert in Zeile 263 der Datei kbd.c.

264 {
265  if (change)
266  {
267  (*(int*)arg)++;
268  }
269  sprintf(debug_pg,"%4d",(*(int*)arg));
270  return debug_pg;
271 }
int ts_process_touch ( )

Definiert in Zeile 500 der Datei kbd.c.

501 {
502  int rv = 0, i;
503 
504  if (touch_panel_state != 0xFFFFFFFF)
505  {
506  int guiMode = gui_get_mode();
508 
509  //ts_proc_cnt++;
510 
511  for (i=0; keymap[i].hackkey; i++)
512  {
513  if (is_button_active(i, guiMode, camMode))
514  {
515  if (kbd_is_key_clicked(keymap[i].hackkey))
516  {
517  if (keymap[i].conf_val && keymap[i].chg_val)
518  {
519  keymap[i].chg_val(1,(int)keymap[i].conf_val);
520  rv = keymap[i].redraw & 1;
521  }
522  if (keymap[i].redraw & 2) redraw_buttons = 1;
523  }
524  }
525  }
526  }
527 
528  return rv;
529 }
const char* ts_video_av_dn ( int  change,
int  arg 
)

Definiert in Zeile 209 der Datei kbd.c.

210 {
211  if (change)
212  {
213  set_av_video(av_video - 32);
214  }
215  sprintf(ev_av,"%4d",av_video);
216  return ev_av;
217 }
const char* ts_video_av_up ( int  change,
int  arg 
)

Definiert in Zeile 219 der Datei kbd.c.

220 {
221  if (change)
222  {
223  set_av_video(av_video + 32);
224  }
225  sprintf(ev_av,"%4d",av_video);
226  return ev_av;
227 }
const char* ts_video_ev ( int  change,
int  arg 
)

Definiert in Zeile 174 der Datei kbd.c.

175 {
176  if (change)
177  {
179  // force ND off unless AEL enabled
181  }
182  return gui_on_off_enum(0, arg);
183 }
const char* ts_video_nd ( int  change,
int  arg 
)

Definiert in Zeile 164 der Datei kbd.c.

165 {
166  const char *rv = gui_nd_filter_state_enum(change, arg);
167  if (change && video_ael)
168  {
169  shooting_set_nd_filter_state(*(int*)arg,1);
170  }
171  return rv;
172 }
const char* ts_video_sv_dn ( int  change,
int  arg 
)

Definiert in Zeile 231 der Datei kbd.c.

232 {
233  if (change)
234  {
235  set_sv_video(sv_video - 32);
236  }
237  sprintf(ev_sv,"%4d",sv_video);
238  return ev_sv;
239 }
const char* ts_video_sv_up ( int  change,
int  arg 
)

Definiert in Zeile 241 der Datei kbd.c.

242 {
243  if (change)
244  {
245  set_sv_video(sv_video + 32);
246  }
247  sprintf(ev_sv,"%4d",sv_video);
248  return ev_sv;
249 }
const char* ts_video_tv_dn ( int  change,
int  arg 
)

Definiert in Zeile 187 der Datei kbd.c.

188 {
189  if (change)
190  {
191  set_tv_video(tv_video - 32);
192  }
193  sprintf(ev_tv,"%4d",tv_video);
194  return ev_tv;
195 }
const char* ts_video_tv_up ( int  change,
int  arg 
)

Definiert in Zeile 197 der Datei kbd.c.

198 {
199  if (change)
200  {
201  set_tv_video(tv_video + 32);
202  }
203  sprintf(ev_tv,"%4d",tv_video);
204  return ev_tv;
205 }
void virtual_buttons ( )

Definiert in Zeile 422 der Datei kbd.c.

423 {
424  int guiMode = gui_get_mode();
425  char buf[30];
426 
427  // If shooting or in any Canon menus then don't display any CHDK buttons
428  if (((guiMode == 0) && camera_info.state.is_shutter_half_press) || !show_virtual_buttons()) return;
429 
430 // if(print_key_index == -1)
431 // {
432 // // need to find index of print key to check boarders in next step
433 // int i;
434 // for (i=0; keymap[i].hackkey != KEY_PRINT; i++);
435 // print_key_index = i;
436 // }
437 
438  // Check if border of CHDK button is corrupted, force redraw if so
439 // if(print_key_index != -1 && !draw_test_pixel(keymap[print_key_index].x1+1, keymap[print_key_index].y1+1, (guiMode)?COLOR_GREEN:COLOR_WHITE)) redraw_buttons = 1;
440  if (!draw_test_pixel(0, 80, (guiMode)?COLOR_GREEN:COLOR_WHITE)) redraw_buttons = 1;
441 
442  if (redraw_buttons)
443  {
444  //ts_redraw_cnt++;
445 
446  int i, x1, y1, x2, y2, ofst;
448 
449  //color c1 = MAKE_COLOR((camMode&MODE_VID)?COLOR_TRANSPARENT:COLOR_BLACK, COLOR_WHITE);
450  //color c2 = MAKE_COLOR((camMode&MODE_VID)?COLOR_TRANSPARENT:COLOR_RED, (camMode&MODE_VID)?COLOR_RED:COLOR_WHITE);
451  twoColors c1 = MAKE_COLOR((camMode&MODE_VID)?COLOR_TRANSPARENT:COLOR_BLACK, COLOR_WHITE);
453 
454  for (i=0; keymap[i].hackkey; i++)
455  {
456  if (is_button_displayed(i, guiMode, camMode) && keymap[i].nm)
457  {
458  x1 = keymap[i].x1;
459  x2 = keymap[i].x2;
460  y1 = keymap[i].y1;
461  y2 = keymap[i].y2;
462 
463  twoColors cl = c1;
464  if (guiMode && (keymap[i].hackkey == KEY_PRINT)) cl = c2;
465  if (keymap[i].conf_val && *keymap[i].conf_val) cl = c2;
466 
468 
469  ofst = 16;
470  if (keymap[i].hackkey == TS_UP_DN_BUTTON)
471  {
472  // unclear what was supposed to be displayed here
473  // use hard coded string rather than uninitialized buffer
474 // draw_string(x1+4, y1+ofst, buf, cl);
475  draw_string(x1+4, y1+ofst, "UD!", cl);
476  }
477  else
478  {
479  if (keymap[i].conf_val && keymap[i].chg_val)
480  {
481  ofst = 7;
482  strcpy(buf,(char*)keymap[i].chg_val(0,(int)keymap[i].conf_val));
483  buf[6] = 0;
484  draw_string(x1+4, y1+25, buf, cl);
485  }
486  else if (keymap[i].nm2)
487  {
488  ofst = 7;
489  draw_string(x1+4, y1+25, keymap[i].nm2, cl);
490  }
491  draw_string(x1+4, y1+ofst, keymap[i].nm, cl);
492  }
493  }
494  }
495  }
496 
497  redraw_buttons = 0;
498 }

Variablen-Dokumentation

int av_video

Definiert in Zeile 91 der Datei kbd.c.

short cds_gain_value
char debug_pg[15]
static

Definiert in Zeile 251 der Datei kbd.c.

char ev_av[15]
static

Definiert in Zeile 207 der Datei kbd.c.

char ev_sv[15]
static

Definiert in Zeile 229 der Datei kbd.c.

char ev_tv[15]
static

Definiert in Zeile 185 der Datei kbd.c.

long kbd_mod_state[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
static

Definiert in Zeile 28 der Datei kbd.c.

long kbd_new_state[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
static

Definiert in Zeile 26 der Datei kbd.c.

long kbd_prev_state[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }
static

Definiert in Zeile 27 der Datei kbd.c.

KeyMap keymap[]
static

Definiert in Zeile 273 der Datei kbd.c.

int print_key_index = -1

Definiert in Zeile 420 der Datei kbd.c.

int redraw_buttons = 1

Definiert in Zeile 419 der Datei kbd.c.

int sv_video

Definiert in Zeile 92 der Datei kbd.c.

long touch_panel_state
static

Definiert in Zeile 29 der Datei kbd.c.

int tv_min_video

Definiert in Zeile 93 der Datei kbd.c.

int tv_video

Definiert in Zeile 90 der Datei kbd.c.

int video_ael

Definiert in Zeile 89 der Datei kbd.c.