From 32b3d1775c25662aa66aa6c8fc4b57976aa9a60d Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Thu, 31 May 2018 00:09:35 +0000 Subject: [PATCH] 2018-05-30 Fred Gleason * Removed drop of the 'RECORDINGS.SAMPRATE' field from schema change 285. * Cleaned up SQL calls in rdcatchd(8). * Cleaned up SQL calls in 'RDStation'. * Cleaned up SQL calls in 'RDLibraryConf'. * Cleaned up SQL calls in 'RDLogeditConf'. * Cleaned up SQL calls in 'RDLogLine'. * Cleaned up SQL calls in 'RDSvc'. * Cleaned up SQL calls in rivendell_filter(1). --- ChangeLog | 10 ++ docs/tables/recordings.txt | 1 + importers/rivendell_filter.cpp | 215 ++++++++++++++++++--------------- lib/export_bmiemr.cpp | 18 +-- lib/export_soundex.cpp | 11 +- lib/rdlibrary_conf.cpp | 36 +++--- lib/rdlog_line.cpp | 116 +++++++++++------- lib/rdlogedit_conf.cpp | 28 +++-- lib/rdstation.cpp | 138 ++++++++++----------- lib/rdsvc.cpp | 140 ++++++++++----------- rdadmin/createdb.cpp | 5 +- rdcatchd/rdcatchd.cpp | 123 ++++++++++--------- rdcatchd/rdcatchd.h | 1 - rdrepld/rdrepld.cpp | 21 +++- utils/rdrevert/rdrevert.cpp | 5 - 15 files changed, 468 insertions(+), 400 deletions(-) diff --git a/ChangeLog b/ChangeLog index 195f5a03..dbd17c34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16970,3 +16970,13 @@ 2018-05-30 Fred Gleason * Merged pull request #000062, "Optimize CPU usage in caed alsa playback (fixed version)". +2018-05-30 Fred Gleason + * Removed drop of the 'RECORDINGS.SAMPRATE' field from schema + change 285. + * Cleaned up SQL calls in rdcatchd(8). + * Cleaned up SQL calls in 'RDStation'. + * Cleaned up SQL calls in 'RDLibraryConf'. + * Cleaned up SQL calls in 'RDLogeditConf'. + * Cleaned up SQL calls in 'RDLogLine'. + * Cleaned up SQL calls in 'RDSvc'. + * Cleaned up SQL calls in rivendell_filter(1). diff --git a/docs/tables/recordings.txt b/docs/tables/recordings.txt index 1cbfcd30..dec931f3 100644 --- a/docs/tables/recordings.txt +++ b/docs/tables/recordings.txt @@ -47,6 +47,7 @@ ENDDATE_OFFSET int(10) unsigned EVENTDATE_OFFSET int(11) FORMAT int(11) signed 0 = PCM16, 2 = Layer 2, 3 = Layer 3 CHANNELS int(11) signed +SAMPRATE int(11) signed BITRATE int(11) signed QUALITY int(11) signed MACRO_CART int(10) unsigned diff --git a/importers/rivendell_filter.cpp b/importers/rivendell_filter.cpp index 6b105ab4..eeb568d2 100644 --- a/importers/rivendell_filter.cpp +++ b/importers/rivendell_filter.cpp @@ -210,16 +210,38 @@ MainObject::MainObject(QObject *parent) // // Transfer Loop // - sql=QString().sprintf("select NUMBER,TYPE,GROUP_NAME,TITLE,ARTIST,ALBUM,\ - YEAR,ISRC,LABEL,CLIENT,AGENCY,PUBLISHER,COMPOSER,\ - USER_DEFINED,USAGE_CODE,FORCED_LENGTH,AVERAGE_LENGTH,\ - LENGTH_DEVIATION,AVERAGE_SEGUE_LENGTH,\ - AVERAGE_HOOK_LENGTH,CUT_QUANTITY,LAST_CUT_PLAYED,\ - PLAY_ORDER,VALIDITY,\ - ENFORCE_LENGTH,PRESERVE_PITCH,ASYNCRONOUS,\ - OWNER,MACROS,SCHED_CODES from CART \ - where (NUMBER>=%u)&&(NUMBER<=%u)", - start_cartnum,end_cartnum); + sql=QString().sprintf("select ")+ + "NUMBER,"+ // 00 + "TYPE,"+ // 01 + "GROUP_NAME,"+ // 02 + "TITLE,"+ // 03 + "ARTIST,"+ // 04 + "ALBUM,"+ // 05 + "YEAR,"+ // 06 + "LABEL,"+ // 08 + "CLIENT,"+ // 09 + "AGENCY,"+ // 10 + "PUBLISHER,"+ // 11 + "COMPOSER,"+ // 12 + "USER_DEFINED,"+ // 13 + "USAGE_CODE,"+ // 14 + "FORCED_LENGTH,"+ // 15 + "AVERAGE_LENGTH,"+ // 16 + "LENGTH_DEVIATION,"+ // 17 + "AVERAGE_SEGUE_LENGTH,"+ // 18 + "AVERAGE_HOOK_LENGTH,"+ // 19 + "CUT_QUANTITY,"+ // 20 + "LAST_CUT_PLAYED,"+ // 21 + "PLAY_ORDER,"+ // 22 + "VALIDITY,"+ // 23 + "ENFORCE_LENGTH,"+ // 24 + "PRESERVE_PITCH,"+ // 25 + "ASYNCRONOUS,"+ // 26 + "OWNER,"+ // 27 + "MACROS,"+ // 28 + "SCHED_CODES "+ // 29 + "from CART where "+ + QString().sprintf("(NUMBER>=%u)&&(NUMBER<=%u)",start_cartnum,end_cartnum); q=new QSqlQuery(sql,ext_db); while(q->next()) { printf("Transferring cart %06u [%s]...",q->value(0).toUInt(), @@ -262,86 +284,84 @@ MainObject::MainObject(QObject *parent) // // Create new entries // - if(q->value(27).isNull()) { + if(q->value(26).isNull()) { owner="null"; } else { owner=QString().sprintf("\"%s\"", - (const char *)RDEscapeString(q->value(27).toString())); + (const char *)RDEscapeString(q->value(26).toString())); } - sql=QString().sprintf("insert into CART set NUMBER=%u,\ - TYPE=%u,\ - GROUP_NAME=\"%s\",\ - TITLE=\"%s\",\ - ARTIST=\"%s\",\ - ALBUM=\"%s\",\ - YEAR=%s,\ - ISRC=\"%s\",\ - LABEL=\"%s\",\ - CLIENT=\"%s\",\ - AGENCY=\"%s\",\ - PUBLISHER=\"%s\",\ - COMPOSER=\"%s\",\ - USER_DEFINED=\"%s\",\ - USAGE_CODE=\"%s\",\ - FORCED_LENGTH=%u,\ - AVERAGE_LENGTH=%u,\ - LENGTH_DEVIATION=%u,\ - AVERAGE_SEGUE_LENGTH=%u,\ - AVERAGE_HOOK_LENGTH=%u,\ - CUT_QUANTITY=%u,\ - LAST_CUT_PLAYED=%u,\ - PLAY_ORDER=%u,\ - VALIDITY=%u,\ - ENFORCE_LENGTH=\"%s\",\ - PRESERVE_PITCH=\"%s\",\ - ASYNCRONOUS=\"%s\",\ - OWNER=%s,\ - MACROS=\"%s\",\ - SCHED_CODES=\"%s\"", - q->value(0).toUInt(), - q->value(1).toUInt(), - (const char *)RDEscapeString(group), - (const char *)RDEscapeString(q->value(3).toString()), - (const char *)RDEscapeString(q->value(4).toString()), - (const char *)RDEscapeString(q->value(5).toString()), - (const char *)RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd"), - (const char *)RDEscapeString(q->value(7).toString()), - (const char *)RDEscapeString(q->value(8).toString()), - (const char *)RDEscapeString(q->value(9).toString()), - (const char *)RDEscapeString(q->value(10).toString()), - (const char *)RDEscapeString(q->value(11).toString()), - (const char *)RDEscapeString(q->value(12).toString()), - (const char *)RDEscapeString(q->value(13).toString()), - (const char *)RDEscapeString(q->value(14).toString()), - q->value(15).toUInt(), - q->value(16).toUInt(), - q->value(17).toUInt(), - q->value(18).toUInt(), - q->value(19).toUInt(), - q->value(20).toUInt(), - q->value(21).toUInt(), - q->value(22).toUInt(), - q->value(23).toUInt(), - (const char *)RDEscapeString(q->value(24).toString()), - (const char *)RDEscapeString(q->value(25).toString()), - (const char *)RDEscapeString(q->value(26).toString()), - (const char *)owner, - (const char *)RDEscapeString(q->value(28).toString()), - (const char *)RDEscapeString(q->value(29). - toString())); + sql=QString("insert into CART set ")+ + QString().sprintf("NUMBER=%u,",q->value(0).toUInt())+ + QString().sprintf("TYPE=%u,",q->value(1).toUInt())+ + "GROUP_NAME=\""+RDEscapeString(group)+"\","+ + "TITLE=\""+RDEscapeString(q->value(3).toString())+"\","+ + "ARTIST=\""+RDEscapeString(q->value(4).toString())+"\","+ + "ALBUM=\""+RDEscapeString(q->value(5).toString())+"\","+ + "YEAR=%s,"+RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd")+","+ + "LABEL=\""+RDEscapeString(q->value(7).toString())+"\","+ + "CLIENT=\""+RDEscapeString(q->value(8).toString())+"\","+ + "AGENCY=\""+RDEscapeString(q->value(9).toString())+"\","+ + "PUBLISHER=\""+RDEscapeString(q->value(10).toString())+"\","+ + "COMPOSER=\""+RDEscapeString(q->value(11).toString())+"\","+ + "USER_DEFINED=\""+RDEscapeString(q->value(12).toString())+"\","+ + "USAGE_CODE=\""+RDEscapeString(q->value(13).toString())+"\","+ + QString().sprintf("FORCED_LENGTH=%u,",q->value(14).toUInt())+ + QString().sprintf("AVERAGE_LENGTH=%u,",q->value(15).toUInt())+ + QString().sprintf("LENGTH_DEVIATION=%u,",q->value(16).toUInt())+ + QString().sprintf("AVERAGE_SEGUE_LENGTH=%u,",q->value(17).toUInt())+ + QString().sprintf("AVERAGE_HOOK_LENGTH=%u,",q->value(18).toUInt())+ + QString().sprintf("CUT_QUANTITY=%u,",q->value(19).toUInt())+ + QString().sprintf("LAST_CUT_PLAYED=%u,",q->value(20).toUInt())+ + QString().sprintf("PLAY_ORDER=%u,",q->value(21).toUInt())+ + QString().sprintf("VALIDITY=%u,",q->value(22).toUInt())+ + "ENFORCE_LENGTH=\""+RDEscapeString(q->value(23).toString())+"\","+ + "PRESERVE_PITCH=\""+RDEscapeString(q->value(24).toString())+"\","+ + "ASYNCRONOUS=\""+RDEscapeString(q->value(25).toString())+"\","+ + "OWNER="+owner+","+ + "MACROS=\""+RDEscapeString(q->value(27).toString())+"\","+ + "SCHED_CODES=\""+RDEscapeString(q->value(28).toString())+"\""; q1=new QSqlQuery(sql,filter_db); delete q1; - sql=QString().sprintf("select CUT_NAME,EVERGREEN,DESCRIPTION,OUTCUE,ISRC,\ - LENGTH,ORIGIN_DATETIME,START_DATETIME,END_DATETIME,\ - SUN,MON,TUE,WED,THU,FRI,SAT,START_DAYPART,\ - END_DAYPART,ORIGIN_NAME,WEIGHT,VALIDITY,\ - CODING_FORMAT,SAMPLE_RATE,BIT_RATE,CHANNELS,\ - PLAY_GAIN,START_POINT,END_POINT,FADEUP_POINT,\ - FADEDOWN_POINT,SEGUE_START_POINT,SEGUE_END_POINT,\ - SEGUE_GAIN,HOOK_START_POINT,HOOK_END_POINT,\ - TALK_START_POINT,TALK_END_POINT from CUTS \ - where CART_NUMBER=%u",q->value(0).toUInt()); + sql=QString("select ")+ + "CUT_NAME,"+ // 00 + "EVERGREEN,"+ // 01 + "DESCRIPTION,"+ // 02 + "OUTCUE,"+ // 03 + "ISRC,"+ // 04 + "LENGTH,"+ // 05 + "ORIGIN_DATETIME,"+ // 06 + "START_DATETIME,"+ // 07 + "END_DATETIME,"+ // 08 + "SUN,"+ // 09 + "MON,"+ // 10 + "TUE,"+ // 11 + "WED,"+ // 12 + "THU,"+ // 13 + "FRI,"+ // 14 + "SAT,"+ // 15 + "START_DAYPART,"+ // 16 + "END_DAYPART,"+ // 17 + "ORIGIN_NAME,"+ // 18 + "WEIGHT,"+ // 19 + "VALIDITY,"+ // 20 + "CODING_FORMAT,"+ // 21 + "BIT_RATE,"+ // 22 + "CHANNELS,"+ // 23 + "PLAY_GAIN,"+ // 24 + "START_POINT,"+ // 25 + "END_POINT,"+ // 26 + "FADEUP_POINT,"+ // 27 + "FADEDOWN_POINT,"+ // 28 + "SEGUE_START_POINT,"+ // 29 + "SEGUE_END_POINT,"+ // 30 + "SEGUE_GAIN,"+ // 31 + "HOOK_START_POINT,"+ // 32 + "HOOK_END_POINT,"+ // 33 + "TALK_START_POINT,"+ // 34 + "TALK_END_POINT "+ // 35 + "from CUTS where "+ + QString().sprintf("CART_NUMBER=%u",q->value(0).toUInt()); q1=new QSqlQuery(sql,ext_db); while(q1->next()) { if(q1->value(7).isNull()) { @@ -399,21 +419,20 @@ MainObject::MainObject(QObject *parent) QString().sprintf("WEIGHT=%u,",q1->value(19).toUInt())+ QString().sprintf("VALIDITY=%u,",q1->value(20).toUInt())+ QString().sprintf("CODING_FORMAT=%u,",q1->value(21).toUInt())+ - QString().sprintf("SAMPLE_RATE=%u,",q1->value(22).toUInt())+ - QString().sprintf("BIT_RATE=%u,",q1->value(23).toUInt())+ - QString().sprintf("CHANNELS=%u,",q1->value(24).toUInt())+ - QString().sprintf("PLAY_GAIN=%d,",q1->value(25).toInt())+ - QString().sprintf("START_POINT=%d,",q1->value(26).toInt())+ - QString().sprintf("END_POINT=%d,",q1->value(27).toInt())+ - QString().sprintf("FADEUP_POINT=%d,",q1->value(28).toInt())+ - QString().sprintf("FADEDOWN_POINT=%d,",q1->value(29).toInt())+ - QString().sprintf("SEGUE_START_POINT=%d,",q1->value(30).toInt())+ - QString().sprintf("SEGUE_END_POINT=%d,",q1->value(31).toInt())+ - QString().sprintf("SEGUE_GAIN=%d,",q1->value(32).toInt())+ - QString().sprintf("HOOK_START_POINT=%d,",q1->value(33).toInt())+ - QString().sprintf("HOOK_END_POINT=%d,",q1->value(34).toInt())+ - QString().sprintf("TALK_START_POINT=%d,",q1->value(35).toInt())+ - QString().sprintf("TALK_END_POINT=%d where ",q1->value(36).toInt())+ + QString().sprintf("BIT_RATE=%u,",q1->value(22).toUInt())+ + QString().sprintf("CHANNELS=%u,",q1->value(23).toUInt())+ + QString().sprintf("PLAY_GAIN=%d,",q1->value(24).toInt())+ + QString().sprintf("START_POINT=%d,",q1->value(25).toInt())+ + QString().sprintf("END_POINT=%d,",q1->value(26).toInt())+ + QString().sprintf("FADEUP_POINT=%d,",q1->value(27).toInt())+ + QString().sprintf("FADEDOWN_POINT=%d,",q1->value(28).toInt())+ + QString().sprintf("SEGUE_START_POINT=%d,",q1->value(29).toInt())+ + QString().sprintf("SEGUE_END_POINT=%d,",q1->value(30).toInt())+ + QString().sprintf("SEGUE_GAIN=%d,",q1->value(31).toInt())+ + QString().sprintf("HOOK_START_POINT=%d,",q1->value(32).toInt())+ + QString().sprintf("HOOK_END_POINT=%d,",q1->value(33).toInt())+ + QString().sprintf("TALK_START_POINT=%d,",q1->value(34).toInt())+ + QString().sprintf("TALK_END_POINT=%d where ",q1->value(35).toInt())+ "CUT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\""; q2=new QSqlQuery(sql,filter_db); delete q2; diff --git a/lib/export_bmiemr.cpp b/lib/export_bmiemr.cpp index a1b3f021..244ea839 100644 --- a/lib/export_bmiemr.cpp +++ b/lib/export_bmiemr.cpp @@ -59,15 +59,15 @@ bool RDReport::ExportBmiEmr(const QString &filename,const QDate &startdate, report_error_code=RDReport::ErrorCantOpen; return false; } - /* - sql=QString().sprintf("select EVENT_DATETIME,TITLE,ARTIST,COMPOSER,\ - LENGTH,ISRC,USAGE_CODE from `%s_SRT` \ - order by EVENT_DATETIME", - (const char *)mixtable); - */ - sql=QString("select EVENT_DATETIME,TITLE,ARTIST,COMPOSER,")+ - "LENGTH,ISRC,USAGE_CODE from `"+ - mixtable+"_SRT` order by EVENT_DATETIME"; + sql=QString("select ")+ + "EVENT_DATETIME,"+ // 00 + "TITLE,"+ // 01 + "ARTIST,"+ // 02 + "COMPOSER,"+ // 03 + "LENGTH,"+ // 04 + "ISRC,"+ // 05 + "USAGE_CODE "+ // 06 + "from `"+mixtable+"_SRT` order by EVENT_DATETIME"; q=new RDSqlQuery(sql); // diff --git a/lib/export_soundex.cpp b/lib/export_soundex.cpp index 23bd63a0..63e78b6d 100644 --- a/lib/export_soundex.cpp +++ b/lib/export_soundex.cpp @@ -69,9 +69,14 @@ bool RDReport::ExportSoundEx(const QString &filename,const QDate &startdate, // // Roll Up Records // - sql=QString().sprintf("select CART_NUMBER,ARTIST,TITLE,ISRC,ALBUM,LABEL \ - from `%s_SRT` order by CART_NUMBER", - (const char *)mixtable); + sql=QString("select ")+ + "CART_NUMBER,"+ // 00 + "ARTIST,"+ // 01 + "TITLE,"+ // 02 + "ISRC,"+ // 03 + "ALBUM,"+ // 04 + "LABEL "+ // 05 + "from `"+mixtable+"_SRT` order by CART_NUMBER"; q=new RDSqlQuery(sql); while(q->next()) { if(q->value(0).toUInt()==cartnum) { diff --git a/lib/rdlibrary_conf.cpp b/lib/rdlibrary_conf.cpp index 9eebfa52..1b2f2f08 100644 --- a/lib/rdlibrary_conf.cpp +++ b/lib/rdlibrary_conf.cpp @@ -346,30 +346,34 @@ void RDLibraryConf::getSettings(RDSettings *s) const sql=QString("select ")+ "DEFAULT_CHANNELS,"+ // 00 - "DEFAULT_SAMPRATE,"+ // 01 - "DEFAULT_FORMAT,"+ // 02 - "DEFAULT_BITRATE,"+ // 03 - "RIPPER_LEVEL,"+ // 04 - "TRIM_THRESHOLD "+ // 05 + "DEFAULT_FORMAT,"+ // 01 + "DEFAULT_BITRATE,"+ // 02 + "RIPPER_LEVEL,"+ // 03 + "TRIM_THRESHOLD "+ // 04 "from RDLIBRARY where "+ "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); s->clear(); if(q->first()) { s->setChannels(q->value(0).toUInt()); - s->setSampleRate(q->value(1).toUInt()); - switch(q->value(2).toInt()) { - case 0: - s->setFormat(RDSettings::Pcm16); - break; + switch(q->value(1).toInt()) { + case 0: + s->setFormat(RDSettings::Pcm16); + break; - case 1: - s->setFormat(RDSettings::MpegL2); - break; + case 1: + s->setFormat(RDSettings::MpegL2); + break; } - s->setBitRate(q->value(3).toUInt()); - s->setNormalizationLevel(q->value(4).toUInt()); - s->setAutotrimLevel(q->value(5).toUInt()); + s->setBitRate(q->value(2).toUInt()); + s->setNormalizationLevel(q->value(3).toUInt()); + s->setAutotrimLevel(q->value(4).toUInt()); + } + delete q; + sql=QString("select SAMPLE_RATE from SYSTEM"); + q=new RDSqlQuery(sql); + if(q->first()) { + s->setSampleRate(q->value(0).toUInt()); } delete q; } diff --git a/lib/rdlog_line.cpp b/lib/rdlog_line.cpp index c3a8a66b..a8a173ef 100644 --- a/lib/rdlog_line.cpp +++ b/lib/rdlog_line.cpp @@ -1814,23 +1814,39 @@ RDLogLine::State RDLogLine::setEvent(int mach,RDLogLine::TransType next_type, void RDLogLine::loadCart(int cartnum,RDLogLine::TransType next_type,int mach, bool timescale,RDLogLine::TransType type,int len) { - QString sql=QString().sprintf("select CART.TYPE,CART.GROUP_NAME,CART.TITLE,\ - CART.ARTIST,CART.ALBUM,CART.YEAR,CART.ISRC,\ - CART.LABEL,CART.CLIENT,CART.AGENCY,\ - CART.USER_DEFINED,CART.CONDUCTOR,CART.SONG_ID,\ - CART.FORCED_LENGTH,\ - CART.CUT_QUANTITY,CART.LAST_CUT_PLAYED,\ - CART.PLAY_ORDER,CART.START_DATETIME,\ - CART.END_DATETIME,CART.ENFORCE_LENGTH,\ - CART.PRESERVE_PITCH,GROUPS.ENABLE_NOW_NEXT,\ - CART.ASYNCRONOUS,CART.PUBLISHER,\ - CART.COMPOSER,CART.USAGE_CODE,\ - CART.AVERAGE_SEGUE_LENGTH,CART.NOTES,\ - GROUPS.COLOR \ - from CART left join GROUPS on\ - CART.GROUP_NAME=GROUPS.NAME\ - where (CART.NUMBER=%d)", - cartnum); + QString sql=QString("select ")+ + "CART.TYPE,"+ // 00 + "CART.GROUP_NAME,"+ // 01 + "CART.TITLE,"+ // 02 + "CART.ARTIST,"+ // 03 + "CART.ALBUM,"+ // 04 + "CART.YEAR,"+ // 05 + // "CART.ISRC,"+ // 06 + "CART.LABEL,"+ // 06 + "CART.CLIENT,"+ // 07 + "CART.AGENCY,"+ // 08 + "CART.USER_DEFINED,"+ // 09 + "CART.CONDUCTOR,"+ // 10 + "CART.SONG_ID,"+ // 11 + "CART.FORCED_LENGTH,"+ // 12 + "CART.CUT_QUANTITY,"+ // 13 + "CART.LAST_CUT_PLAYED,"+ // 14 + "CART.PLAY_ORDER,"+ // 15 + "CART.START_DATETIME,"+ // 16 + "CART.END_DATETIME,"+ // 17 + "CART.ENFORCE_LENGTH,"+ // 18 + "CART.PRESERVE_PITCH,"+ // 19 + "GROUPS.ENABLE_NOW_NEXT,"+ // 20 + "CART.ASYNCRONOUS,"+ // 21 + "CART.PUBLISHER,"+ // 22 + "CART.COMPOSER,"+ // 23 + "CART.USAGE_CODE,"+ // 24 + "CART.AVERAGE_SEGUE_LENGTH,"+ // 25 + "CART.NOTES,"+ // 26 + "GROUPS.COLOR "+ // 27 + "from CART left join GROUPS "+ + "on CART.GROUP_NAME=GROUPS.NAME where "+ + QString().sprintf("(CART.NUMBER=%d)",cartnum); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -1856,35 +1872,35 @@ void RDLogLine::loadCart(int cartnum,RDLogLine::TransType next_type,int mach, log_artist=q->value(3).toString(); log_album=q->value(4).toString(); log_year=q->value(5).toDate(); - log_isrc=q->value(6).toString(); - log_label=q->value(7).toString(); - log_client=q->value(8).toString(); - log_agency=q->value(9).toString(); - log_user_defined=q->value(10).toString(); - log_conductor=q->value(11).toString(); - log_song_id=q->value(12).toString(); - log_cut_quantity=q->value(14).toUInt(); - log_last_cut_played=q->value(15).toUInt(); - log_play_order=(RDCart::PlayOrder)q->value(16).toInt(); - log_start_datetime=q->value(17).toDateTime(); - log_end_datetime=q->value(18).toDateTime(); - log_preserve_pitch=RDBool(q->value(20).toString()); + // log_isrc=q->value(6).toString(); + log_label=q->value(6).toString(); + log_client=q->value(7).toString(); + log_agency=q->value(8).toString(); + log_user_defined=q->value(9).toString(); + log_conductor=q->value(10).toString(); + log_song_id=q->value(11).toString(); + log_cut_quantity=q->value(13).toUInt(); + log_last_cut_played=q->value(14).toUInt(); + log_play_order=(RDCart::PlayOrder)q->value(15).toInt(); + log_start_datetime=q->value(16).toDateTime(); + log_end_datetime=q->value(17).toDateTime(); + log_preserve_pitch=RDBool(q->value(19).toString()); if(len<0) { - log_forced_length=q->value(13).toUInt(); - log_enforce_length=RDBool(q->value(19).toString()); + log_forced_length=q->value(12).toUInt(); + log_enforce_length=RDBool(q->value(18).toString()); } else { log_forced_length=len; log_enforce_length=true; } - log_now_next_enabled=RDBool(q->value(21).toString()); - log_asyncronous=RDBool(q->value(22).toString()); - log_publisher=q->value(23).toString(); - log_composer=q->value(24).toString(); - log_usage_code=(RDCart::UsageCode)q->value(25).toInt(); - log_average_segue_length=q->value(26).toInt(); - log_cart_notes=q->value(27).toString(); - log_group_color=QColor(q->value(28).toString()); + log_now_next_enabled=RDBool(q->value(20).toString()); + log_asyncronous=RDBool(q->value(21).toString()); + log_publisher=q->value(22).toString(); + log_composer=q->value(23).toString(); + log_usage_code=(RDCart::UsageCode)q->value(24).toInt(); + log_average_segue_length=q->value(25).toInt(); + log_cart_notes=q->value(26).toString(); + log_group_color=QColor(q->value(27).toString()); log_play_source=RDLogLine::UnknownSource; if(type!=RDLogLine::NoTrans) { log_trans_type=type; @@ -1903,13 +1919,19 @@ void RDLogLine::refreshPointers() QString sql; RDSqlQuery *q; - sql=QString().sprintf("select START_POINT,END_POINT,\ - SEGUE_START_POINT,SEGUE_END_POINT,\ - TALK_START_POINT,TALK_END_POINT,\ - FADEUP_POINT,FADEDOWN_POINT,\ - HOOK_START_POINT,HOOK_END_POINT from CUTS\ - where CUT_NAME=\"%s\"", - (const char *)log_cut_name); + sql=QString("select ")+ + "START_POINT,"+ // 00 + "END_POINT,"+ // 01 + "SEGUE_START_POINT,"+ // 02 + "SEGUE_END_POINT,"+ // 03 + "TALK_START_POINT,"+ // 04 + "TALK_END_POINT,"+ // 05 + "FADEUP_POINT,"+ // 06 + "FADEDOWN_POINT,"+ // 07 + "HOOK_START_POINT,"+ // 08 + "HOOK_END_POINT "+ // 09 + "from CUTS where "+ + "CUT_NAME=\""+RDEscapeString(log_cut_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { log_start_point[RDLogLine::CartPointer]=q->value(0).toInt(); diff --git a/lib/rdlogedit_conf.cpp b/lib/rdlogedit_conf.cpp index f1f4dd6d..5984c329 100644 --- a/lib/rdlogedit_conf.cpp +++ b/lib/rdlogedit_conf.cpp @@ -280,17 +280,19 @@ void RDLogeditConf::getSettings(RDSettings *s) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("select DEFAULT_CHANNELS,SAMPRATE,\ - FORMAT,BITRATE,RIPPER_LEVEL,\ - TRIM_THRESHOLD from RDLOGEDIT \ - where STATION=\"%s\"", - (const char *)RDEscapeString(lib_station)); + sql=QString("select ")+ + "DEFAULT_CHANNELS,"+ // 00 + "FORMAT,"+ // 02 + "BITRATE,"+ // 03 + "RIPPER_LEVEL,"+ // 04 + "TRIM_THRESHOLD "+ // 05 + "from RDLOGEDIT where "+ + "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); s->clear(); if(q->first()) { s->setChannels(q->value(0).toUInt()); - s->setSampleRate(q->value(1).toUInt()); - switch(q->value(2).toInt()) { + switch(q->value(1).toInt()) { case 0: s->setFormat(RDSettings::Pcm16); break; @@ -299,9 +301,15 @@ void RDLogeditConf::getSettings(RDSettings *s) const s->setFormat(RDSettings::MpegL2); break; } - s->setBitRate(q->value(3).toUInt()); - s->setNormalizationLevel(q->value(4).toUInt()); - s->setAutotrimLevel(q->value(5).toUInt()); + s->setBitRate(q->value(2).toUInt()); + s->setNormalizationLevel(q->value(3).toUInt()); + s->setAutotrimLevel(q->value(4).toUInt()); + } + delete q; + sql=QString("select SAMPLE_RATE from SYSTEM"); + q=new RDSqlQuery(sql); + if(q->first()) { + s->setSampleRate(q->value(0).toUInt()); } delete q; } diff --git a/lib/rdstation.cpp b/lib/rdstation.cpp index 0c0f0ae4..b2fd5a80 100644 --- a/lib/rdstation.cpp +++ b/lib/rdstation.cpp @@ -954,22 +954,21 @@ bool RDStation::create(const QString &name,QString *err_msg, "TRIM_THRESHOLD,"+ // 06 "DEFAULT_FORMAT,"+ // 07 "DEFAULT_CHANNELS,"+ // 08 - "DEFAULT_SAMPRATE,"+ // 09 - "DEFAULT_LAYER,"+ // 10 - "DEFAULT_BITRATE,"+ // 11 - "DEFAULT_RECORD_MODE,"+ // 12 - "DEFAULT_TRIM_STATE,"+ // 13 - "MAXLENGTH,"+ // 14 - "TAIL_PREROLL,"+ // 15 - "RIPPER_DEVICE,"+ // 16 - "PARANOIA_LEVEL,"+ // 17 - "RIPPER_LEVEL,"+ // 18 - "CDDB_SERVER,"+ // 19 - "READ_ISRC,"+ // 20 - "ENABLE_EDITOR,"+ // 21 - "SRC_CONVERTER,"+ // 22 - "LIMIT_SEARCH,"+ // 23 - "SEARCH_LIMITED "+ // 24 + "DEFAULT_LAYER,"+ // 09 + "DEFAULT_BITRATE,"+ // 10 + "DEFAULT_RECORD_MODE,"+ // 11 + "DEFAULT_TRIM_STATE,"+ // 12 + "MAXLENGTH,"+ // 13 + "TAIL_PREROLL,"+ // 14 + "RIPPER_DEVICE,"+ // 15 + "PARANOIA_LEVEL,"+ // 16 + "RIPPER_LEVEL,"+ // 17 + "CDDB_SERVER,"+ // 18 + "READ_ISRC,"+ // 19 + "ENABLE_EDITOR,"+ // 20 + "SRC_CONVERTER,"+ // 21 + "LIMIT_SEARCH,"+ // 22 + "SEARCH_LIMITED "+ // 23 "from RDLIBRARY where "+ "(STATION=\""+RDEscapeString(exemplar)+"\")&&"+ "(INSTANCE=0)"; @@ -985,22 +984,21 @@ bool RDStation::create(const QString &name,QString *err_msg, QString().sprintf("TRIM_THRESHOLD=%d,",q->value(6).toInt())+ QString().sprintf("DEFAULT_FORMAT=%u,",q->value(7).toUInt())+ QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(8).toUInt())+ - QString().sprintf("DEFAULT_SAMPRATE=%u,",q->value(9).toUInt())+ - QString().sprintf("DEFAULT_LAYER=%u,",q->value(10).toUInt())+ - QString().sprintf("DEFAULT_BITRATE=%u,",q->value(11).toUInt())+ - QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(12).toUInt())+ - "DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(13).toString())+"\","+ - QString().sprintf("MAXLENGTH=%d,",q->value(14).toInt())+ - QString().sprintf("TAIL_PREROLL=%u,",q->value(15).toUInt())+ - "RIPPER_DEVICE=\""+RDEscapeString(q->value(16).toString())+"\","+ - QString().sprintf("PARANOIA_LEVEL=%d,",q->value(17).toInt())+ - QString().sprintf("RIPPER_LEVEL=%d,",q->value(18).toInt())+ - "CDDB_SERVER=\""+RDEscapeString(q->value(19).toString())+"\","+ - "READ_ISRC=\""+RDEscapeString(q->value(20).toString())+"\","+ - "ENABLE_EDITOR=\""+RDEscapeString(q->value(21).toString())+"\","+ - QString().sprintf("SRC_CONVERTER=%d,",q->value(22).toInt())+ - QString().sprintf("LIMIT_SEARCH=%d,",q->value(23).toInt())+ - "SEARCH_LIMITED=\""+RDEscapeString(q->value(24).toString())+"\","+ + QString().sprintf("DEFAULT_LAYER=%u,",q->value(9).toUInt())+ + QString().sprintf("DEFAULT_BITRATE=%u,",q->value(10).toUInt())+ + QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(11).toUInt())+ + "DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(12).toString())+"\","+ + QString().sprintf("MAXLENGTH=%d,",q->value(13).toInt())+ + QString().sprintf("TAIL_PREROLL=%u,",q->value(14).toUInt())+ + "RIPPER_DEVICE=\""+RDEscapeString(q->value(15).toString())+"\","+ + QString().sprintf("PARANOIA_LEVEL=%d,",q->value(16).toInt())+ + QString().sprintf("RIPPER_LEVEL=%d,",q->value(17).toInt())+ + "CDDB_SERVER=\""+RDEscapeString(q->value(18).toString())+"\","+ + "READ_ISRC=\""+RDEscapeString(q->value(19).toString())+"\","+ + "ENABLE_EDITOR=\""+RDEscapeString(q->value(20).toString())+"\","+ + QString().sprintf("SRC_CONVERTER=%d,",q->value(21).toInt())+ + QString().sprintf("LIMIT_SEARCH=%d,",q->value(22).toInt())+ + "SEARCH_LIMITED=\""+RDEscapeString(q->value(23).toString())+"\","+ "STATION=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; @@ -1017,19 +1015,18 @@ bool RDStation::create(const QString &name,QString *err_msg, "OUTPUT_PORT,"+ // 03 "FORMAT,"+ // 04 "DEFAULT_CHANNELS,"+ // 05 - "SAMPRATE,"+ // 06 - "LAYER,"+ // 07 - "BITRATE,"+ // 08 - "MAXLENGTH,"+ // 09 - "TAIL_PREROLL,"+ // 10 - "START_CART,"+ // 11 - "END_CART,"+ // 12 - "REC_START_CART,"+ // 13 - "REC_END_CART,"+ // 14 - "TRIM_THRESHOLD,"+ // 15 - "RIPPER_LEVEL,"+ // 16 - "DEFAULT_TRANS_TYPE,"+ // 17 - "ENABLE_SECOND_START "+ // 18 + "LAYER,"+ // 06 + "BITRATE,"+ // 07 + "MAXLENGTH,"+ // 08 + "TAIL_PREROLL,"+ // 09 + "START_CART,"+ // 10 + "END_CART,"+ // 11 + "REC_START_CART,"+ // 12 + "REC_END_CART,"+ // 13 + "TRIM_THRESHOLD,"+ // 14 + "RIPPER_LEVEL,"+ // 15 + "DEFAULT_TRANS_TYPE,"+ // 16 + "ENABLE_SECOND_START "+ // 17 "from RDLOGEDIT where "+ "STATION=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); @@ -1041,20 +1038,19 @@ bool RDStation::create(const QString &name,QString *err_msg, QString().sprintf("OUTPUT_PORT=%d,",q->value(3).toInt())+ QString().sprintf("FORMAT=%u,",q->value(4).toUInt())+ QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(5).toUInt())+ - QString().sprintf("SAMPRATE=%u,",q->value(6).toUInt())+ - QString().sprintf("LAYER=%u,",q->value(7).toUInt())+ - QString().sprintf("BITRATE=%u,",q->value(8).toUInt())+ - QString().sprintf("MAXLENGTH=%d,",q->value(9).toInt())+ - QString().sprintf("TAIL_PREROLL=%u,",q->value(10).toUInt())+ + QString().sprintf("LAYER=%u,",q->value(6).toUInt())+ + QString().sprintf("BITRATE=%u,",q->value(7).toUInt())+ + QString().sprintf("MAXLENGTH=%d,",q->value(8).toInt())+ + QString().sprintf("TAIL_PREROLL=%u,",q->value(9).toUInt())+ "STATION=\""+RDEscapeString(name)+"\","+ - QString().sprintf("START_CART=%u,",q->value(11).toUInt())+ - QString().sprintf("END_CART=%u,",q->value(12).toUInt())+ - QString().sprintf("REC_START_CART=%u,",q->value(13).toUInt())+ - QString().sprintf("REC_END_CART=%u,",q->value(14).toUInt())+ - QString().sprintf("TRIM_THRESHOLD=%d,",q->value(15).toInt())+ - QString().sprintf("RIPPER_LEVEL=%d,",q->value(16).toInt())+ - QString().sprintf("DEFAULT_TRANS_TYPE=%d,",q->value(17).toInt())+ - "ENABLE_SECOND_START=\""+RDEscapeString(q->value(18).toString())+"\""; + QString().sprintf("START_CART=%u,",q->value(10).toUInt())+ + QString().sprintf("END_CART=%u,",q->value(11).toUInt())+ + QString().sprintf("REC_START_CART=%u,",q->value(12).toUInt())+ + QString().sprintf("REC_END_CART=%u,",q->value(13).toUInt())+ + QString().sprintf("TRIM_THRESHOLD=%d,",q->value(14).toInt())+ + QString().sprintf("RIPPER_LEVEL=%d,",q->value(15).toInt())+ + QString().sprintf("DEFAULT_TRANS_TYPE=%d,",q->value(16).toInt())+ + "ENABLE_SECOND_START=\""+RDEscapeString(q->value(17).toString())+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1072,13 +1068,12 @@ bool RDStation::create(const QString &name,QString *err_msg, "PORT_TYPE,"+ // 05 "DEFAULT_FORMAT,"+ // 06 "DEFAULT_CHANNELS,"+ // 07 - "DEFAULT_SAMPRATE,"+ // 08 - "DEFAULT_BITRATE,"+ // 09 - "DEFAULT_THRESHOLD,"+ // 10 - "SWITCH_STATION,"+ // 11 - "SWITCH_MATRIX,"+ // 12 - "SWITCH_OUTPUT,"+ // 13 - "SWITCH_DELAY "+ // 14 + "DEFAULT_BITRATE,"+ // 08 + "DEFAULT_THRESHOLD,"+ // 09 + "SWITCH_STATION,"+ // 10 + "SWITCH_MATRIX,"+ // 11 + "SWITCH_OUTPUT,"+ // 12 + "SWITCH_DELAY "+ // 13 "from DECKS where "+ "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); @@ -1092,13 +1087,12 @@ bool RDStation::create(const QString &name,QString *err_msg, "PORT_TYPE=\""+RDEscapeString(q->value(5).toString())+"\","+ QString().sprintf("DEFAULT_FORMAT=%d,",q->value(6).toInt())+ QString().sprintf("DEFAULT_CHANNELS=%d,",q->value(7).toInt())+ - QString().sprintf("DEFAULT_SAMPRATE=%d,",q->value(8).toInt())+ - QString().sprintf("DEFAULT_BITRATE=%d,",q->value(9).toInt())+ - QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(10).toInt())+ - "SWITCH_STATION=\""+RDEscapeString(q->value(11).toString())+"\","+ - QString().sprintf("SWITCH_MATRIX=%d,",q->value(12).toInt())+ - QString().sprintf("SWITCH_OUTPUT=%d,",q->value(13).toInt())+ - QString().sprintf("SWITCH_DELAY=%d,",q->value(14).toInt())+ + QString().sprintf("DEFAULT_BITRATE=%d,",q->value(8).toInt())+ + QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(9).toInt())+ + "SWITCH_STATION=\""+RDEscapeString(q->value(10).toString())+"\","+ + QString().sprintf("SWITCH_MATRIX=%d,",q->value(11).toInt())+ + QString().sprintf("SWITCH_OUTPUT=%d,",q->value(12).toInt())+ + QString().sprintf("SWITCH_DELAY=%d,",q->value(13).toInt())+ "STATION_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index b1a80e96..22b2c857 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -1155,43 +1155,39 @@ bool RDSvc::create(const QString &name,QString *err_msg, "TFC_WIN_PATH,"+ // 11 "TFC_CART_OFFSET,"+ // 12 "TFC_CART_LENGTH,"+ // 13 - "TFC_START_OFFSET,"+ // 14 - "TFC_START_LENGTH,"+ // 15 - "TFC_LENGTH_OFFSET,"+ // 16 - "TFC_LENGTH_LENGTH,"+ // 17 - "TFC_HOURS_OFFSET,"+ // 18 - "TFC_HOURS_LENGTH,"+ // 19 - "TFC_MINUTES_OFFSET,"+ // 20 - "TFC_MINUTES_LENGTH,"+ // 21 - "TFC_SECONDS_OFFSET,"+ // 22 - "TFC_SECONDS_LENGTH,"+ // 23 - "TFC_DATA_OFFSET,"+ // 24 - "TFC_DATA_LENGTH,"+ // 25 - "TFC_EVENT_ID_OFFSET,"+ // 26 - "TFC_EVENT_ID_LENGTH,"+ // 27 - "TFC_ANNC_TYPE_OFFSET,"+ // 28 - "TFC_ANNC_TYPE_LENGTH,"+ // 29 - "MUS_IMPORT_TEMPLATE,"+ // 30 - "MUS_PATH,"+ // 31 - "MUS_WIN_PATH,"+ // 32 - "MUS_CART_OFFSET,"+ // 33 - "MUS_CART_LENGTH,"+ // 34 - "MUS_START_OFFSET,"+ // 35 - "MUS_START_LENGTH,"+ // 36 - "MUS_LENGTH_OFFSET,"+ // 37 - "MUS_LENGTH_LENGTH,"+ // 38 - "MUS_HOURS_OFFSET,"+ // 39 - "MUS_HOURS_LENGTH,"+ // 40 - "MUS_MINUTES_OFFSET,"+ // 41 - "MUS_MINUTES_LENGTH,"+ // 42 - "MUS_SECONDS_OFFSET,"+ // 43 - "MUS_SECONDS_LENGTH,"+ // 44 - "MUS_DATA_OFFSET,"+ // 45 - "MUS_DATA_LENGTH,"+ // 46 - "MUS_EVENT_ID_OFFSET,"+ // 47 - "MUS_EVENT_ID_LENGTH,"+ // 48 - "MUS_ANNC_TYPE_OFFSET,"+ // 49 - "MUS_ANNC_TYPE_LENGTH "+ // 50 + "TFC_LENGTH_OFFSET,"+ // 14 + "TFC_LENGTH_LENGTH,"+ // 15 + "TFC_HOURS_OFFSET,"+ // 16 + "TFC_HOURS_LENGTH,"+ // 17 + "TFC_MINUTES_OFFSET,"+ // 18 + "TFC_MINUTES_LENGTH,"+ // 19 + "TFC_SECONDS_OFFSET,"+ // 20 + "TFC_SECONDS_LENGTH,"+ // 21 + "TFC_DATA_OFFSET,"+ // 22 + "TFC_DATA_LENGTH,"+ // 23 + "TFC_EVENT_ID_OFFSET,"+ // 24 + "TFC_EVENT_ID_LENGTH,"+ // 25 + "TFC_ANNC_TYPE_OFFSET,"+ // 26 + "TFC_ANNC_TYPE_LENGTH,"+ // 27 + "MUS_IMPORT_TEMPLATE,"+ // 28 + "MUS_PATH,"+ // 29 + "MUS_WIN_PATH,"+ // 30 + "MUS_CART_OFFSET,"+ // 31 + "MUS_CART_LENGTH,"+ // 32 + "MUS_LENGTH_OFFSET,"+ // 33 + "MUS_LENGTH_LENGTH,"+ // 34 + "MUS_HOURS_OFFSET,"+ // 35 + "MUS_HOURS_LENGTH,"+ // 36 + "MUS_MINUTES_OFFSET,"+ // 37 + "MUS_MINUTES_LENGTH,"+ // 38 + "MUS_SECONDS_OFFSET,"+ // 39 + "MUS_SECONDS_LENGTH,"+ // 40 + "MUS_DATA_OFFSET,"+ // 41 + "MUS_DATA_LENGTH,"+ // 42 + "MUS_EVENT_ID_OFFSET,"+ // 43 + "MUS_EVENT_ID_LENGTH,"+ // 44 + "MUS_ANNC_TYPE_OFFSET,"+ // 46 + "MUS_ANNC_TYPE_LENGTH "+ // 47 " from SERVICES where NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); if(q->first()) { @@ -1210,43 +1206,39 @@ bool RDSvc::create(const QString &name,QString *err_msg, "TFC_WIN_PATH=\""+RDEscapeString(q->value(11).toString())+"\","+ QString().sprintf("TFC_CART_OFFSET=%d,",q->value(12).toInt())+ QString().sprintf("TFC_CART_LENGTH=%d,",q->value(13).toInt())+ - QString().sprintf("TFC_START_OFFSET=%d,",q->value(14).toInt())+ - QString().sprintf("TFC_START_LENGTH=%d,",q->value(15).toInt())+ - QString().sprintf("TFC_LENGTH_OFFSET=%d,",q->value(16).toInt())+ - QString().sprintf("TFC_LENGTH_LENGTH=%d,",q->value(17).toInt())+ - QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(18).toInt())+ - QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(19).toInt())+ - QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(20).toInt())+ - QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(21).toInt())+ - QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(22).toInt())+ - QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(23).toInt())+ - QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(24).toInt())+ - QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(25).toInt())+ - QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(26).toInt())+ - QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(27).toInt())+ - QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(28).toInt())+ - QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(29).toInt())+ - "MUS_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(30).toString())+"\","+ - "MUS_PATH=\""+RDEscapeString(q->value(31).toString())+"\","+ - "MUS_WIN_PATH=\""+RDEscapeString(q->value(32).toString())+"\","+ - QString().sprintf("MUS_CART_OFFSET=%d,",q->value(33).toInt())+ - QString().sprintf("MUS_CART_LENGTH=%d,",q->value(34).toInt())+ - QString().sprintf("MUS_START_OFFSET=%d,",q->value(35).toInt())+ - QString().sprintf("MUS_START_LENGTH=%d,",q->value(36).toInt())+ - QString().sprintf("MUS_LENGTH_OFFSET=%d,",q->value(37).toInt())+ - QString().sprintf("MUS_LENGTH_LENGTH=%d,",q->value(38).toInt())+ - QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(39).toInt())+ - QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(40).toInt())+ - QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(41).toInt())+ - QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(42).toInt())+ - QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(43).toInt())+ - QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(44).toInt())+ - QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(45).toInt())+ - QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(46).toInt())+ - QString().sprintf("MUS_EVENT_ID_OFFSET=%d,",q->value(47).toInt())+ - QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(48).toInt())+ - QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(49).toInt())+ - QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(50).toInt())+ + QString().sprintf("TFC_LENGTH_OFFSET=%d,",q->value(14).toInt())+ + QString().sprintf("TFC_LENGTH_LENGTH=%d,",q->value(15).toInt())+ + QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(16).toInt())+ + QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(17).toInt())+ + QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(18).toInt())+ + QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(19).toInt())+ + QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(20).toInt())+ + QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(21).toInt())+ + QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(22).toInt())+ + QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(23).toInt())+ + QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(24).toInt())+ + QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(25).toInt())+ + QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(26).toInt())+ + QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(27).toInt())+ + "MUS_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(28).toString())+"\","+ + "MUS_PATH=\""+RDEscapeString(q->value(29).toString())+"\","+ + "MUS_WIN_PATH=\""+RDEscapeString(q->value(30).toString())+"\","+ + QString().sprintf("MUS_CART_OFFSET=%d,",q->value(31).toInt())+ + QString().sprintf("MUS_CART_LENGTH=%d,",q->value(32).toInt())+ + QString().sprintf("MUS_LENGTH_OFFSET=%d,",q->value(33).toInt())+ + QString().sprintf("MUS_LENGTH_LENGTH=%d,",q->value(34).toInt())+ + QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(35).toInt())+ + QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(36).toInt())+ + QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(37).toInt())+ + QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(39).toInt())+ + QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(39).toInt())+ + QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(40).toInt())+ + QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(41).toInt())+ + QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(42).toInt())+ + QString().sprintf("MUS_EVENT_ID_OFFSET=%d,",q->value(43).toInt())+ + QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(44).toInt())+ + QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(45).toInt())+ + QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(46).toInt())+ "NAME=\""+RDEscapeString(name)+"\""; delete q; q=new RDSqlQuery(sql); diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index 82a47085..9fda48c0 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -849,6 +849,7 @@ bool CreateDb(QString name,QString pwd,RDConfig *config) "ENDDATE_OFFSET int unsigned default 0,"+ "EVENTDATE_OFFSET int default 0,"+ "FORMAT int default 0,"+ + "SAMPRATE int unsigned default 44100,"+ "CHANNELS int default 2,"+ "BITRATE int default 0,"+ "QUALITY int default 0,"+ @@ -8466,10 +8467,6 @@ int UpdateDb(int ver,RDConfig *config) q=new RDSqlQuery(sql,false); delete q; - sql=QString("alter table RECORDINGS drop column SAMPRATE"); - q=new RDSqlQuery(sql,false); - delete q; - sql=QString("alter table SERVICES drop column TFC_START_OFFSET"); q=new RDSqlQuery(sql,false); delete q; diff --git a/rdcatchd/rdcatchd.cpp b/rdcatchd/rdcatchd.cpp index b5fa5542..d93c504d 100644 --- a/rdcatchd/rdcatchd.cpp +++ b/rdcatchd/rdcatchd.cpp @@ -274,10 +274,13 @@ MainObject::MainObject(QObject *parent) // Sound Initialization // RDSetMixerPorts(rda->config()->stationName(),rda->cae()); - sql=QString().sprintf("select CHANNEL,CARD_NUMBER,PORT_NUMBER from DECKS \ - where (STATION_NAME=\"%s\")&&\ - (CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)", - (const char *)rda->config()->stationName()); + sql=QString("select ")+ + "CHANNEL,"+ // 00 + "CARD_NUMBER,"+ // 01 + "PORT_NUMBER "+ // 02 + "from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + "(CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)"; q=new RDSqlQuery(sql); while(q->next()) { if((q->value(1).toInt()>=0)&&(q->value(2).toInt()>=0)) { @@ -290,13 +293,15 @@ MainObject::MainObject(QObject *parent) // // Initialize Monitor Passthroughs // - sql=QString().sprintf("select CARD_NUMBER,PORT_NUMBER,\ - MON_PORT_NUMBER,CHANNEL from DECKS\ - where (STATION_NAME=\"%s\")&&(CHANNEL<=%d)&&\ - (CARD_NUMBER>=0)&&(MON_PORT_NUMBER>=0)&&\ - (DEFAULT_MONITOR_ON=\"Y\")", - (const char *)rda->config()->stationName(), - MAX_DECKS); + sql=QString("select ")+ + "CARD_NUMBER,"+ // 00 + "PORT_NUMBER,"+ // 01 + "MON_PORT_NUMBER,"+ // 02 + "CHANNEL from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + QString().sprintf("(CHANNEL<=%d) &&",MAX_DECKS)+ + "(CARD_NUMBER>=0)&&(MON_PORT_NUMBER>=0) && "+ + "(DEFAULT_MONITOR_ON=\"Y\")"; q=new RDSqlQuery(sql); while(q->next()) { rda->cae()->setPassthroughVolume(q->value(0).toInt(),q->value(1).toInt(), @@ -373,23 +378,19 @@ MainObject::MainObject(QObject *parent) // // Mark Interrupted Events // - sql=QString().sprintf("update RECORDINGS set EXIT_CODE=%d\ - where ((EXIT_CODE=%d)||(EXIT_CODE=%d))||\ - (EXIT_CODE=%d)&&(STATION_NAME=\"%s\")", - RDRecording::Interrupted, - RDRecording::Uploading, - RDRecording::Downloading, - RDRecording::RecordActive, - (const char *)rda->config()->stationName()); + sql=QString("update RECORDINGS set ")+ + QString().sprintf("EXIT_CODE=%d where ",RDRecording::Interrupted)+ + QString().sprintf("((EXIT_CODE=%d)||",RDRecording::Uploading)+ + QString().sprintf("(EXIT_CODE=%d))||",RDRecording::Downloading)+ + QString().sprintf("(EXIT_CODE=%d)&&",RDRecording::RecordActive)+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")"; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("update RECORDINGS set EXIT_CODE=%d\ - where ((EXIT_CODE=%d)||(EXIT_CODE=%d))&&\ - (STATION_NAME=\"%s\")", - RDRecording::Ok, - RDRecording::Waiting, - RDRecording::PlayActive, - (const char *)rda->config()->stationName()); + sql=QString("update RECORDINGS set ")+ + QString().sprintf("EXIT_CODE=%d where ",RDRecording::Ok)+ + QString().sprintf("((EXIT_CODE=%d)||",RDRecording::Waiting)+ + QString().sprintf("(EXIT_CODE=%d))&&",RDRecording::PlayActive)+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")"; q=new RDSqlQuery(sql); delete q; @@ -634,12 +635,16 @@ void MainObject::engineData(int id) } catch_record_card[catch_events[event].channel()-1]=-1; catch_record_stream[catch_events[event].channel()-1]=-1; - sql=QString().sprintf("select CARD_NUMBER,PORT_NUMBER,\ - SWITCH_STATION,SWITCH_MATRIX,SWITCH_OUTPUT, \ - SWITCH_DELAY from DECKS \ - where (STATION_NAME=\"%s\")&&(CHANNEL=%d)", - (const char *)rda->config()->stationName(), - catch_events[event].channel()); + sql=QString("select ")+ + "CARD_NUMBER,"+ // 00 + "PORT_NUMBER,"+ // 01 + "SWITCH_STATION,"+ // 02 + "SWITCH_MATRIX,"+ // 03 + "SWITCH_OUTPUT,"+ // 04 + "SWITCH_DELAY "+ // 05 + "from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",catch_events[event].channel()); q=new RDSqlQuery(sql); if(q->first()) { catch_record_card[catch_events[event].channel()-1]= @@ -719,10 +724,13 @@ void MainObject::engineData(int id) } catch_playout_card[catch_events[event].channel()-129]=-1; catch_playout_stream[catch_events[event].channel()-129]=-1; - sql=QString().sprintf("select CARD_NUMBER,PORT_NUMBER,PORT_NUMBER \ - from DECKS where (STATION_NAME=\"%s\")&&(CHANNEL=%d)", - (const char *)rda->config()->stationName(), - catch_events[event].channel()); + sql=QString("select ")+ + "CARD_NUMBER,"+ // 00 + "PORT_NUMBER,"+ // 01 + "PORT_NUMBER "+ // 02 + "from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",catch_events[event].channel()); q=new RDSqlQuery(sql); if(q->first()) { catch_playout_id[catch_events[event].channel()-129]=id; @@ -777,20 +785,22 @@ void MainObject::engineData(int id) // // Load Import Parameters // - sql=QString().sprintf("select DEFAULT_FORMAT,DEFAULT_CHANNELS,\ - DEFAULT_SAMPRATE,DEFAULT_LAYER,DEFAULT_BITRATE, \ - RIPPER_LEVEL \ - from RDLIBRARY where STATION=\"%s\"", - (const char *)rda->config()->stationName()); + sql=QString("select ")+ + "DEFAULT_FORMAT,"+ // 00 + "DEFAULT_CHANNELS,"+ // 01 + "DEFAULT_LAYER,"+ // 02 + "DEFAULT_BITRATE,"+ // 03 + "RIPPER_LEVEL "+ // 04 + "from RDLIBRARY where "+ + "STATION=\""+RDEscapeString(rda->config()->stationName())+"\""; q=new RDSqlQuery(sql); if(q->first()) { catch_default_format=q->value(0).toInt(); catch_default_channels=q->value(1).toInt(); - catch_default_samplerate=q->value(2).toInt(); - catch_default_layer=q->value(3).toInt(); - catch_default_bitrate=q->value(4).toInt(); - catch_ripper_level=q->value(5).toInt(); + catch_default_layer=q->value(2).toInt(); + catch_default_bitrate=q->value(3).toInt(); + catch_ripper_level=q->value(4).toInt(); } else { LogLine(RDConfig::LogWarning, @@ -1933,6 +1943,7 @@ QString MainObject::LoadEventSql() "FORMAT," // 19 "CHANNELS,"+ // 20 "SAMPRATE,"+ // 21 + "BITRATE,"+ // 22 "MACRO_CART,"+ // 23 "SWITCH_INPUT,"+ // 24 @@ -2009,14 +2020,13 @@ void MainObject::LoadEvent(RDSqlQuery *q,CatchEvent *e,bool add) } e->setChannels(q->value(20).toInt()); e->setSampleRate(rda->system()->sampleRate()); - //e->setSampleRate(q->value(21).toInt()); e->setBitrate(q->value(22).toInt()); e->setMacroCart(q->value(23).toInt()); e->setSwitchInput(q->value(24).toInt()); e->setSwitchOutput(q->value(25).toInt()); e->setStatus(RDDeck::Idle); e->setOneShot(RDBool(q->value(26).toString())); - e->setStartType((RDRecording::StartType)q->value(27).toInt()); + e->setStartType((RDRecording::StartType)q->value(26).toInt()); e->setStartLength(q->value(28).toInt()); e->setStartMatrix(q->value(29).toInt()); e->setStartLine(q->value(30).toInt()); @@ -2064,11 +2074,14 @@ void MainObject::LoadDeckList() for(int i=0;i0)&&(CHANNEL<9)", - (const char *)rda->config()->stationName()); + QString sql=QString("select ")+ + "CHANNEL,"+ // 00 + "CARD_NUMBER,"+ // 01 + "PORT_NUMBER,"+ // 02 + "MON_PORT_NUMBER "+ // 03 + "from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + "(CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { status[q->value(0).toUInt()-1]=RDDeck::Idle; @@ -2098,9 +2111,9 @@ void MainObject::LoadDeckList() for(int i=0;i128)&&(CHANNEL<137)", - (const char *)rda->config()->stationName()); + sql=QString("select CHANNEL from DECKS where ")+ + "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+ + "(CARD_NUMBER!=-1)&&(CHANNEL>128)&&(CHANNEL<137)"; q=new RDSqlQuery(sql); while(q->next()) { status[q->value(0).toUInt()-129]=RDDeck::Idle; diff --git a/rdcatchd/rdcatchd.h b/rdcatchd/rdcatchd.h index dbf7de2d..f2050596 100644 --- a/rdcatchd/rdcatchd.h +++ b/rdcatchd/rdcatchd.h @@ -237,7 +237,6 @@ class MainObject : public QObject unsigned catch_heartbeat_cart; int catch_default_format; - int catch_default_samplerate; int catch_default_channels; int catch_default_layer; int catch_default_bitrate; diff --git a/rdrepld/rdrepld.cpp b/rdrepld/rdrepld.cpp index 669a5e51..3112a8ea 100644 --- a/rdrepld/rdrepld.cpp +++ b/rdrepld/rdrepld.cpp @@ -224,12 +224,21 @@ void MainObject::LoadReplicators() RDSqlQuery *q; ReplConfig *config; - sql=QString(). - sprintf("select NAME,TYPE_ID,FORMAT,CHANNELS,SAMPRATE,\ - BITRATE,QUALITY,URL,URL_USERNAME,URL_PASSWORD,\ - ENABLE_METADATA,NORMALIZATION_LEVEL from \ - REPLICATORS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(rda->config()->stationName())); + sql=QString("select ")+ + "NAME,"+ // 00 + "TYPE_ID,"+ // 01 + "FORMAT,"+ // 02 + "CHANNELS,"+ // 03 + "SAMPRATE,"+ // 04 + "BITRATE,"+ // 05 + "QUALITY,"+ // 06 + "URL,"+ // 07 + "URL_USERNAME,"+ // 08 + "URL_PASSWORD,"+ // 09 + "ENABLE_METADATA,"+ // 10 + "NORMALIZATION_LEVEL "+ // 11 + "from REPLICATORS where "+ + "STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\""; q=new RDSqlQuery(sql); while(q->next()) { config=new ReplConfig(); diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index 11b0c899..bf2b0990 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -1407,11 +1407,6 @@ void MainObject::Revert285() const q=new RDSqlQuery(sql,false); delete q; - sql=QString("alter table RECORDINGS add ")+ - "column SAMPRATE int unsigned default 44100 after CHANNELS"; - q=new RDSqlQuery(sql,false); - delete q; - sql=QString("alter table SERVICES add ")+ "column TFC_START_OFFSET int after TFC_TITLE_LENGTH"; q=new RDSqlQuery(sql,false);