From eae618e4640f4f6af46107c28fa3343f9875a06f Mon Sep 17 00:00:00 2001 From: Fred Gleason <fredg@paraelsystems.com> Date: Tue, 18 Dec 2018 18:14:10 -0500 Subject: [PATCH] 2018-12-18 Fred Gleason <fredg@paravelsystems.com> * Removed the 'rlm_padpoint' RLM. --- ChangeLog | 2 + apis/rlm/Makefile.am | 2 - apis/rlm/rlm_padpoint.c | 454 ---------------------------------------- 3 files changed, 2 insertions(+), 456 deletions(-) delete mode 100644 apis/rlm/rlm_padpoint.c diff --git a/ChangeLog b/ChangeLog index 7af27031..dd22e815 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18239,3 +18239,5 @@ * Removed the 'rlm_live365' RLM. * Fixed typos in the docstrings for 'PyPAD.Update::startDateTime()' and 'PyPAD.Update::padField()'. +2018-12-18 Fred Gleason <fredg@paravelsystems.com> + * Removed the 'rlm_padpoint' RLM. diff --git a/apis/rlm/Makefile.am b/apis/rlm/Makefile.am index 8fb6f7b9..80675308 100644 --- a/apis/rlm/Makefile.am +++ b/apis/rlm/Makefile.am @@ -25,7 +25,6 @@ RLM_MODULES=rlm_ando.rlm\ rlm_icecast2.rlm\ rlm_inno713.rlm\ rlm_liqcomp.rlm\ - rlm_padpoint.rlm\ rlm_serial.rlm\ rlm_shoutcast1.rlm\ rlm_spinitron_plus.rlm\ @@ -58,7 +57,6 @@ EXTRA_DIST = Makefile-example\ rlm_icecast2.c\ rlm_inno713.c\ rlm_liqcomp.c\ - rlm_padpoint.c\ rlm_serial.c\ rlm_shoutcast1.c\ rlm_spinitron_plus.c\ diff --git a/apis/rlm/rlm_padpoint.c b/apis/rlm/rlm_padpoint.c deleted file mode 100644 index 0cb62c6a..00000000 --- a/apis/rlm/rlm_padpoint.c +++ /dev/null @@ -1,454 +0,0 @@ -/* rlm_padpoint.c - * - * (C) Copyright 2012-2018 Fred Gleason <fredg@paravelsystems.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * This is a Rivendell Loadable Module. It sends Now&Next PAD data via - * UDP packets to one or more PadPoint PAD processors as specified in the - * configuration file pointed to by the plugin argument. - * - * To compile this module, just do: - * - * gcc -shared -o rlm_padpoint.rlm rlm_padpoint.c - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <strings.h> -#include <rlm/rlm.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> - -#define PADPOINT_DEFAULT_ADDRESS "127.0.0.1" -#define PADPOINT_DEFAULT_PORT 3355 -#define PADPOINT_DEFAULT_MAINLOG 1 -#define PADPOINT_DEFAULT_AUX1LOG 1 -#define PADPOINT_DEFAULT_AUX2LOG 1 - -int rlm_padpoint_devs; -char *rlm_padpoint_addresses; -uint16_t *rlm_padpoint_ports; -int *rlm_padpoint_masters; -int *rlm_padpoint_aux1s; -int *rlm_padpoint_aux2s; -int *rlm_padpoint_vlog101s; -int *rlm_padpoint_vlog102s; -int *rlm_padpoint_vlog103s; -int *rlm_padpoint_vlog104s; -int *rlm_padpoint_vlog105s; -int *rlm_padpoint_vlog106s; -int *rlm_padpoint_vlog107s; -int *rlm_padpoint_vlog108s; -int *rlm_padpoint_vlog109s; -int *rlm_padpoint_vlog110s; -int *rlm_padpoint_vlog111s; -int *rlm_padpoint_vlog112s; -int *rlm_padpoint_vlog113s; -int *rlm_padpoint_vlog114s; -int *rlm_padpoint_vlog115s; -int *rlm_padpoint_vlog116s; -int *rlm_padpoint_vlog117s; -int *rlm_padpoint_vlog118s; -int *rlm_padpoint_vlog119s; -int *rlm_padpoint_vlog120s; - -int rlm_padpoint_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_padpoint_RLMStart(void *ptr,const char *arg) -{ - char address[17]; - char section[256]; - char errtext[256]; - struct stat info; - int i=1; - - rlm_padpoint_devs=0; - rlm_padpoint_addresses=NULL; - rlm_padpoint_ports=NULL; - rlm_padpoint_masters=NULL; - rlm_padpoint_aux1s=NULL; - rlm_padpoint_aux2s=NULL; - rlm_padpoint_vlog101s=NULL; - rlm_padpoint_vlog102s=NULL; - rlm_padpoint_vlog103s=NULL; - rlm_padpoint_vlog104s=NULL; - rlm_padpoint_vlog105s=NULL; - rlm_padpoint_vlog106s=NULL; - rlm_padpoint_vlog107s=NULL; - rlm_padpoint_vlog108s=NULL; - rlm_padpoint_vlog109s=NULL; - rlm_padpoint_vlog110s=NULL; - rlm_padpoint_vlog111s=NULL; - rlm_padpoint_vlog112s=NULL; - rlm_padpoint_vlog113s=NULL; - rlm_padpoint_vlog114s=NULL; - rlm_padpoint_vlog115s=NULL; - rlm_padpoint_vlog116s=NULL; - rlm_padpoint_vlog117s=NULL; - rlm_padpoint_vlog118s=NULL; - rlm_padpoint_vlog119s=NULL; - rlm_padpoint_vlog120s=NULL; - - if(stat(arg,&info)<0) { - /* - * Use default settings - */ - rlm_padpoint_addresses=realloc(rlm_padpoint_addresses,16); - strcpy(rlm_padpoint_addresses,PADPOINT_DEFAULT_ADDRESS); - rlm_padpoint_ports=realloc(rlm_padpoint_ports,sizeof(uint16_t)); - rlm_padpoint_ports[0]=PADPOINT_DEFAULT_PORT; - rlm_padpoint_masters=realloc(rlm_padpoint_masters,sizeof(int)); - rlm_padpoint_masters[0]=PADPOINT_DEFAULT_MAINLOG; - rlm_padpoint_aux1s=realloc(rlm_padpoint_aux1s,sizeof(int)); - rlm_padpoint_aux1s[0]=PADPOINT_DEFAULT_AUX1LOG; - rlm_padpoint_aux2s=realloc(rlm_padpoint_aux2s,sizeof(int)); - rlm_padpoint_aux2s[0]=PADPOINT_DEFAULT_AUX2LOG; - rlm_padpoint_devs=1; - RLMLog(ptr,LOG_INFO,"loaded default settings"); - } - else { - /* - * Load settings from a configuration file - */ - sprintf(section,"PadPoint%d",i++); - strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); - if(strlen(address)==0) { - RLMLog(ptr,LOG_WARNING,"rlm_padpoint: no padpoint destinations specified"); - return; - } - while(strlen(address)>0) { - rlm_padpoint_addresses= - realloc(rlm_padpoint_addresses,(rlm_padpoint_devs+1)*(rlm_padpoint_devs+1)*16); - strcpy(rlm_padpoint_addresses+16*rlm_padpoint_devs,address); - rlm_padpoint_ports=realloc(rlm_padpoint_ports,(rlm_padpoint_devs+1)*sizeof(uint16_t)); - rlm_padpoint_ports[rlm_padpoint_devs]= - RLMGetIntegerValue(ptr,arg,section,"UdpPort",0); - rlm_padpoint_masters=realloc(rlm_padpoint_masters, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_masters[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"MasterLog"); - rlm_padpoint_aux1s=realloc(rlm_padpoint_aux1s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_aux1s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"Aux1Log"); - rlm_padpoint_aux2s=realloc(rlm_padpoint_aux2s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_aux2s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"Aux2Log"); - - rlm_padpoint_vlog101s=realloc(rlm_padpoint_vlog101s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog101s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog101"); - - rlm_padpoint_vlog102s=realloc(rlm_padpoint_vlog102s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog102s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog102"); - - rlm_padpoint_vlog103s=realloc(rlm_padpoint_vlog103s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog103s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog103"); - - rlm_padpoint_vlog104s=realloc(rlm_padpoint_vlog104s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog104s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog104"); - - rlm_padpoint_vlog105s=realloc(rlm_padpoint_vlog105s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog105s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog105"); - - rlm_padpoint_vlog106s=realloc(rlm_padpoint_vlog106s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog106s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog106"); - - rlm_padpoint_vlog107s=realloc(rlm_padpoint_vlog107s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog107s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog107"); - - rlm_padpoint_vlog108s=realloc(rlm_padpoint_vlog108s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog108s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog108"); - - rlm_padpoint_vlog109s=realloc(rlm_padpoint_vlog109s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog109s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog109"); - - rlm_padpoint_vlog110s=realloc(rlm_padpoint_vlog110s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog110s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog110"); - - rlm_padpoint_vlog111s=realloc(rlm_padpoint_vlog111s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog111s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog111"); - - rlm_padpoint_vlog112s=realloc(rlm_padpoint_vlog112s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog112s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog112"); - - rlm_padpoint_vlog113s=realloc(rlm_padpoint_vlog113s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog113s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog113"); - - rlm_padpoint_vlog114s=realloc(rlm_padpoint_vlog114s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog114s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog114"); - - rlm_padpoint_vlog115s=realloc(rlm_padpoint_vlog115s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog115s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog115"); - - rlm_padpoint_vlog116s=realloc(rlm_padpoint_vlog116s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog116s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog116"); - - rlm_padpoint_vlog117s=realloc(rlm_padpoint_vlog117s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog117s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog117"); - - rlm_padpoint_vlog118s=realloc(rlm_padpoint_vlog118s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog118s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog118"); - - rlm_padpoint_vlog119s=realloc(rlm_padpoint_vlog119s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog119s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog119"); - - rlm_padpoint_vlog120s=realloc(rlm_padpoint_vlog120s, - (rlm_padpoint_devs+1)*sizeof(int)); - rlm_padpoint_vlog120s[rlm_padpoint_devs]= - rlm_padpoint_GetLogStatus(ptr,arg,section,"VLog120"); - - sprintf(errtext,"rlm_padpoint: configured destination \"%s:%d\"",address, - rlm_padpoint_ports[rlm_padpoint_devs]); - rlm_padpoint_devs++; - RLMLog(ptr,LOG_INFO,errtext); - sprintf(section,"PadPoint%d",i++); - strncpy(address,RLMGetStringValue(ptr,arg,section,"IpAddress",""),15); - } - } -} - - -void rlm_padpoint_RLMFree(void *ptr) -{ - free(rlm_padpoint_addresses); - free(rlm_padpoint_ports); - free(rlm_padpoint_masters); - free(rlm_padpoint_aux1s); - free(rlm_padpoint_aux2s); - free(rlm_padpoint_vlog101s); - free(rlm_padpoint_vlog102s); - free(rlm_padpoint_vlog103s); - free(rlm_padpoint_vlog104s); - free(rlm_padpoint_vlog105s); - free(rlm_padpoint_vlog106s); - free(rlm_padpoint_vlog107s); - free(rlm_padpoint_vlog108s); - free(rlm_padpoint_vlog109s); - free(rlm_padpoint_vlog110s); - free(rlm_padpoint_vlog111s); - free(rlm_padpoint_vlog112s); - free(rlm_padpoint_vlog113s); - free(rlm_padpoint_vlog114s); - free(rlm_padpoint_vlog115s); - free(rlm_padpoint_vlog116s); - free(rlm_padpoint_vlog117s); - free(rlm_padpoint_vlog118s); - free(rlm_padpoint_vlog119s); - free(rlm_padpoint_vlog120s); -} - - -void rlm_padpoint_RLMPadDataSent(void *ptr,const struct rlm_svc *svc, - const struct rlm_log *log, - const struct rlm_pad *now, - const struct rlm_pad *next) -{ - int i; - int flag=0; - char str[1501]; - char msg[2048]; - - for(i=0;i<rlm_padpoint_devs;i++) { - switch(log->log_mach) { - case 0: - flag=rlm_padpoint_masters[i]; - break; - - case 1: - flag=rlm_padpoint_aux1s[i]; - break; - - case 2: - flag=rlm_padpoint_aux2s[i]; - break; - - case 100: - flag=rlm_padpoint_vlog101s[i]; - break; - - case 101: - flag=rlm_padpoint_vlog102s[i]; - break; - - case 102: - flag=rlm_padpoint_vlog103s[i]; - break; - - case 103: - flag=rlm_padpoint_vlog104s[i]; - break; - - case 104: - flag=rlm_padpoint_vlog105s[i]; - break; - - case 105: - flag=rlm_padpoint_vlog106s[i]; - break; - - case 106: - flag=rlm_padpoint_vlog107s[i]; - break; - - case 107: - flag=rlm_padpoint_vlog108s[i]; - break; - - case 108: - flag=rlm_padpoint_vlog109s[i]; - break; - - case 109: - flag=rlm_padpoint_vlog110s[i]; - break; - - case 110: - flag=rlm_padpoint_vlog111s[i]; - break; - - case 111: - flag=rlm_padpoint_vlog112s[i]; - break; - - case 112: - flag=rlm_padpoint_vlog113s[i]; - break; - - case 113: - flag=rlm_padpoint_vlog114s[i]; - break; - - case 114: - flag=rlm_padpoint_vlog115s[i]; - break; - - case 115: - flag=rlm_padpoint_vlog116s[i]; - break; - - case 116: - flag=rlm_padpoint_vlog117s[i]; - break; - - case 117: - flag=rlm_padpoint_vlog118s[i]; - break; - - case 118: - flag=rlm_padpoint_vlog119s[i]; - break; - - case 119: - flag=rlm_padpoint_vlog120s[i]; - break; - } - if((flag==1)||((flag==2)&&(log->log_onair!=0))) { - snprintf(str,1501, - "%06u~%u~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s~%s", - now->rlm_cartnum, - now->rlm_len, - now->rlm_year, - now->rlm_group, - now->rlm_title, - now->rlm_artist, - now->rlm_album, - now->rlm_label, - now->rlm_client, - now->rlm_agency, - now->rlm_comp, - now->rlm_pub, - now->rlm_userdef, - now->rlm_isrc, - now->rlm_isci, - now->rlm_conductor, - now->rlm_song_id, - now->rlm_year, - now->rlm_outcue, - now->rlm_description); - RLMSendUdp(ptr,rlm_padpoint_addresses+i*16,rlm_padpoint_ports[i], - str,strlen(str)); - snprintf(msg,1500,"rlm_padpoint: sending pad update: \"%s\"",str); - RLMLog(ptr,LOG_INFO,msg); - } - } -}