void rlm_walltime_RLMStart(void *ptr,const char *arg) { char address[17]; char section[256]; char errtext[256]; int i=1; rlm_walltime_devs=0; rlm_walltime_addresses=NULL; rlm_walltime_ports=NULL; rlm_walltime_formats=NULL; rlm_walltime_host_addresses=NULL; rlm_walltime_masters=NULL; rlm_walltime_aux1s=NULL; rlm_walltime_aux2s=NULL; sprintf(section,"Walltime%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); if(strlen(address)==0) { RLMLog(ptr,LOG_WARNING,"rlm_walltime: no walltime destinations specified"); return; } while(strlen(address)>0) { rlm_walltime_addresses= realloc(rlm_walltime_addresses,(rlm_walltime_devs+1)*(rlm_walltime_devs+1)*16); strcpy(rlm_walltime_addresses+16*rlm_walltime_devs,address); rlm_walltime_ports=realloc(rlm_walltime_ports,(rlm_walltime_devs+1)*sizeof(uint16_t)); rlm_walltime_ports[rlm_walltime_devs]= RLMGetIntegerValue(ptr,arg,section,"UdpPort",0); rlm_walltime_formats=realloc(rlm_walltime_formats,(rlm_walltime_devs+1)*8192); strncpy(rlm_walltime_formats+8192*rlm_walltime_devs, RLMGetStringValue(ptr,arg,section,"FormatString",""),8192); rlm_walltime_host_addresses= realloc(rlm_walltime_host_addresses,(rlm_walltime_devs+1)*(rlm_walltime_devs+1)*16); strncpy(rlm_walltime_host_addresses+16*rlm_walltime_devs, RLMGetStringValue(ptr,arg,section,"HostAddress",""),15); rlm_walltime_masters=realloc(rlm_walltime_masters, (rlm_walltime_devs+1)*sizeof(int)); rlm_walltime_masters[rlm_walltime_devs]= rlm_walltime_GetLogStatus(ptr,arg,section,"MasterLog"); rlm_walltime_aux1s=realloc(rlm_walltime_aux1s, (rlm_walltime_devs+1)*sizeof(int)); rlm_walltime_aux1s[rlm_walltime_devs]= rlm_walltime_GetLogStatus(ptr,arg,section,"Aux1Log"); rlm_walltime_aux2s=realloc(rlm_walltime_aux2s, (rlm_walltime_devs+1)*sizeof(int)); rlm_walltime_aux2s[rlm_walltime_devs]= rlm_walltime_GetLogStatus(ptr,arg,section,"Aux2Log"); sprintf(errtext,"rlm_walltime: configured destination \"%s:%d\"",address, rlm_walltime_ports[rlm_walltime_devs]); rlm_walltime_devs++; RLMLog(ptr,LOG_INFO,errtext); sprintf(section,"Walltime%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); } }
int rlm_inno713_GetLogStatus(void *ptr,const char *arg,const char *section, const char *logname) { const char *tag=RLMGetStringValue(ptr,arg,section,logname,""); if(strcasecmp(tag,"yes")==0) { return 1; } if(strcasecmp(tag,"on")==0) { return 1; } if(strcasecmp(tag,"true")==0) { return 1; } if(strcasecmp(tag,"no")==0) { return 0; } if(strcasecmp(tag,"off")==0) { return 0; } if(strcasecmp(tag,"false")==0) { return 0; } if(strcasecmp(tag,"onair")==0) { return 2; } return 0; }
void rlm_liqcomp_RLMStart(void *ptr,const char *arg) { char address[17]; char section[256]; char errtext[256]; int i=1; rlm_liqcomp_devs=0; rlm_liqcomp_addresses=NULL; rlm_liqcomp_ports=NULL; rlm_liqcomp_masters=NULL; rlm_liqcomp_aux1s=NULL; rlm_liqcomp_aux2s=NULL; sprintf(section,"System%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); if(strlen(address)==0) { RLMLog(ptr,LOG_WARNING,"rlm_liqcomp: no encoder destinations specified"); return; } while(strlen(address)>0) { rlm_liqcomp_addresses= realloc(rlm_liqcomp_addresses,(rlm_liqcomp_devs+1)*(rlm_liqcomp_devs+1)*16); strcpy(rlm_liqcomp_addresses+16*rlm_liqcomp_devs,address); rlm_liqcomp_ports=realloc(rlm_liqcomp_ports,(rlm_liqcomp_devs+1)*sizeof(uint16_t)); rlm_liqcomp_ports[rlm_liqcomp_devs]= RLMGetIntegerValue(ptr,arg,section,"UdpPort",0); rlm_liqcomp_titles=realloc(rlm_liqcomp_titles,(rlm_liqcomp_devs+1)*256); strncpy(rlm_liqcomp_titles+256*rlm_liqcomp_devs, RLMGetStringValue(ptr,arg,section,"Title",""),256); rlm_liqcomp_artists=realloc(rlm_liqcomp_artists,(rlm_liqcomp_devs+1)*256); strncpy(rlm_liqcomp_artists+256*rlm_liqcomp_devs, RLMGetStringValue(ptr,arg,section,"Artist",""),256); rlm_liqcomp_albums=realloc(rlm_liqcomp_albums,(rlm_liqcomp_devs+1)*256); strncpy(rlm_liqcomp_albums+256*rlm_liqcomp_devs, RLMGetStringValue(ptr,arg,section,"Album",""),256); rlm_liqcomp_labels=realloc(rlm_liqcomp_labels,(rlm_liqcomp_devs+1)*256); strncpy(rlm_liqcomp_labels+256*rlm_liqcomp_devs, RLMGetStringValue(ptr,arg,section,"Label",""),256); rlm_liqcomp_masters=realloc(rlm_liqcomp_masters, (rlm_liqcomp_devs+1)*sizeof(int)); rlm_liqcomp_masters[rlm_liqcomp_devs]= rlm_liqcomp_GetLogStatus(ptr,arg,section,"MasterLog"); rlm_liqcomp_aux1s=realloc(rlm_liqcomp_aux1s, (rlm_liqcomp_devs+1)*sizeof(int)); rlm_liqcomp_aux1s[rlm_liqcomp_devs]= rlm_liqcomp_GetLogStatus(ptr,arg,section,"Aux1Log"); rlm_liqcomp_aux2s=realloc(rlm_liqcomp_aux2s, (rlm_liqcomp_devs+1)*sizeof(int)); rlm_liqcomp_aux2s[rlm_liqcomp_devs]= rlm_liqcomp_GetLogStatus(ptr,arg,section,"Aux2Log"); sprintf(errtext,"rlm_liqcomp: configured destination \"%s:%d\"",address, rlm_liqcomp_ports[rlm_liqcomp_devs]); rlm_liqcomp_devs++; RLMLog(ptr,LOG_INFO,errtext); sprintf(section,"System%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); } }
void rlm_inno713_RLMStart(void *ptr,const char *arg) { char address[17]; char section[256]; char errtext[256]; char device[256]; int speed; int parity; int wsize; int i=1; rlm_inno713_devs=0; rlm_inno713_addresses=NULL; rlm_inno713_ports=NULL; rlm_inno713_handles=NULL; rlm_inno713_dynamicpss=NULL; rlm_inno713_masters=NULL; rlm_inno713_aux1s=NULL; rlm_inno713_aux2s=NULL; sprintf(section,"Rds%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256); if((strlen(address)==0)&&(strlen(device)==0)) { RLMLog(ptr,LOG_WARNING,"rlm_inno713: no RDS connections specified"); return; } while((strlen(address)>0)||(strlen(device)>0)) { rlm_inno713_addresses= realloc(rlm_inno713_addresses, (rlm_inno713_devs+1)*(rlm_inno713_devs+1)*16); strcpy(rlm_inno713_addresses+16*rlm_inno713_devs,address); rlm_inno713_ports=realloc(rlm_inno713_ports, (rlm_inno713_devs+1)*sizeof(uint16_t)); rlm_inno713_ports[rlm_inno713_devs]= RLMGetIntegerValue(ptr,arg,section,"UdpPort",0); speed=RLMGetIntegerValue(ptr,arg,section,"Speed",9600); parity=RLMGetIntegerValue(ptr,arg,section,"Parity",0); wsize=RLMGetIntegerValue(ptr,arg,section,"WordSize",8); rlm_inno713_handles=realloc(rlm_inno713_handles, (rlm_inno713_devs+1)*sizeof(int)); rlm_inno713_handles[rlm_inno713_devs]= RLMOpenSerial(ptr,device,speed,parity,wsize); rlm_inno713_dynamicpss=realloc(rlm_inno713_dynamicpss,(rlm_inno713_devs+1)*256); strncpy(rlm_inno713_dynamicpss+256*rlm_inno713_devs, RLMGetStringValue(ptr,arg,section,"DynamicPsString",""),256); rlm_inno713_pss=realloc(rlm_inno713_pss,(rlm_inno713_devs+1)*256); strncpy(rlm_inno713_pss+256*rlm_inno713_devs, RLMGetStringValue(ptr,arg,section,"PsString",""),256); rlm_inno713_radiotexts=realloc(rlm_inno713_radiotexts, (rlm_inno713_devs+1)*256); strncpy(rlm_inno713_radiotexts+256*rlm_inno713_devs, RLMGetStringValue(ptr,arg,section,"RadiotextString",""),256); rlm_inno713_masters=realloc(rlm_inno713_masters, (rlm_inno713_devs+1)*sizeof(int)); rlm_inno713_masters[rlm_inno713_devs]= rlm_inno713_GetLogStatus(ptr,arg,section,"MasterLog"); rlm_inno713_aux1s=realloc(rlm_inno713_aux1s, (rlm_inno713_devs+1)*sizeof(int)); rlm_inno713_aux1s[rlm_inno713_devs]= rlm_inno713_GetLogStatus(ptr,arg,section,"Aux1Log"); rlm_inno713_aux2s=realloc(rlm_inno713_aux2s, (rlm_inno713_devs+1)*sizeof(int)); rlm_inno713_aux2s[rlm_inno713_devs]= rlm_inno713_GetLogStatus(ptr,arg,section,"Aux2Log"); sprintf(errtext,"rlm_inno713: configured destination \"%s:%d\"",address, rlm_inno713_ports[rlm_inno713_devs]); RLMLog(ptr,LOG_INFO,errtext); if(strlen(device)>0) { if(rlm_inno713_handles[rlm_inno713_devs]<0) { sprintf(errtext,"rlm_inno713: unable to open serial device \"%s\"",device); } else { sprintf(errtext,"rlm_inno713: configured serial device \"%s\"",device); } RLMLog(ptr,LOG_INFO,errtext); } rlm_inno713_devs++; sprintf(section,"Rds%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256); } }
void rlm_xmpad_RLMStart(void *ptr,const char *arg) { int handle; char device[256]; int speed; int parity; int wsize; char section[256]; char errtext[256]; int i=1; int interval; rlm_xmpad_devs=0; rlm_xmpad_ids=NULL; rlm_xmpad_handles=NULL; rlm_xmpad_recordings=NULL; rlm_xmpad_format1s=NULL; rlm_xmpad_format2s=NULL; rlm_xmpad_display_size1s=NULL; rlm_xmpad_display_size2s=NULL; rlm_xmpad_masters=NULL; rlm_xmpad_aux1s=NULL; rlm_xmpad_aux2s=NULL; sprintf(section,"Serial%d",i++); strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256); if(strlen(device)==0) { RLMLog(ptr,LOG_WARNING,"rlm_xmpad: no serial devices specified"); return; } while(strlen(device)>0) { speed=RLMGetIntegerValue(ptr,arg,section,"Speed",9600); parity=RLMGetIntegerValue(ptr,arg,section,"Parity",0); wsize=RLMGetIntegerValue(ptr,arg,section,"WordSize",8); if((handle=RLMOpenSerial(ptr,device,speed,parity,wsize))>=0) { rlm_xmpad_handles=realloc(rlm_xmpad_handles, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_handles[rlm_xmpad_devs]=handle; rlm_xmpad_ids=realloc(rlm_xmpad_ids,(rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_ids[rlm_xmpad_devs]= RLMGetIntegerValue(ptr,arg,section,"ProgramID",0); rlm_xmpad_format1s=realloc(rlm_xmpad_format1s,(rlm_xmpad_devs+1)*256); strncpy(rlm_xmpad_format1s+256*rlm_xmpad_devs, RLMGetStringValue(ptr,arg,section,"FormatString1",""),256); rlm_xmpad_format2s=realloc(rlm_xmpad_format2s,(rlm_xmpad_devs+1)*256); strncpy(rlm_xmpad_format2s+256*rlm_xmpad_devs, RLMGetStringValue(ptr,arg,section,"FormatString2",""),256); rlm_xmpad_display_size1s=realloc(rlm_xmpad_display_size1s, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_display_size1s[rlm_xmpad_devs]= RLMGetIntegerValue(ptr,arg,section,"DisplaySize1",8); rlm_xmpad_display_size2s=realloc(rlm_xmpad_display_size2s, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_display_size2s[rlm_xmpad_devs]= RLMGetIntegerValue(ptr,arg,section,"DisplaySize2",10); rlm_xmpad_recordings=realloc(rlm_xmpad_recordings, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_recordings[rlm_xmpad_devs]= RLMGetBooleanValue(ptr,arg,section,"Recording",1); rlm_xmpad_masters=realloc(rlm_xmpad_masters, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_masters[rlm_xmpad_devs]= rlm_xmpad_GetLogStatus(ptr,arg,section,"MasterLog"); rlm_xmpad_aux1s=realloc(rlm_xmpad_aux1s, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_aux1s[rlm_xmpad_devs]= rlm_xmpad_GetLogStatus(ptr,arg,section,"Aux1Log"); rlm_xmpad_aux2s=realloc(rlm_xmpad_aux2s, (rlm_xmpad_devs+1)*sizeof(int)); rlm_xmpad_aux2s[rlm_xmpad_devs]= rlm_xmpad_GetLogStatus(ptr,arg,section,"Aux2Log"); interval=RLMGetIntegerValue(ptr,arg,section,"HeartbeatInterval",30); if(interval>0) { RLMStartTimer(ptr,rlm_xmpad_devs,1000*interval,RLM_TIMER_REPEATING); } rlm_xmpad_devs++; sprintf(errtext,"rlm_xmpad: opened device \"%s\"",device); RLMLog(ptr,LOG_INFO,errtext); } else { sprintf(errtext,"unable to open tty \"%s\"",device); RLMLog(ptr,LOG_WARNING,errtext); } sprintf(section,"Serial%d",i++); strncpy(device,RLMGetStringValue(ptr,arg,section,"Device",""),256); } }
void rlm_spottrap_RLMStart(void *ptr,const char *arg) { char address[17]; char section[256]; char errtext[256]; int i=1; rlm_spottrap_devs=0; rlm_spottrap_groups=NULL; rlm_spottrap_addresses=NULL; rlm_spottrap_minimums=NULL; rlm_spottrap_maximums=NULL; rlm_spottrap_ports=NULL; rlm_spottrap_formats=NULL; rlm_spottrap_default_formats=NULL; rlm_spottrap_masters=NULL; rlm_spottrap_aux1s=NULL; rlm_spottrap_aux2s=NULL; sprintf(section,"Rule%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); if(strlen(address)==0) { RLMLog(ptr,LOG_WARNING,"rlm_spottrap: no rules specified"); return; } while(strlen(address)>0) { rlm_spottrap_addresses= realloc(rlm_spottrap_addresses,(rlm_spottrap_devs+1)*(rlm_spottrap_devs+1)*16); strcpy(rlm_spottrap_addresses+16*rlm_spottrap_devs,address); rlm_spottrap_groups=realloc(rlm_spottrap_groups,(rlm_spottrap_devs+1)*16); strncpy(rlm_spottrap_groups+16*rlm_spottrap_devs, RLMGetStringValue(ptr,arg,section,"GroupName",""),10); rlm_spottrap_minimums=realloc(rlm_spottrap_minimums,(rlm_spottrap_devs+1)*sizeof(int)); rlm_spottrap_minimums[rlm_spottrap_devs]= RLMGetIntegerValue(ptr,arg,section,"MinimumLength",0); rlm_spottrap_maximums=realloc(rlm_spottrap_maximums,(rlm_spottrap_devs+1)*sizeof(int)); rlm_spottrap_maximums[rlm_spottrap_devs]= RLMGetIntegerValue(ptr,arg,section,"MaximumLength",0); rlm_spottrap_ports=realloc(rlm_spottrap_ports,(rlm_spottrap_devs+1)*sizeof(uint16_t)); rlm_spottrap_ports[rlm_spottrap_devs]= RLMGetIntegerValue(ptr,arg,section,"UdpPort",0); rlm_spottrap_formats=realloc(rlm_spottrap_formats,(rlm_spottrap_devs+1)*256); strncpy(rlm_spottrap_formats+256*rlm_spottrap_devs, RLMGetStringValue(ptr,arg,section,"FormatString",""),256); rlm_spottrap_default_formats=realloc(rlm_spottrap_default_formats, (rlm_spottrap_devs+1)*256); strncpy(rlm_spottrap_default_formats+256*rlm_spottrap_devs, RLMGetStringValue(ptr,arg,section,"DefaultFormatString",""),256); rlm_spottrap_masters=realloc(rlm_spottrap_masters, (rlm_spottrap_devs+1)*sizeof(int)); rlm_spottrap_masters[rlm_spottrap_devs]= rlm_spottrap_GetLogStatus(ptr,arg,section,"MasterLog"); rlm_spottrap_aux1s=realloc(rlm_spottrap_aux1s, (rlm_spottrap_devs+1)*sizeof(int)); rlm_spottrap_aux1s[rlm_spottrap_devs]= rlm_spottrap_GetLogStatus(ptr,arg,section,"Aux1Log"); rlm_spottrap_aux2s=realloc(rlm_spottrap_aux2s, (rlm_spottrap_devs+1)*sizeof(int)); rlm_spottrap_aux2s[rlm_spottrap_devs]= rlm_spottrap_GetLogStatus(ptr,arg,section,"Aux2Log"); sprintf(errtext,"rlm_spottrap: configured rule for \"%s:%d\"",address, rlm_spottrap_ports[rlm_spottrap_devs]); rlm_spottrap_devs++; RLMLog(ptr,LOG_INFO,errtext); sprintf(section,"Rule%d",i++); strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); } }