diff --git a/ChangeLog b/ChangeLog index ab5eb0cb..9e0fc277 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14837,3 +14837,15 @@ 2015-03-10 Fred Gleason * Fixed a bug in 'lib/rdcdplayer.cpp' that threw a segfault when opening the ripper with no CD inserted under RHEL 7. +2015-03-16 Fred Gleason + * Added 'DESCRIPTION', 'OUTCUE', 'FILENAME' and '*_POINT' fields + to the 'Cart CSV Report' in 'rdlibrary/list_reports.cpp'. +2015-03-17 Fred Gleason + * Updated 'get_distro.sh' to detect RHEL 7 correctly. +2015-03-23 Fred Gleason + * Fixed a fencepost bug in 'ripcd/sasusi.cpp' that caused the + last relay in the list to fail to respond to a 'GO' RML. +2015-04-02 Fred Gleason + * Modified the definition of the 'JACK_CLIENTS.COMMAND_LINE' + field from 'char(255)' to 'text' in the database. + * Incremented the database version to 244. diff --git a/get_distro.sh b/get_distro.sh index fd15e45a..9ecbe2e6 100755 --- a/get_distro.sh +++ b/get_distro.sh @@ -58,6 +58,9 @@ case "$1" in if test $VER = "release" ; then VER=`awk '/release/ {print $4}' /etc/redhat-release` fi + if test $VER = "Enterprise" ; then + VER=`awk '/release/ {print $7}' /etc/redhat-release` + fi echo $VER exit 0 fi @@ -80,6 +83,9 @@ case "$1" in if test $VER = "release" ; then VER=`awk '/release/ {print $4}' /etc/redhat-release` fi + if test $VER = "Enterprise" ; then + VER=`awk '/release/ {print $7}' /etc/redhat-release` + fi echo $VER | awk -F '.' '{print $1}' exit 0 fi @@ -98,6 +104,9 @@ case "$1" in if test $VER = "release" ; then VER=`awk '/release/ {print $4}' /etc/redhat-release` fi + if test $VER = "Enterprise" ; then + VER=`awk '/release/ {print $7}' /etc/redhat-release` + fi echo $VER | awk -F '.' '{print $2}' exit 0 fi diff --git a/lib/dbversion.h b/lib/dbversion.h index 2cf326ee..bcc1497a 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -26,7 +26,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 243 +#define RD_VERSION_DATABASE 244 #endif // DBVERSION_H diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index 27f1cdd4..ab3687aa 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -2237,7 +2237,7 @@ bool CreateDb(QString name,QString pwd) ID int unsigned auto_increment not null primary key, \ STATION_NAME char(64) not null,\ DESCRIPTION char(64),\ - COMMAND_LINE char(255) not null,\ + COMMAND_LINE text not null,\ index IDX_STATION_NAME (STATION_NAME))"); if(!RunQuery(sql)) { return false; @@ -8094,6 +8094,12 @@ int UpdateDb(int ver) delete q; } + if(ver<244) { + sql=QString("alter table JACK_CLIENTS modify column ")+ + "COMMAND_LINE text not null"; + q=new QSqlQuery(sql); + delete q; + } // **** End of version updates **** diff --git a/rdlibrary/list_reports.cpp b/rdlibrary/list_reports.cpp index 8e1c9feb..e1d7071b 100644 --- a/rdlibrary/list_reports.cpp +++ b/rdlibrary/list_reports.cpp @@ -690,7 +690,7 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) RDSqlQuery *q; QString schedcode=""; QStringList f0; - unsigned code_quan=0; + int code_quan=0; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; @@ -702,20 +702,27 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) if(list_type_filter.isEmpty()) { return; } - sql=QString("select CUTS.CUT_NAME,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,")+ + sql=QString("select CART.NUMBER,CART.TYPE,CUTS.CUT_NAME,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,")+ "CART.ALBUM,CART.YEAR,CUTS.ISRC,CUTS.ISCI,CART.LABEL,CART.CLIENT,"+ "CART.AGENCY,CART.PUBLISHER,CART.COMPOSER,CART.CONDUCTOR,CART.SONG_ID,"+ - "CART.USER_DEFINED,CUTS.LENGTH,SCHED_CODES from CART "+ - "join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; + "CART.USER_DEFINED,CUTS.DESCRIPTION,CUTS.OUTCUE,"+ + "CUTS.LENGTH,"+ + "CUTS.START_POINT,CUTS.END_POINT,"+ + "CUTS.SEGUE_START_POINT,CUTS.SEGUE_END_POINT,"+ + "CUTS.HOOK_START_POINT,CUTS.HOOK_END_POINT,"+ + "CUTS.TALK_START_POINT,CUTS.TALK_END_POINT,"+ + "CUTS.FADEUP_POINT,CUTS.FADEDOWN_POINT,"+ + "SCHED_CODES from CART "+ + "left join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ - list_type_filter+" order by CUTS.CUT_NAME"; + list_type_filter+" order by CART.NUMBER,CUTS.CUT_NAME"; } else { sql+=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ - list_type_filter+" order by CUTS.CUT_NAME"; + list_type_filter+" order by CART.NUMBER,CUTS.CUT_NAME"; } q=new RDSqlQuery(sql); @@ -724,7 +731,7 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) // while(q->next()) { f0=f0.split(" ",q->value(17).toString()); - if(f0.size()>code_quan) { + if((int)f0.size()>code_quan) { code_quan=f0.size(); } } @@ -734,10 +741,16 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) // Prepend Field Names // if(prepend_names) { - *report="CART,CUT,GROUP_NAME,TITLE,ARTIST,ALBUM,YEAR,ISRC,ISCI,LABEL,"; + *report="CART,CUT,TYPE,GROUP_NAME,TITLE,ARTIST,ALBUM,YEAR,ISRC,ISCI,LABEL,"; *report+="CLIENT,AGENCY,PUBLISHER,COMPOSER,CONDUCTOR,SONG_ID,USER_DEFINED,"; - *report+="LENGTH,"; - for(unsigned i=0;ileft(report->length()-1); @@ -749,15 +762,20 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) // q->seek(-1); while(q->next()) { - *report+=QString().sprintf("%u,",RDCut::cartNumber(q->value(0).toString())); - *report+=QString().sprintf("%u,",RDCut::cutNumber(q->value(0).toString())); - *report+="\""+q->value(1).toString()+"\","; - *report+="\""+q->value(2).toString()+"\","; + RDCart::Type type=(RDCart::Type)q->value(1).toInt(); + *report+=QString().sprintf("%u,",q->value(0).toUInt()); + if(type==RDCart::Macro) { + *report+="0,\"macro\","; + } + else { + *report+=QString().sprintf("%u,",RDCut::cutNumber(q->value(2).toString())); + *report+="\"audio\","; + } *report+="\""+q->value(3).toString()+"\","; *report+="\""+q->value(4).toString()+"\","; - *report+="\""+q->value(5).toDate().toString("yyyy")+"\","; + *report+="\""+q->value(5).toString()+"\","; *report+="\""+q->value(6).toString()+"\","; - *report+="\""+q->value(7).toString()+"\","; + *report+="\""+q->value(7).toDate().toString("yyyy")+"\","; *report+="\""+q->value(8).toString()+"\","; *report+="\""+q->value(9).toString()+"\","; *report+="\""+q->value(10).toString()+"\","; @@ -766,11 +784,46 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) *report+="\""+q->value(13).toString()+"\","; *report+="\""+q->value(14).toString()+"\","; *report+="\""+q->value(15).toString()+"\","; + *report+="\""+q->value(16).toString()+"\","; + *report+="\""+q->value(17).toString()+"\","; + *report+="\""+q->value(18).toString()+"\","; + *report+="\""+q->value(19).toString()+"\","; + if(type==RDCart::Macro) { + *report+="\"\","; + } + else { + *report+="\""+q->value(2).toString()+".wav\","; + } *report+="\""+ - RDGetTimeLength(q->value(16).toInt(),false,false).stripWhiteSpace()+"\","; - f0=f0.split(" ",q->value(17).toString()); - for(unsigned i=0;ii)&&(f0[i]!=".")) { + RDGetTimeLength(q->value(20).toInt(),false,false).stripWhiteSpace()+"\","; + if(type==RDCart::Macro) { + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + *report+="-1,"; + } + else { + *report+=QString().sprintf("%d,",q->value(21).toInt()); + *report+=QString().sprintf("%d,",q->value(22).toInt()); + *report+=QString().sprintf("%d,",q->value(23).toInt()); + *report+=QString().sprintf("%d,",q->value(24).toInt()); + *report+=QString().sprintf("%d,",q->value(25).toInt()); + *report+=QString().sprintf("%d,",q->value(26).toInt()); + *report+=QString().sprintf("%d,",q->value(27).toInt()); + *report+=QString().sprintf("%d,",q->value(28).toInt()); + *report+=QString().sprintf("%d,",q->value(29).toInt()); + *report+=QString().sprintf("%d,",q->value(30).toInt()); + } + + f0=f0.split(" ",q->value(31).toString()); + for(int i=0;ii)&&(f0[i]!=".")) { *report+="\""+f0[i].stripWhiteSpace()+"\","; } else { diff --git a/ripcd/sasusi.cpp b/ripcd/sasusi.cpp index 3eb52283..6edd5cee 100644 --- a/ripcd/sasusi.cpp +++ b/ripcd/sasusi.cpp @@ -288,10 +288,11 @@ void SasUsi::processCommand(RDMacro *cmd) } cmd_byte=0x01; } - if(cmd->arg(2).toUInt()arg(2).toUInt()<=sas_relay_numbers.size()) { if(sas_relay_numbers[cmd->arg(2).toUInt()-1]>=0) { snprintf(str,256,"\x05R%d%04d\x0D\x0A",cmd_byte, sas_relay_numbers[cmd->arg(2).toUInt()-1]); + syslog(LOG_NOTICE,"USI: %s",(const char *)PrettifyCommand(str)); SendCommand(str); cmd->acknowledge(true); emit rmlEcho(cmd);