struct ir_code_node *defineNode(struct ir_ncode *code, const char *val) { struct ir_code_node *node; node=s_malloc(sizeof(*node)); if(node==NULL) return NULL; node->code=s_strtocode(val); node->next=NULL; # ifdef LONG_IR_CODE LOGPRINTF(3," 0x%016llX", node->code); # else LOGPRINTF(3," 0x%016lX", node->code); # endif if(code->current==NULL) { code->next=node; code->current=node; } else { code->current->next=node; code->current=node; } return node; }
struct ir_ncode *defineCode(char *key, char *val, struct ir_ncode *code) { memset(code, 0, sizeof(*code)); code->name = s_strdup(key); code->code = s_strtocode(val); LOGPRINTF(3, " %-20s 0x%016llX", code->name, code->code); return (code); }
struct ir_ncode *defineCode(char *key, char *val, struct ir_ncode *code) { code->name=s_strdup(key); code->code=s_strtocode(val); # ifdef LONG_IR_CODE LOGPRINTF(3," %-20s 0x%016llX",code->name, code->code); # else LOGPRINTF(3," %-20s 0x%016lX",code->name, code->code); # endif return(code); }
int defineRemote(char * key, char * val, char *val2, struct ir_remote *rem) { if ((strcasecmp("name",key))==0){ if(rem->name!=NULL) free(rem->name); rem->name=s_strdup(val); LOGPRINTF(1,"parsing %s remote",val); return(1); } #ifdef DYNCODES if ((strcasecmp("dyncodes_name",key))==0){ if(rem->dyncodes_name!=NULL) { free(rem->dyncodes_name); } rem->dyncodes_name=s_strdup(val); return(1); } #endif else if ((strcasecmp("bits",key))==0){ rem->bits=s_strtoi(val); return(1); } else if (strcasecmp("flags",key)==0){ rem->flags|=parseFlags(val); return(1); } else if (strcasecmp("eps",key)==0){ rem->eps=s_strtoi(val); return(1); } else if (strcasecmp("aeps",key)==0){ rem->aeps=s_strtoi(val); return(1); } else if (strcasecmp("plead",key)==0){ rem->plead=s_strtolirc_t(val); return(1); } else if (strcasecmp("ptrail",key)==0){ rem->ptrail=s_strtolirc_t(val); return(1); } else if (strcasecmp("pre_data_bits",key)==0){ rem->pre_data_bits=s_strtoi(val); return(1); } else if (strcasecmp("pre_data",key)==0){ rem->pre_data=s_strtocode(val); return(1); } else if (strcasecmp("post_data_bits",key)==0){ rem->post_data_bits=s_strtoi(val); return(1); } else if (strcasecmp("post_data",key)==0){ rem->post_data=s_strtocode(val); return(1); } else if (strcasecmp("gap",key)==0){ if(val2 != NULL) { rem->gap2=s_strtoul(val2); } rem->gap=s_strtoul(val); return(val2 != NULL ? 2:1); } else if (strcasecmp("repeat_gap",key)==0){ rem->repeat_gap=s_strtoul(val); return(1); } /* obsolete: use toggle_bit_mask instead */ else if (strcasecmp("toggle_bit",key)==0){ rem->toggle_bit = s_strtoi(val); return 1; } else if (strcasecmp("toggle_bit_mask",key)==0){ rem->toggle_bit_mask = s_strtocode(val); return 1; } else if (strcasecmp("toggle_mask",key)==0){ rem->toggle_mask=s_strtocode(val); return(1); } else if (strcasecmp("rc6_mask",key)==0){ rem->rc6_mask=s_strtocode(val); return(1); } else if (strcasecmp("ignore_mask",key)==0){ rem->ignore_mask=s_strtocode(val); return(1); } /* obsolete name */ else if (strcasecmp("repeat_bit",key)==0){ rem->toggle_bit=s_strtoi(val); return(1); } else if (strcasecmp("suppress_repeat",key)==0){ rem->suppress_repeat=s_strtoi(val); return(1); } else if (strcasecmp("min_repeat",key)==0){ rem->min_repeat=s_strtoi(val); return(1); } else if (strcasecmp("min_code_repeat",key)==0){ rem->min_code_repeat=s_strtoi(val); return(1); } else if (strcasecmp("frequency",key)==0){ rem->freq=s_strtoui(val); return(1); } else if (strcasecmp("duty_cycle",key)==0){ rem->duty_cycle=s_strtoui(val); return(1); } else if (strcasecmp("baud",key)==0){ rem->baud=s_strtoui(val); return(1); } else if (strcasecmp("serial_mode",key)==0){ if(val[0]<'5' || val[0]>'9') { logprintf(LOG_ERR,"error in configfile line %d:", line); logprintf(LOG_ERR,"bad bit count"); parse_error=1; return 0; } rem->bits_in_byte=val[0]-'0'; switch(toupper(val[1])) { case 'N': rem->parity = IR_PARITY_NONE; break; case 'E': rem->parity = IR_PARITY_EVEN; break; case 'O': rem->parity = IR_PARITY_ODD; break; default: logprintf(LOG_ERR,"error in configfile line %d:", line); logprintf(LOG_ERR,"unsupported parity mode"); parse_error=1; return 0; } if(strcmp(val+2, "1.5")==0) { rem->stop_bits=3; } else { rem->stop_bits=s_strtoui(val+2)*2; } return(1); } else if (val2!=NULL) { if (strcasecmp("header",key)==0){ rem->phead=s_strtolirc_t(val); rem->shead=s_strtolirc_t(val2); return(2); } else if (strcasecmp("three",key)==0){ rem->pthree=s_strtolirc_t(val); rem->sthree=s_strtolirc_t(val2); return(2); } else if (strcasecmp("two",key)==0){ rem->ptwo=s_strtolirc_t(val); rem->stwo=s_strtolirc_t(val2); return(2); } else if (strcasecmp("one",key)==0){ rem->pone=s_strtolirc_t(val); rem->sone=s_strtolirc_t(val2); return(2); } else if (strcasecmp("zero",key)==0){ rem->pzero=s_strtolirc_t(val); rem->szero=s_strtolirc_t(val2); return(2); } else if (strcasecmp("foot",key)==0){ rem->pfoot=s_strtolirc_t(val); rem->sfoot=s_strtolirc_t(val2); return(2); } else if (strcasecmp("repeat",key)==0){ rem->prepeat=s_strtolirc_t(val); rem->srepeat=s_strtolirc_t(val2); return(2); } else if (strcasecmp("pre",key)==0){ rem->pre_p=s_strtolirc_t(val); rem->pre_s=s_strtolirc_t(val2); return(2); } else if (strcasecmp("post",key)==0){ rem->post_p=s_strtolirc_t(val); rem->post_s=s_strtolirc_t(val2); return(2); } } if(val2){ logprintf(LOG_ERR,"error in configfile line %d:",line); logprintf(LOG_ERR,"unknown definiton: \"%s %s %s\"", key, val, val2); }else{ logprintf(LOG_ERR,"error in configfile line %d:",line); logprintf(LOG_ERR,"unknown definiton or too few arguments: " "\"%s %s\"",key, val); } parse_error=1; return(0); }
int defineRemote(char * key, char * val, char *val2, struct ir_remote *rem) { if ((strcasecmp("name",key))==0){ if(rem->name!=NULL) free(rem->name); rem->name=s_strdup(val); LOGPRINTF(1,"parsing %s remote",val); return(1); } else if ((strcasecmp("bits",key))==0){ rem->bits=s_strtoi(val); return(1); } else if (strcasecmp("flags",key)==0){ rem->flags|=parseFlags(val); return(1); } else if (strcasecmp("eps",key)==0){ rem->eps=s_strtoi(val); return(1); } else if (strcasecmp("aeps",key)==0){ rem->aeps=s_strtoi(val); return(1); } else if (strcasecmp("plead",key)==0){ rem->plead=s_strtolirc_t(val); return(1); } else if (strcasecmp("ptrail",key)==0){ rem->ptrail=s_strtolirc_t(val); return(1); } else if (strcasecmp("pre_data_bits",key)==0){ rem->pre_data_bits=s_strtoi(val); return(1); } else if (strcasecmp("pre_data",key)==0){ rem->pre_data=s_strtocode(val); return(1); } else if (strcasecmp("post_data_bits",key)==0){ rem->post_data_bits=s_strtoi(val); return(1); } else if (strcasecmp("post_data",key)==0){ rem->post_data=s_strtocode(val); return(1); } else if (strcasecmp("gap",key)==0){ rem->gap=s_strtoul(val); return(1); } else if (strcasecmp("repeat_gap",key)==0){ rem->repeat_gap=s_strtoul(val); return(1); } else if (strcasecmp("toggle_bit",key)==0){ rem->toggle_bit=s_strtoi(val); return(1); } /* obsolete name */ else if (strcasecmp("repeat_bit",key)==0){ rem->toggle_bit=s_strtoi(val); return(1); } else if (strcasecmp("min_repeat",key)==0){ rem->min_repeat=s_strtoi(val); return(1); } else if (strcasecmp("frequency",key)==0){ rem->freq=s_strtoui(val); return(1); } else if (strcasecmp("duty_cycle",key)==0){ rem->duty_cycle=s_strtoui(val); return(1); } else if (val2!=NULL) { if (strcasecmp("header",key)==0){ rem->phead=s_strtolirc_t(val); rem->shead=s_strtolirc_t(val2); return(2); } else if (strcasecmp("three",key)==0){ rem->pthree=s_strtolirc_t(val); rem->sthree=s_strtolirc_t(val2); return(2); } else if (strcasecmp("two",key)==0){ rem->ptwo=s_strtolirc_t(val); rem->stwo=s_strtolirc_t(val2); return(2); } else if (strcasecmp("one",key)==0){ rem->pone=s_strtolirc_t(val); rem->sone=s_strtolirc_t(val2); return(2); } else if (strcasecmp("zero",key)==0){ rem->pzero=s_strtolirc_t(val); rem->szero=s_strtolirc_t(val2); return(2); } else if (strcasecmp("foot",key)==0){ rem->pfoot=s_strtolirc_t(val); rem->sfoot=s_strtolirc_t(val2); return(2); } else if (strcasecmp("repeat",key)==0){ rem->prepeat=s_strtolirc_t(val); rem->srepeat=s_strtolirc_t(val2); return(2); } else if (strcasecmp("pre",key)==0){ rem->pre_p=s_strtolirc_t(val); rem->pre_s=s_strtolirc_t(val2); return(2); } else if (strcasecmp("post",key)==0){ rem->post_p=s_strtolirc_t(val); rem->post_s=s_strtolirc_t(val2); return(2); } } if(val2){ logprintf(LOG_ERR,"error in configfile line %d:",line); logprintf(LOG_ERR,"unknown definiton: \"%s %s %s\"", key, val, val2); }else{ logprintf(LOG_ERR,"error in configfile line %d:",line); logprintf(LOG_ERR,"unknown definiton or too few arguments: " "\"%s %s\"",key, val); } parse_error=1; return(0); }