unsigned long getCode(void) { int keynum = getKeynum(); if (keynum < 42) return keyMap[keynum]; else return 0xFFFFFFFF; }
void RAW_learn(struct RAWset_* RAWset) { unsigned char cmd; unsigned char mode; lcd_fill(0); draw_block(0,10,128,2,3,DRAW_PUT); mode = 1; while(KEY_A) {}; while(!KEY_A) { draw_block(0,0,100,9,3,DRAW_ERASE); set_font(BOLDFONT); if (mode) draw_string(0, 0, "Tasten anlernen", 3, DRAW_PUT); else draw_string(0, 0, "Tasten testen", 3, DRAW_PUT); set_font(SMALLFONT); draw_string(0, 20, "Gewuenschte Taste auf der\nBetty druecken.\nDie Tasten A, B, C und D\nkoennen nicht angelernt\nwerden", 3, DRAW_PUT); draw_string(0, 90, "A - Exit\nB - Anlernen/Testen\n", 3, DRAW_PUT); waitKeyUpDown(); draw_block(0,20,128,45,3,DRAW_ERASE); draw_block(0,90,128,45,3,DRAW_ERASE); if(KEY_A || KEY_B || KEY_C || KEY_D) { if(KEY_B) mode = 1-mode; } else { cmd=getKeynum() -4; if(mode) { getIR(&(RAWset->RAWcmd[cmd])); } else { RAW_Send((unsigned long)&(RAWset->RAWcmd[cmd])); while(ANYKEY) RAW_Repeat(); RAW_Stop(); } } } }
void RAW_keyerase(FORM* form, CONTROL* control) { unsigned char x; x=msgbox(50,BC_nobuttons,"\nZu loeschende Taste\ndruecken.\n"); waitKeyDown(); x=getKeynum(); if(x>3) { /* unsigned short y; unsigned char* z; z=&((struct RAWset_*)(form->tag))->RAWcmd[x-4]; for(y=0;y<sizeof(struct RAWcmd_);y++) { z[y]=x; }*/ clear_cmd(&(((struct RAWset_*)(form->tag))->RAWcmd[x-4])); } form_draw(form); }