2018-05-30 Fred Gleason <fredg@paravelsystems.com>

* 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).
This commit is contained in:
Fred Gleason 2018-05-31 00:09:35 +00:00
parent 37ad8d7094
commit 32b3d1775c
15 changed files with 468 additions and 400 deletions

View File

@ -16970,3 +16970,13 @@
2018-05-30 Fred Gleason <fredg@paravelsystems.com> 2018-05-30 Fred Gleason <fredg@paravelsystems.com>
* Merged pull request #000062, "Optimize CPU usage in caed alsa * Merged pull request #000062, "Optimize CPU usage in caed alsa
playback (fixed version)". playback (fixed version)".
2018-05-30 Fred Gleason <fredg@paravelsystems.com>
* 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).

View File

@ -47,6 +47,7 @@ ENDDATE_OFFSET int(10) unsigned
EVENTDATE_OFFSET int(11) EVENTDATE_OFFSET int(11)
FORMAT int(11) signed 0 = PCM16, 2 = Layer 2, 3 = Layer 3 FORMAT int(11) signed 0 = PCM16, 2 = Layer 2, 3 = Layer 3
CHANNELS int(11) signed CHANNELS int(11) signed
SAMPRATE int(11) signed
BITRATE int(11) signed BITRATE int(11) signed
QUALITY int(11) signed QUALITY int(11) signed
MACRO_CART int(10) unsigned MACRO_CART int(10) unsigned

View File

@ -210,16 +210,38 @@ MainObject::MainObject(QObject *parent)
// //
// Transfer Loop // Transfer Loop
// //
sql=QString().sprintf("select NUMBER,TYPE,GROUP_NAME,TITLE,ARTIST,ALBUM,\ sql=QString().sprintf("select ")+
YEAR,ISRC,LABEL,CLIENT,AGENCY,PUBLISHER,COMPOSER,\ "NUMBER,"+ // 00
USER_DEFINED,USAGE_CODE,FORCED_LENGTH,AVERAGE_LENGTH,\ "TYPE,"+ // 01
LENGTH_DEVIATION,AVERAGE_SEGUE_LENGTH,\ "GROUP_NAME,"+ // 02
AVERAGE_HOOK_LENGTH,CUT_QUANTITY,LAST_CUT_PLAYED,\ "TITLE,"+ // 03
PLAY_ORDER,VALIDITY,\ "ARTIST,"+ // 04
ENFORCE_LENGTH,PRESERVE_PITCH,ASYNCRONOUS,\ "ALBUM,"+ // 05
OWNER,MACROS,SCHED_CODES from CART \ "YEAR,"+ // 06
where (NUMBER>=%u)&&(NUMBER<=%u)", "LABEL,"+ // 08
start_cartnum,end_cartnum); "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); q=new QSqlQuery(sql,ext_db);
while(q->next()) { while(q->next()) {
printf("Transferring cart %06u [%s]...",q->value(0).toUInt(), printf("Transferring cart %06u [%s]...",q->value(0).toUInt(),
@ -262,86 +284,84 @@ MainObject::MainObject(QObject *parent)
// //
// Create new entries // Create new entries
// //
if(q->value(27).isNull()) { if(q->value(26).isNull()) {
owner="null"; owner="null";
} }
else { else {
owner=QString().sprintf("\"%s\"", 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,\ sql=QString("insert into CART set ")+
TYPE=%u,\ QString().sprintf("NUMBER=%u,",q->value(0).toUInt())+
GROUP_NAME=\"%s\",\ QString().sprintf("TYPE=%u,",q->value(1).toUInt())+
TITLE=\"%s\",\ "GROUP_NAME=\""+RDEscapeString(group)+"\","+
ARTIST=\"%s\",\ "TITLE=\""+RDEscapeString(q->value(3).toString())+"\","+
ALBUM=\"%s\",\ "ARTIST=\""+RDEscapeString(q->value(4).toString())+"\","+
YEAR=%s,\ "ALBUM=\""+RDEscapeString(q->value(5).toString())+"\","+
ISRC=\"%s\",\ "YEAR=%s,"+RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd")+","+
LABEL=\"%s\",\ "LABEL=\""+RDEscapeString(q->value(7).toString())+"\","+
CLIENT=\"%s\",\ "CLIENT=\""+RDEscapeString(q->value(8).toString())+"\","+
AGENCY=\"%s\",\ "AGENCY=\""+RDEscapeString(q->value(9).toString())+"\","+
PUBLISHER=\"%s\",\ "PUBLISHER=\""+RDEscapeString(q->value(10).toString())+"\","+
COMPOSER=\"%s\",\ "COMPOSER=\""+RDEscapeString(q->value(11).toString())+"\","+
USER_DEFINED=\"%s\",\ "USER_DEFINED=\""+RDEscapeString(q->value(12).toString())+"\","+
USAGE_CODE=\"%s\",\ "USAGE_CODE=\""+RDEscapeString(q->value(13).toString())+"\","+
FORCED_LENGTH=%u,\ QString().sprintf("FORCED_LENGTH=%u,",q->value(14).toUInt())+
AVERAGE_LENGTH=%u,\ QString().sprintf("AVERAGE_LENGTH=%u,",q->value(15).toUInt())+
LENGTH_DEVIATION=%u,\ QString().sprintf("LENGTH_DEVIATION=%u,",q->value(16).toUInt())+
AVERAGE_SEGUE_LENGTH=%u,\ QString().sprintf("AVERAGE_SEGUE_LENGTH=%u,",q->value(17).toUInt())+
AVERAGE_HOOK_LENGTH=%u,\ QString().sprintf("AVERAGE_HOOK_LENGTH=%u,",q->value(18).toUInt())+
CUT_QUANTITY=%u,\ QString().sprintf("CUT_QUANTITY=%u,",q->value(19).toUInt())+
LAST_CUT_PLAYED=%u,\ QString().sprintf("LAST_CUT_PLAYED=%u,",q->value(20).toUInt())+
PLAY_ORDER=%u,\ QString().sprintf("PLAY_ORDER=%u,",q->value(21).toUInt())+
VALIDITY=%u,\ QString().sprintf("VALIDITY=%u,",q->value(22).toUInt())+
ENFORCE_LENGTH=\"%s\",\ "ENFORCE_LENGTH=\""+RDEscapeString(q->value(23).toString())+"\","+
PRESERVE_PITCH=\"%s\",\ "PRESERVE_PITCH=\""+RDEscapeString(q->value(24).toString())+"\","+
ASYNCRONOUS=\"%s\",\ "ASYNCRONOUS=\""+RDEscapeString(q->value(25).toString())+"\","+
OWNER=%s,\ "OWNER="+owner+","+
MACROS=\"%s\",\ "MACROS=\""+RDEscapeString(q->value(27).toString())+"\","+
SCHED_CODES=\"%s\"", "SCHED_CODES=\""+RDEscapeString(q->value(28).toString())+"\"";
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()));
q1=new QSqlQuery(sql,filter_db); q1=new QSqlQuery(sql,filter_db);
delete q1; delete q1;
sql=QString().sprintf("select CUT_NAME,EVERGREEN,DESCRIPTION,OUTCUE,ISRC,\ sql=QString("select ")+
LENGTH,ORIGIN_DATETIME,START_DATETIME,END_DATETIME,\ "CUT_NAME,"+ // 00
SUN,MON,TUE,WED,THU,FRI,SAT,START_DAYPART,\ "EVERGREEN,"+ // 01
END_DAYPART,ORIGIN_NAME,WEIGHT,VALIDITY,\ "DESCRIPTION,"+ // 02
CODING_FORMAT,SAMPLE_RATE,BIT_RATE,CHANNELS,\ "OUTCUE,"+ // 03
PLAY_GAIN,START_POINT,END_POINT,FADEUP_POINT,\ "ISRC,"+ // 04
FADEDOWN_POINT,SEGUE_START_POINT,SEGUE_END_POINT,\ "LENGTH,"+ // 05
SEGUE_GAIN,HOOK_START_POINT,HOOK_END_POINT,\ "ORIGIN_DATETIME,"+ // 06
TALK_START_POINT,TALK_END_POINT from CUTS \ "START_DATETIME,"+ // 07
where CART_NUMBER=%u",q->value(0).toUInt()); "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); q1=new QSqlQuery(sql,ext_db);
while(q1->next()) { while(q1->next()) {
if(q1->value(7).isNull()) { if(q1->value(7).isNull()) {
@ -399,21 +419,20 @@ MainObject::MainObject(QObject *parent)
QString().sprintf("WEIGHT=%u,",q1->value(19).toUInt())+ QString().sprintf("WEIGHT=%u,",q1->value(19).toUInt())+
QString().sprintf("VALIDITY=%u,",q1->value(20).toUInt())+ QString().sprintf("VALIDITY=%u,",q1->value(20).toUInt())+
QString().sprintf("CODING_FORMAT=%u,",q1->value(21).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(22).toUInt())+
QString().sprintf("BIT_RATE=%u,",q1->value(23).toUInt())+ QString().sprintf("CHANNELS=%u,",q1->value(23).toUInt())+
QString().sprintf("CHANNELS=%u,",q1->value(24).toUInt())+ QString().sprintf("PLAY_GAIN=%d,",q1->value(24).toInt())+
QString().sprintf("PLAY_GAIN=%d,",q1->value(25).toInt())+ QString().sprintf("START_POINT=%d,",q1->value(25).toInt())+
QString().sprintf("START_POINT=%d,",q1->value(26).toInt())+ QString().sprintf("END_POINT=%d,",q1->value(26).toInt())+
QString().sprintf("END_POINT=%d,",q1->value(27).toInt())+ QString().sprintf("FADEUP_POINT=%d,",q1->value(27).toInt())+
QString().sprintf("FADEUP_POINT=%d,",q1->value(28).toInt())+ QString().sprintf("FADEDOWN_POINT=%d,",q1->value(28).toInt())+
QString().sprintf("FADEDOWN_POINT=%d,",q1->value(29).toInt())+ QString().sprintf("SEGUE_START_POINT=%d,",q1->value(29).toInt())+
QString().sprintf("SEGUE_START_POINT=%d,",q1->value(30).toInt())+ QString().sprintf("SEGUE_END_POINT=%d,",q1->value(30).toInt())+
QString().sprintf("SEGUE_END_POINT=%d,",q1->value(31).toInt())+ QString().sprintf("SEGUE_GAIN=%d,",q1->value(31).toInt())+
QString().sprintf("SEGUE_GAIN=%d,",q1->value(32).toInt())+ QString().sprintf("HOOK_START_POINT=%d,",q1->value(32).toInt())+
QString().sprintf("HOOK_START_POINT=%d,",q1->value(33).toInt())+ QString().sprintf("HOOK_END_POINT=%d,",q1->value(33).toInt())+
QString().sprintf("HOOK_END_POINT=%d,",q1->value(34).toInt())+ QString().sprintf("TALK_START_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(35).toInt())+
QString().sprintf("TALK_END_POINT=%d where ",q1->value(36).toInt())+
"CUT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\""; "CUT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\"";
q2=new QSqlQuery(sql,filter_db); q2=new QSqlQuery(sql,filter_db);
delete q2; delete q2;

View File

@ -59,15 +59,15 @@ bool RDReport::ExportBmiEmr(const QString &filename,const QDate &startdate,
report_error_code=RDReport::ErrorCantOpen; report_error_code=RDReport::ErrorCantOpen;
return false; return false;
} }
/* sql=QString("select ")+
sql=QString().sprintf("select EVENT_DATETIME,TITLE,ARTIST,COMPOSER,\ "EVENT_DATETIME,"+ // 00
LENGTH,ISRC,USAGE_CODE from `%s_SRT` \ "TITLE,"+ // 01
order by EVENT_DATETIME", "ARTIST,"+ // 02
(const char *)mixtable); "COMPOSER,"+ // 03
*/ "LENGTH,"+ // 04
sql=QString("select EVENT_DATETIME,TITLE,ARTIST,COMPOSER,")+ "ISRC,"+ // 05
"LENGTH,ISRC,USAGE_CODE from `"+ "USAGE_CODE "+ // 06
mixtable+"_SRT` order by EVENT_DATETIME"; "from `"+mixtable+"_SRT` order by EVENT_DATETIME";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
// //

View File

@ -69,9 +69,14 @@ bool RDReport::ExportSoundEx(const QString &filename,const QDate &startdate,
// //
// Roll Up Records // Roll Up Records
// //
sql=QString().sprintf("select CART_NUMBER,ARTIST,TITLE,ISRC,ALBUM,LABEL \ sql=QString("select ")+
from `%s_SRT` order by CART_NUMBER", "CART_NUMBER,"+ // 00
(const char *)mixtable); "ARTIST,"+ // 01
"TITLE,"+ // 02
"ISRC,"+ // 03
"ALBUM,"+ // 04
"LABEL "+ // 05
"from `"+mixtable+"_SRT` order by CART_NUMBER";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
if(q->value(0).toUInt()==cartnum) { if(q->value(0).toUInt()==cartnum) {

View File

@ -346,30 +346,34 @@ void RDLibraryConf::getSettings(RDSettings *s) const
sql=QString("select ")+ sql=QString("select ")+
"DEFAULT_CHANNELS,"+ // 00 "DEFAULT_CHANNELS,"+ // 00
"DEFAULT_SAMPRATE,"+ // 01 "DEFAULT_FORMAT,"+ // 01
"DEFAULT_FORMAT,"+ // 02 "DEFAULT_BITRATE,"+ // 02
"DEFAULT_BITRATE,"+ // 03 "RIPPER_LEVEL,"+ // 03
"RIPPER_LEVEL,"+ // 04 "TRIM_THRESHOLD "+ // 04
"TRIM_THRESHOLD "+ // 05
"from RDLIBRARY where "+ "from RDLIBRARY where "+
"STATION=\""+RDEscapeString(lib_station)+"\""; "STATION=\""+RDEscapeString(lib_station)+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
s->clear(); s->clear();
if(q->first()) { if(q->first()) {
s->setChannels(q->value(0).toUInt()); s->setChannels(q->value(0).toUInt());
s->setSampleRate(q->value(1).toUInt()); switch(q->value(1).toInt()) {
switch(q->value(2).toInt()) { case 0:
case 0: s->setFormat(RDSettings::Pcm16);
s->setFormat(RDSettings::Pcm16); break;
break;
case 1: case 1:
s->setFormat(RDSettings::MpegL2); s->setFormat(RDSettings::MpegL2);
break; break;
} }
s->setBitRate(q->value(3).toUInt()); s->setBitRate(q->value(2).toUInt());
s->setNormalizationLevel(q->value(4).toUInt()); s->setNormalizationLevel(q->value(3).toUInt());
s->setAutotrimLevel(q->value(5).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; delete q;
} }

View File

@ -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, void RDLogLine::loadCart(int cartnum,RDLogLine::TransType next_type,int mach,
bool timescale,RDLogLine::TransType type,int len) bool timescale,RDLogLine::TransType type,int len)
{ {
QString sql=QString().sprintf("select CART.TYPE,CART.GROUP_NAME,CART.TITLE,\ QString sql=QString("select ")+
CART.ARTIST,CART.ALBUM,CART.YEAR,CART.ISRC,\ "CART.TYPE,"+ // 00
CART.LABEL,CART.CLIENT,CART.AGENCY,\ "CART.GROUP_NAME,"+ // 01
CART.USER_DEFINED,CART.CONDUCTOR,CART.SONG_ID,\ "CART.TITLE,"+ // 02
CART.FORCED_LENGTH,\ "CART.ARTIST,"+ // 03
CART.CUT_QUANTITY,CART.LAST_CUT_PLAYED,\ "CART.ALBUM,"+ // 04
CART.PLAY_ORDER,CART.START_DATETIME,\ "CART.YEAR,"+ // 05
CART.END_DATETIME,CART.ENFORCE_LENGTH,\ // "CART.ISRC,"+ // 06
CART.PRESERVE_PITCH,GROUPS.ENABLE_NOW_NEXT,\ "CART.LABEL,"+ // 06
CART.ASYNCRONOUS,CART.PUBLISHER,\ "CART.CLIENT,"+ // 07
CART.COMPOSER,CART.USAGE_CODE,\ "CART.AGENCY,"+ // 08
CART.AVERAGE_SEGUE_LENGTH,CART.NOTES,\ "CART.USER_DEFINED,"+ // 09
GROUPS.COLOR \ "CART.CONDUCTOR,"+ // 10
from CART left join GROUPS on\ "CART.SONG_ID,"+ // 11
CART.GROUP_NAME=GROUPS.NAME\ "CART.FORCED_LENGTH,"+ // 12
where (CART.NUMBER=%d)", "CART.CUT_QUANTITY,"+ // 13
cartnum); "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); RDSqlQuery *q=new RDSqlQuery(sql);
if(!q->first()) { if(!q->first()) {
delete q; delete q;
@ -1856,35 +1872,35 @@ void RDLogLine::loadCart(int cartnum,RDLogLine::TransType next_type,int mach,
log_artist=q->value(3).toString(); log_artist=q->value(3).toString();
log_album=q->value(4).toString(); log_album=q->value(4).toString();
log_year=q->value(5).toDate(); log_year=q->value(5).toDate();
log_isrc=q->value(6).toString(); // log_isrc=q->value(6).toString();
log_label=q->value(7).toString(); log_label=q->value(6).toString();
log_client=q->value(8).toString(); log_client=q->value(7).toString();
log_agency=q->value(9).toString(); log_agency=q->value(8).toString();
log_user_defined=q->value(10).toString(); log_user_defined=q->value(9).toString();
log_conductor=q->value(11).toString(); log_conductor=q->value(10).toString();
log_song_id=q->value(12).toString(); log_song_id=q->value(11).toString();
log_cut_quantity=q->value(14).toUInt(); log_cut_quantity=q->value(13).toUInt();
log_last_cut_played=q->value(15).toUInt(); log_last_cut_played=q->value(14).toUInt();
log_play_order=(RDCart::PlayOrder)q->value(16).toInt(); log_play_order=(RDCart::PlayOrder)q->value(15).toInt();
log_start_datetime=q->value(17).toDateTime(); log_start_datetime=q->value(16).toDateTime();
log_end_datetime=q->value(18).toDateTime(); log_end_datetime=q->value(17).toDateTime();
log_preserve_pitch=RDBool(q->value(20).toString()); log_preserve_pitch=RDBool(q->value(19).toString());
if(len<0) { if(len<0) {
log_forced_length=q->value(13).toUInt(); log_forced_length=q->value(12).toUInt();
log_enforce_length=RDBool(q->value(19).toString()); log_enforce_length=RDBool(q->value(18).toString());
} }
else { else {
log_forced_length=len; log_forced_length=len;
log_enforce_length=true; log_enforce_length=true;
} }
log_now_next_enabled=RDBool(q->value(21).toString()); log_now_next_enabled=RDBool(q->value(20).toString());
log_asyncronous=RDBool(q->value(22).toString()); log_asyncronous=RDBool(q->value(21).toString());
log_publisher=q->value(23).toString(); log_publisher=q->value(22).toString();
log_composer=q->value(24).toString(); log_composer=q->value(23).toString();
log_usage_code=(RDCart::UsageCode)q->value(25).toInt(); log_usage_code=(RDCart::UsageCode)q->value(24).toInt();
log_average_segue_length=q->value(26).toInt(); log_average_segue_length=q->value(25).toInt();
log_cart_notes=q->value(27).toString(); log_cart_notes=q->value(26).toString();
log_group_color=QColor(q->value(28).toString()); log_group_color=QColor(q->value(27).toString());
log_play_source=RDLogLine::UnknownSource; log_play_source=RDLogLine::UnknownSource;
if(type!=RDLogLine::NoTrans) { if(type!=RDLogLine::NoTrans) {
log_trans_type=type; log_trans_type=type;
@ -1903,13 +1919,19 @@ void RDLogLine::refreshPointers()
QString sql; QString sql;
RDSqlQuery *q; RDSqlQuery *q;
sql=QString().sprintf("select START_POINT,END_POINT,\ sql=QString("select ")+
SEGUE_START_POINT,SEGUE_END_POINT,\ "START_POINT,"+ // 00
TALK_START_POINT,TALK_END_POINT,\ "END_POINT,"+ // 01
FADEUP_POINT,FADEDOWN_POINT,\ "SEGUE_START_POINT,"+ // 02
HOOK_START_POINT,HOOK_END_POINT from CUTS\ "SEGUE_END_POINT,"+ // 03
where CUT_NAME=\"%s\"", "TALK_START_POINT,"+ // 04
(const char *)log_cut_name); "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); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
log_start_point[RDLogLine::CartPointer]=q->value(0).toInt(); log_start_point[RDLogLine::CartPointer]=q->value(0).toInt();

View File

@ -280,17 +280,19 @@ void RDLogeditConf::getSettings(RDSettings *s) const
QString sql; QString sql;
RDSqlQuery *q; RDSqlQuery *q;
sql=QString().sprintf("select DEFAULT_CHANNELS,SAMPRATE,\ sql=QString("select ")+
FORMAT,BITRATE,RIPPER_LEVEL,\ "DEFAULT_CHANNELS,"+ // 00
TRIM_THRESHOLD from RDLOGEDIT \ "FORMAT,"+ // 02
where STATION=\"%s\"", "BITRATE,"+ // 03
(const char *)RDEscapeString(lib_station)); "RIPPER_LEVEL,"+ // 04
"TRIM_THRESHOLD "+ // 05
"from RDLOGEDIT where "+
"STATION=\""+RDEscapeString(lib_station)+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
s->clear(); s->clear();
if(q->first()) { if(q->first()) {
s->setChannels(q->value(0).toUInt()); s->setChannels(q->value(0).toUInt());
s->setSampleRate(q->value(1).toUInt()); switch(q->value(1).toInt()) {
switch(q->value(2).toInt()) {
case 0: case 0:
s->setFormat(RDSettings::Pcm16); s->setFormat(RDSettings::Pcm16);
break; break;
@ -299,9 +301,15 @@ void RDLogeditConf::getSettings(RDSettings *s) const
s->setFormat(RDSettings::MpegL2); s->setFormat(RDSettings::MpegL2);
break; break;
} }
s->setBitRate(q->value(3).toUInt()); s->setBitRate(q->value(2).toUInt());
s->setNormalizationLevel(q->value(4).toUInt()); s->setNormalizationLevel(q->value(3).toUInt());
s->setAutotrimLevel(q->value(5).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; delete q;
} }

View File

@ -954,22 +954,21 @@ bool RDStation::create(const QString &name,QString *err_msg,
"TRIM_THRESHOLD,"+ // 06 "TRIM_THRESHOLD,"+ // 06
"DEFAULT_FORMAT,"+ // 07 "DEFAULT_FORMAT,"+ // 07
"DEFAULT_CHANNELS,"+ // 08 "DEFAULT_CHANNELS,"+ // 08
"DEFAULT_SAMPRATE,"+ // 09 "DEFAULT_LAYER,"+ // 09
"DEFAULT_LAYER,"+ // 10 "DEFAULT_BITRATE,"+ // 10
"DEFAULT_BITRATE,"+ // 11 "DEFAULT_RECORD_MODE,"+ // 11
"DEFAULT_RECORD_MODE,"+ // 12 "DEFAULT_TRIM_STATE,"+ // 12
"DEFAULT_TRIM_STATE,"+ // 13 "MAXLENGTH,"+ // 13
"MAXLENGTH,"+ // 14 "TAIL_PREROLL,"+ // 14
"TAIL_PREROLL,"+ // 15 "RIPPER_DEVICE,"+ // 15
"RIPPER_DEVICE,"+ // 16 "PARANOIA_LEVEL,"+ // 16
"PARANOIA_LEVEL,"+ // 17 "RIPPER_LEVEL,"+ // 17
"RIPPER_LEVEL,"+ // 18 "CDDB_SERVER,"+ // 18
"CDDB_SERVER,"+ // 19 "READ_ISRC,"+ // 19
"READ_ISRC,"+ // 20 "ENABLE_EDITOR,"+ // 20
"ENABLE_EDITOR,"+ // 21 "SRC_CONVERTER,"+ // 21
"SRC_CONVERTER,"+ // 22 "LIMIT_SEARCH,"+ // 22
"LIMIT_SEARCH,"+ // 23 "SEARCH_LIMITED "+ // 23
"SEARCH_LIMITED "+ // 24
"from RDLIBRARY where "+ "from RDLIBRARY where "+
"(STATION=\""+RDEscapeString(exemplar)+"\")&&"+ "(STATION=\""+RDEscapeString(exemplar)+"\")&&"+
"(INSTANCE=0)"; "(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("TRIM_THRESHOLD=%d,",q->value(6).toInt())+
QString().sprintf("DEFAULT_FORMAT=%u,",q->value(7).toUInt())+ QString().sprintf("DEFAULT_FORMAT=%u,",q->value(7).toUInt())+
QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(8).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(9).toUInt())+
QString().sprintf("DEFAULT_LAYER=%u,",q->value(10).toUInt())+ QString().sprintf("DEFAULT_BITRATE=%u,",q->value(10).toUInt())+
QString().sprintf("DEFAULT_BITRATE=%u,",q->value(11).toUInt())+ QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(11).toUInt())+
QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(12).toUInt())+ "DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(12).toString())+"\","+
"DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(13).toString())+"\","+ QString().sprintf("MAXLENGTH=%d,",q->value(13).toInt())+
QString().sprintf("MAXLENGTH=%d,",q->value(14).toInt())+ QString().sprintf("TAIL_PREROLL=%u,",q->value(14).toUInt())+
QString().sprintf("TAIL_PREROLL=%u,",q->value(15).toUInt())+ "RIPPER_DEVICE=\""+RDEscapeString(q->value(15).toString())+"\","+
"RIPPER_DEVICE=\""+RDEscapeString(q->value(16).toString())+"\","+ QString().sprintf("PARANOIA_LEVEL=%d,",q->value(16).toInt())+
QString().sprintf("PARANOIA_LEVEL=%d,",q->value(17).toInt())+ QString().sprintf("RIPPER_LEVEL=%d,",q->value(17).toInt())+
QString().sprintf("RIPPER_LEVEL=%d,",q->value(18).toInt())+ "CDDB_SERVER=\""+RDEscapeString(q->value(18).toString())+"\","+
"CDDB_SERVER=\""+RDEscapeString(q->value(19).toString())+"\","+ "READ_ISRC=\""+RDEscapeString(q->value(19).toString())+"\","+
"READ_ISRC=\""+RDEscapeString(q->value(20).toString())+"\","+ "ENABLE_EDITOR=\""+RDEscapeString(q->value(20).toString())+"\","+
"ENABLE_EDITOR=\""+RDEscapeString(q->value(21).toString())+"\","+ QString().sprintf("SRC_CONVERTER=%d,",q->value(21).toInt())+
QString().sprintf("SRC_CONVERTER=%d,",q->value(22).toInt())+ QString().sprintf("LIMIT_SEARCH=%d,",q->value(22).toInt())+
QString().sprintf("LIMIT_SEARCH=%d,",q->value(23).toInt())+ "SEARCH_LIMITED=\""+RDEscapeString(q->value(23).toString())+"\","+
"SEARCH_LIMITED=\""+RDEscapeString(q->value(24).toString())+"\","+
"STATION=\""+RDEscapeString(name)+"\""; "STATION=\""+RDEscapeString(name)+"\"";
q1=new RDSqlQuery(sql); q1=new RDSqlQuery(sql);
delete q1; delete q1;
@ -1017,19 +1015,18 @@ bool RDStation::create(const QString &name,QString *err_msg,
"OUTPUT_PORT,"+ // 03 "OUTPUT_PORT,"+ // 03
"FORMAT,"+ // 04 "FORMAT,"+ // 04
"DEFAULT_CHANNELS,"+ // 05 "DEFAULT_CHANNELS,"+ // 05
"SAMPRATE,"+ // 06 "LAYER,"+ // 06
"LAYER,"+ // 07 "BITRATE,"+ // 07
"BITRATE,"+ // 08 "MAXLENGTH,"+ // 08
"MAXLENGTH,"+ // 09 "TAIL_PREROLL,"+ // 09
"TAIL_PREROLL,"+ // 10 "START_CART,"+ // 10
"START_CART,"+ // 11 "END_CART,"+ // 11
"END_CART,"+ // 12 "REC_START_CART,"+ // 12
"REC_START_CART,"+ // 13 "REC_END_CART,"+ // 13
"REC_END_CART,"+ // 14 "TRIM_THRESHOLD,"+ // 14
"TRIM_THRESHOLD,"+ // 15 "RIPPER_LEVEL,"+ // 15
"RIPPER_LEVEL,"+ // 16 "DEFAULT_TRANS_TYPE,"+ // 16
"DEFAULT_TRANS_TYPE,"+ // 17 "ENABLE_SECOND_START "+ // 17
"ENABLE_SECOND_START "+ // 18
"from RDLOGEDIT where "+ "from RDLOGEDIT where "+
"STATION=\""+RDEscapeString(exemplar)+"\""; "STATION=\""+RDEscapeString(exemplar)+"\"";
q=new RDSqlQuery(sql); 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("OUTPUT_PORT=%d,",q->value(3).toInt())+
QString().sprintf("FORMAT=%u,",q->value(4).toUInt())+ QString().sprintf("FORMAT=%u,",q->value(4).toUInt())+
QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(5).toUInt())+ QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(5).toUInt())+
QString().sprintf("SAMPRATE=%u,",q->value(6).toUInt())+ QString().sprintf("LAYER=%u,",q->value(6).toUInt())+
QString().sprintf("LAYER=%u,",q->value(7).toUInt())+ QString().sprintf("BITRATE=%u,",q->value(7).toUInt())+
QString().sprintf("BITRATE=%u,",q->value(8).toUInt())+ QString().sprintf("MAXLENGTH=%d,",q->value(8).toInt())+
QString().sprintf("MAXLENGTH=%d,",q->value(9).toInt())+ QString().sprintf("TAIL_PREROLL=%u,",q->value(9).toUInt())+
QString().sprintf("TAIL_PREROLL=%u,",q->value(10).toUInt())+
"STATION=\""+RDEscapeString(name)+"\","+ "STATION=\""+RDEscapeString(name)+"\","+
QString().sprintf("START_CART=%u,",q->value(11).toUInt())+ QString().sprintf("START_CART=%u,",q->value(10).toUInt())+
QString().sprintf("END_CART=%u,",q->value(12).toUInt())+ QString().sprintf("END_CART=%u,",q->value(11).toUInt())+
QString().sprintf("REC_START_CART=%u,",q->value(13).toUInt())+ QString().sprintf("REC_START_CART=%u,",q->value(12).toUInt())+
QString().sprintf("REC_END_CART=%u,",q->value(14).toUInt())+ QString().sprintf("REC_END_CART=%u,",q->value(13).toUInt())+
QString().sprintf("TRIM_THRESHOLD=%d,",q->value(15).toInt())+ QString().sprintf("TRIM_THRESHOLD=%d,",q->value(14).toInt())+
QString().sprintf("RIPPER_LEVEL=%d,",q->value(16).toInt())+ QString().sprintf("RIPPER_LEVEL=%d,",q->value(15).toInt())+
QString().sprintf("DEFAULT_TRANS_TYPE=%d,",q->value(17).toInt())+ QString().sprintf("DEFAULT_TRANS_TYPE=%d,",q->value(16).toInt())+
"ENABLE_SECOND_START=\""+RDEscapeString(q->value(18).toString())+"\""; "ENABLE_SECOND_START=\""+RDEscapeString(q->value(17).toString())+"\"";
q1=new RDSqlQuery(sql); q1=new RDSqlQuery(sql);
delete q1; delete q1;
} }
@ -1072,13 +1068,12 @@ bool RDStation::create(const QString &name,QString *err_msg,
"PORT_TYPE,"+ // 05 "PORT_TYPE,"+ // 05
"DEFAULT_FORMAT,"+ // 06 "DEFAULT_FORMAT,"+ // 06
"DEFAULT_CHANNELS,"+ // 07 "DEFAULT_CHANNELS,"+ // 07
"DEFAULT_SAMPRATE,"+ // 08 "DEFAULT_BITRATE,"+ // 08
"DEFAULT_BITRATE,"+ // 09 "DEFAULT_THRESHOLD,"+ // 09
"DEFAULT_THRESHOLD,"+ // 10 "SWITCH_STATION,"+ // 10
"SWITCH_STATION,"+ // 11 "SWITCH_MATRIX,"+ // 11
"SWITCH_MATRIX,"+ // 12 "SWITCH_OUTPUT,"+ // 12
"SWITCH_OUTPUT,"+ // 13 "SWITCH_DELAY "+ // 13
"SWITCH_DELAY "+ // 14
"from DECKS where "+ "from DECKS where "+
"STATION_NAME=\""+RDEscapeString(exemplar)+"\""; "STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
@ -1092,13 +1087,12 @@ bool RDStation::create(const QString &name,QString *err_msg,
"PORT_TYPE=\""+RDEscapeString(q->value(5).toString())+"\","+ "PORT_TYPE=\""+RDEscapeString(q->value(5).toString())+"\","+
QString().sprintf("DEFAULT_FORMAT=%d,",q->value(6).toInt())+ QString().sprintf("DEFAULT_FORMAT=%d,",q->value(6).toInt())+
QString().sprintf("DEFAULT_CHANNELS=%d,",q->value(7).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(8).toInt())+
QString().sprintf("DEFAULT_BITRATE=%d,",q->value(9).toInt())+ QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(9).toInt())+
QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(10).toInt())+ "SWITCH_STATION=\""+RDEscapeString(q->value(10).toString())+"\","+
"SWITCH_STATION=\""+RDEscapeString(q->value(11).toString())+"\","+ QString().sprintf("SWITCH_MATRIX=%d,",q->value(11).toInt())+
QString().sprintf("SWITCH_MATRIX=%d,",q->value(12).toInt())+ QString().sprintf("SWITCH_OUTPUT=%d,",q->value(12).toInt())+
QString().sprintf("SWITCH_OUTPUT=%d,",q->value(13).toInt())+ QString().sprintf("SWITCH_DELAY=%d,",q->value(13).toInt())+
QString().sprintf("SWITCH_DELAY=%d,",q->value(14).toInt())+
"STATION_NAME=\""+RDEscapeString(name)+"\""; "STATION_NAME=\""+RDEscapeString(name)+"\"";
q1=new RDSqlQuery(sql); q1=new RDSqlQuery(sql);
delete q1; delete q1;

View File

@ -1155,43 +1155,39 @@ bool RDSvc::create(const QString &name,QString *err_msg,
"TFC_WIN_PATH,"+ // 11 "TFC_WIN_PATH,"+ // 11
"TFC_CART_OFFSET,"+ // 12 "TFC_CART_OFFSET,"+ // 12
"TFC_CART_LENGTH,"+ // 13 "TFC_CART_LENGTH,"+ // 13
"TFC_START_OFFSET,"+ // 14 "TFC_LENGTH_OFFSET,"+ // 14
"TFC_START_LENGTH,"+ // 15 "TFC_LENGTH_LENGTH,"+ // 15
"TFC_LENGTH_OFFSET,"+ // 16 "TFC_HOURS_OFFSET,"+ // 16
"TFC_LENGTH_LENGTH,"+ // 17 "TFC_HOURS_LENGTH,"+ // 17
"TFC_HOURS_OFFSET,"+ // 18 "TFC_MINUTES_OFFSET,"+ // 18
"TFC_HOURS_LENGTH,"+ // 19 "TFC_MINUTES_LENGTH,"+ // 19
"TFC_MINUTES_OFFSET,"+ // 20 "TFC_SECONDS_OFFSET,"+ // 20
"TFC_MINUTES_LENGTH,"+ // 21 "TFC_SECONDS_LENGTH,"+ // 21
"TFC_SECONDS_OFFSET,"+ // 22 "TFC_DATA_OFFSET,"+ // 22
"TFC_SECONDS_LENGTH,"+ // 23 "TFC_DATA_LENGTH,"+ // 23
"TFC_DATA_OFFSET,"+ // 24 "TFC_EVENT_ID_OFFSET,"+ // 24
"TFC_DATA_LENGTH,"+ // 25 "TFC_EVENT_ID_LENGTH,"+ // 25
"TFC_EVENT_ID_OFFSET,"+ // 26 "TFC_ANNC_TYPE_OFFSET,"+ // 26
"TFC_EVENT_ID_LENGTH,"+ // 27 "TFC_ANNC_TYPE_LENGTH,"+ // 27
"TFC_ANNC_TYPE_OFFSET,"+ // 28 "MUS_IMPORT_TEMPLATE,"+ // 28
"TFC_ANNC_TYPE_LENGTH,"+ // 29 "MUS_PATH,"+ // 29
"MUS_IMPORT_TEMPLATE,"+ // 30 "MUS_WIN_PATH,"+ // 30
"MUS_PATH,"+ // 31 "MUS_CART_OFFSET,"+ // 31
"MUS_WIN_PATH,"+ // 32 "MUS_CART_LENGTH,"+ // 32
"MUS_CART_OFFSET,"+ // 33 "MUS_LENGTH_OFFSET,"+ // 33
"MUS_CART_LENGTH,"+ // 34 "MUS_LENGTH_LENGTH,"+ // 34
"MUS_START_OFFSET,"+ // 35 "MUS_HOURS_OFFSET,"+ // 35
"MUS_START_LENGTH,"+ // 36 "MUS_HOURS_LENGTH,"+ // 36
"MUS_LENGTH_OFFSET,"+ // 37 "MUS_MINUTES_OFFSET,"+ // 37
"MUS_LENGTH_LENGTH,"+ // 38 "MUS_MINUTES_LENGTH,"+ // 38
"MUS_HOURS_OFFSET,"+ // 39 "MUS_SECONDS_OFFSET,"+ // 39
"MUS_HOURS_LENGTH,"+ // 40 "MUS_SECONDS_LENGTH,"+ // 40
"MUS_MINUTES_OFFSET,"+ // 41 "MUS_DATA_OFFSET,"+ // 41
"MUS_MINUTES_LENGTH,"+ // 42 "MUS_DATA_LENGTH,"+ // 42
"MUS_SECONDS_OFFSET,"+ // 43 "MUS_EVENT_ID_OFFSET,"+ // 43
"MUS_SECONDS_LENGTH,"+ // 44 "MUS_EVENT_ID_LENGTH,"+ // 44
"MUS_DATA_OFFSET,"+ // 45 "MUS_ANNC_TYPE_OFFSET,"+ // 46
"MUS_DATA_LENGTH,"+ // 46 "MUS_ANNC_TYPE_LENGTH "+ // 47
"MUS_EVENT_ID_OFFSET,"+ // 47
"MUS_EVENT_ID_LENGTH,"+ // 48
"MUS_ANNC_TYPE_OFFSET,"+ // 49
"MUS_ANNC_TYPE_LENGTH "+ // 50
" from SERVICES where NAME=\""+RDEscapeString(exemplar)+"\""; " from SERVICES where NAME=\""+RDEscapeString(exemplar)+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
@ -1210,43 +1206,39 @@ bool RDSvc::create(const QString &name,QString *err_msg,
"TFC_WIN_PATH=\""+RDEscapeString(q->value(11).toString())+"\","+ "TFC_WIN_PATH=\""+RDEscapeString(q->value(11).toString())+"\","+
QString().sprintf("TFC_CART_OFFSET=%d,",q->value(12).toInt())+ QString().sprintf("TFC_CART_OFFSET=%d,",q->value(12).toInt())+
QString().sprintf("TFC_CART_LENGTH=%d,",q->value(13).toInt())+ QString().sprintf("TFC_CART_LENGTH=%d,",q->value(13).toInt())+
QString().sprintf("TFC_START_OFFSET=%d,",q->value(14).toInt())+ QString().sprintf("TFC_LENGTH_OFFSET=%d,",q->value(14).toInt())+
QString().sprintf("TFC_START_LENGTH=%d,",q->value(15).toInt())+ QString().sprintf("TFC_LENGTH_LENGTH=%d,",q->value(15).toInt())+
QString().sprintf("TFC_LENGTH_OFFSET=%d,",q->value(16).toInt())+ QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(16).toInt())+
QString().sprintf("TFC_LENGTH_LENGTH=%d,",q->value(17).toInt())+ QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(17).toInt())+
QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(18).toInt())+ QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(18).toInt())+
QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(19).toInt())+ QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(19).toInt())+
QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(20).toInt())+ QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(20).toInt())+
QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(21).toInt())+ QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(21).toInt())+
QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(22).toInt())+ QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(22).toInt())+
QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(23).toInt())+ QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(23).toInt())+
QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(24).toInt())+ QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(24).toInt())+
QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(25).toInt())+ QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(25).toInt())+
QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(26).toInt())+ QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(26).toInt())+
QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(27).toInt())+ QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(27).toInt())+
QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(28).toInt())+ "MUS_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(28).toString())+"\","+
QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(29).toInt())+ "MUS_PATH=\""+RDEscapeString(q->value(29).toString())+"\","+
"MUS_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(30).toString())+"\","+ "MUS_WIN_PATH=\""+RDEscapeString(q->value(30).toString())+"\","+
"MUS_PATH=\""+RDEscapeString(q->value(31).toString())+"\","+ QString().sprintf("MUS_CART_OFFSET=%d,",q->value(31).toInt())+
"MUS_WIN_PATH=\""+RDEscapeString(q->value(32).toString())+"\","+ QString().sprintf("MUS_CART_LENGTH=%d,",q->value(32).toInt())+
QString().sprintf("MUS_CART_OFFSET=%d,",q->value(33).toInt())+ QString().sprintf("MUS_LENGTH_OFFSET=%d,",q->value(33).toInt())+
QString().sprintf("MUS_CART_LENGTH=%d,",q->value(34).toInt())+ QString().sprintf("MUS_LENGTH_LENGTH=%d,",q->value(34).toInt())+
QString().sprintf("MUS_START_OFFSET=%d,",q->value(35).toInt())+ QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(35).toInt())+
QString().sprintf("MUS_START_LENGTH=%d,",q->value(36).toInt())+ QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(36).toInt())+
QString().sprintf("MUS_LENGTH_OFFSET=%d,",q->value(37).toInt())+ QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(37).toInt())+
QString().sprintf("MUS_LENGTH_LENGTH=%d,",q->value(38).toInt())+ QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(39).toInt())+
QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(39).toInt())+ QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(39).toInt())+
QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(40).toInt())+ QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(40).toInt())+
QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(41).toInt())+ QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(41).toInt())+
QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(42).toInt())+ QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(42).toInt())+
QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(43).toInt())+ QString().sprintf("MUS_EVENT_ID_OFFSET=%d,",q->value(43).toInt())+
QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(44).toInt())+ QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(44).toInt())+
QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(45).toInt())+ QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(45).toInt())+
QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(46).toInt())+ QString().sprintf("MUS_ANNC_TYPE_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())+
"NAME=\""+RDEscapeString(name)+"\""; "NAME=\""+RDEscapeString(name)+"\"";
delete q; delete q;
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);

View File

@ -849,6 +849,7 @@ bool CreateDb(QString name,QString pwd,RDConfig *config)
"ENDDATE_OFFSET int unsigned default 0,"+ "ENDDATE_OFFSET int unsigned default 0,"+
"EVENTDATE_OFFSET int default 0,"+ "EVENTDATE_OFFSET int default 0,"+
"FORMAT int default 0,"+ "FORMAT int default 0,"+
"SAMPRATE int unsigned default 44100,"+
"CHANNELS int default 2,"+ "CHANNELS int default 2,"+
"BITRATE int default 0,"+ "BITRATE int default 0,"+
"QUALITY int default 0,"+ "QUALITY int default 0,"+
@ -8466,10 +8467,6 @@ int UpdateDb(int ver,RDConfig *config)
q=new RDSqlQuery(sql,false); q=new RDSqlQuery(sql,false);
delete q; 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"); sql=QString("alter table SERVICES drop column TFC_START_OFFSET");
q=new RDSqlQuery(sql,false); q=new RDSqlQuery(sql,false);
delete q; delete q;

View File

@ -274,10 +274,13 @@ MainObject::MainObject(QObject *parent)
// Sound Initialization // Sound Initialization
// //
RDSetMixerPorts(rda->config()->stationName(),rda->cae()); RDSetMixerPorts(rda->config()->stationName(),rda->cae());
sql=QString().sprintf("select CHANNEL,CARD_NUMBER,PORT_NUMBER from DECKS \ sql=QString("select ")+
where (STATION_NAME=\"%s\")&&\ "CHANNEL,"+ // 00
(CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)", "CARD_NUMBER,"+ // 01
(const char *)rda->config()->stationName()); "PORT_NUMBER "+ // 02
"from DECKS where "+
"(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+
"(CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
if((q->value(1).toInt()>=0)&&(q->value(2).toInt()>=0)) { if((q->value(1).toInt()>=0)&&(q->value(2).toInt()>=0)) {
@ -290,13 +293,15 @@ MainObject::MainObject(QObject *parent)
// //
// Initialize Monitor Passthroughs // Initialize Monitor Passthroughs
// //
sql=QString().sprintf("select CARD_NUMBER,PORT_NUMBER,\ sql=QString("select ")+
MON_PORT_NUMBER,CHANNEL from DECKS\ "CARD_NUMBER,"+ // 00
where (STATION_NAME=\"%s\")&&(CHANNEL<=%d)&&\ "PORT_NUMBER,"+ // 01
(CARD_NUMBER>=0)&&(MON_PORT_NUMBER>=0)&&\ "MON_PORT_NUMBER,"+ // 02
(DEFAULT_MONITOR_ON=\"Y\")", "CHANNEL from DECKS where "+
(const char *)rda->config()->stationName(), "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+
MAX_DECKS); QString().sprintf("(CHANNEL<=%d) &&",MAX_DECKS)+
"(CARD_NUMBER>=0)&&(MON_PORT_NUMBER>=0) && "+
"(DEFAULT_MONITOR_ON=\"Y\")";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
rda->cae()->setPassthroughVolume(q->value(0).toInt(),q->value(1).toInt(), rda->cae()->setPassthroughVolume(q->value(0).toInt(),q->value(1).toInt(),
@ -373,23 +378,19 @@ MainObject::MainObject(QObject *parent)
// //
// Mark Interrupted Events // Mark Interrupted Events
// //
sql=QString().sprintf("update RECORDINGS set EXIT_CODE=%d\ sql=QString("update RECORDINGS set ")+
where ((EXIT_CODE=%d)||(EXIT_CODE=%d))||\ QString().sprintf("EXIT_CODE=%d where ",RDRecording::Interrupted)+
(EXIT_CODE=%d)&&(STATION_NAME=\"%s\")", QString().sprintf("((EXIT_CODE=%d)||",RDRecording::Uploading)+
RDRecording::Interrupted, QString().sprintf("(EXIT_CODE=%d))||",RDRecording::Downloading)+
RDRecording::Uploading, QString().sprintf("(EXIT_CODE=%d)&&",RDRecording::RecordActive)+
RDRecording::Downloading, "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")";
RDRecording::RecordActive,
(const char *)rda->config()->stationName());
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
delete q; delete q;
sql=QString().sprintf("update RECORDINGS set EXIT_CODE=%d\ sql=QString("update RECORDINGS set ")+
where ((EXIT_CODE=%d)||(EXIT_CODE=%d))&&\ QString().sprintf("EXIT_CODE=%d where ",RDRecording::Ok)+
(STATION_NAME=\"%s\")", QString().sprintf("((EXIT_CODE=%d)||",RDRecording::Waiting)+
RDRecording::Ok, QString().sprintf("(EXIT_CODE=%d))&&",RDRecording::PlayActive)+
RDRecording::Waiting, "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")";
RDRecording::PlayActive,
(const char *)rda->config()->stationName());
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
delete q; delete q;
@ -634,12 +635,16 @@ void MainObject::engineData(int id)
} }
catch_record_card[catch_events[event].channel()-1]=-1; catch_record_card[catch_events[event].channel()-1]=-1;
catch_record_stream[catch_events[event].channel()-1]=-1; catch_record_stream[catch_events[event].channel()-1]=-1;
sql=QString().sprintf("select CARD_NUMBER,PORT_NUMBER,\ sql=QString("select ")+
SWITCH_STATION,SWITCH_MATRIX,SWITCH_OUTPUT, \ "CARD_NUMBER,"+ // 00
SWITCH_DELAY from DECKS \ "PORT_NUMBER,"+ // 01
where (STATION_NAME=\"%s\")&&(CHANNEL=%d)", "SWITCH_STATION,"+ // 02
(const char *)rda->config()->stationName(), "SWITCH_MATRIX,"+ // 03
catch_events[event].channel()); "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); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
catch_record_card[catch_events[event].channel()-1]= 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_card[catch_events[event].channel()-129]=-1;
catch_playout_stream[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 \ sql=QString("select ")+
from DECKS where (STATION_NAME=\"%s\")&&(CHANNEL=%d)", "CARD_NUMBER,"+ // 00
(const char *)rda->config()->stationName(), "PORT_NUMBER,"+ // 01
catch_events[event].channel()); "PORT_NUMBER "+ // 02
"from DECKS where "+
"(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+
QString().sprintf("(CHANNEL=%d)",catch_events[event].channel());
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
catch_playout_id[catch_events[event].channel()-129]=id; catch_playout_id[catch_events[event].channel()-129]=id;
@ -777,20 +785,22 @@ void MainObject::engineData(int id)
// //
// Load Import Parameters // Load Import Parameters
// //
sql=QString().sprintf("select DEFAULT_FORMAT,DEFAULT_CHANNELS,\ sql=QString("select ")+
DEFAULT_SAMPRATE,DEFAULT_LAYER,DEFAULT_BITRATE, \ "DEFAULT_FORMAT,"+ // 00
RIPPER_LEVEL \ "DEFAULT_CHANNELS,"+ // 01
from RDLIBRARY where STATION=\"%s\"", "DEFAULT_LAYER,"+ // 02
(const char *)rda->config()->stationName()); "DEFAULT_BITRATE,"+ // 03
"RIPPER_LEVEL "+ // 04
"from RDLIBRARY where "+
"STATION=\""+RDEscapeString(rda->config()->stationName())+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(q->first()) if(q->first())
{ {
catch_default_format=q->value(0).toInt(); catch_default_format=q->value(0).toInt();
catch_default_channels=q->value(1).toInt(); catch_default_channels=q->value(1).toInt();
catch_default_samplerate=q->value(2).toInt(); catch_default_layer=q->value(2).toInt();
catch_default_layer=q->value(3).toInt(); catch_default_bitrate=q->value(3).toInt();
catch_default_bitrate=q->value(4).toInt(); catch_ripper_level=q->value(4).toInt();
catch_ripper_level=q->value(5).toInt();
} }
else { else {
LogLine(RDConfig::LogWarning, LogLine(RDConfig::LogWarning,
@ -1933,6 +1943,7 @@ QString MainObject::LoadEventSql()
"FORMAT," // 19 "FORMAT," // 19
"CHANNELS,"+ // 20 "CHANNELS,"+ // 20
"SAMPRATE,"+ // 21 "SAMPRATE,"+ // 21
"BITRATE,"+ // 22 "BITRATE,"+ // 22
"MACRO_CART,"+ // 23 "MACRO_CART,"+ // 23
"SWITCH_INPUT,"+ // 24 "SWITCH_INPUT,"+ // 24
@ -2009,14 +2020,13 @@ void MainObject::LoadEvent(RDSqlQuery *q,CatchEvent *e,bool add)
} }
e->setChannels(q->value(20).toInt()); e->setChannels(q->value(20).toInt());
e->setSampleRate(rda->system()->sampleRate()); e->setSampleRate(rda->system()->sampleRate());
//e->setSampleRate(q->value(21).toInt());
e->setBitrate(q->value(22).toInt()); e->setBitrate(q->value(22).toInt());
e->setMacroCart(q->value(23).toInt()); e->setMacroCart(q->value(23).toInt());
e->setSwitchInput(q->value(24).toInt()); e->setSwitchInput(q->value(24).toInt());
e->setSwitchOutput(q->value(25).toInt()); e->setSwitchOutput(q->value(25).toInt());
e->setStatus(RDDeck::Idle); e->setStatus(RDDeck::Idle);
e->setOneShot(RDBool(q->value(26).toString())); 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->setStartLength(q->value(28).toInt());
e->setStartMatrix(q->value(29).toInt()); e->setStartMatrix(q->value(29).toInt());
e->setStartLine(q->value(30).toInt()); e->setStartLine(q->value(30).toInt());
@ -2064,11 +2074,14 @@ void MainObject::LoadDeckList()
for(int i=0;i<MAX_DECKS;i++) { for(int i=0;i<MAX_DECKS;i++) {
status[i]=RDDeck::Offline; status[i]=RDDeck::Offline;
} }
QString sql=QString().sprintf("select CHANNEL,CARD_NUMBER,PORT_NUMBER,\ QString sql=QString("select ")+
MON_PORT_NUMBER from DECKS \ "CHANNEL,"+ // 00
where (STATION_NAME=\"%s\")&&\ "CARD_NUMBER,"+ // 01
(CARD_NUMBER!=-1)&&(CHANNEL>0)&&(CHANNEL<9)", "PORT_NUMBER,"+ // 02
(const char *)rda->config()->stationName()); "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); RDSqlQuery *q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
status[q->value(0).toUInt()-1]=RDDeck::Idle; status[q->value(0).toUInt()-1]=RDDeck::Idle;
@ -2098,9 +2111,9 @@ void MainObject::LoadDeckList()
for(int i=0;i<MAX_DECKS;i++) { for(int i=0;i<MAX_DECKS;i++) {
status[i]=RDDeck::Offline; status[i]=RDDeck::Offline;
} }
sql=QString().sprintf("select CHANNEL from DECKS \ sql=QString("select CHANNEL from DECKS where ")+
where (STATION_NAME=\"%s\")&&(CARD_NUMBER!=-1)&&(CHANNEL>128)&&(CHANNEL<137)", "(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+
(const char *)rda->config()->stationName()); "(CARD_NUMBER!=-1)&&(CHANNEL>128)&&(CHANNEL<137)";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
status[q->value(0).toUInt()-129]=RDDeck::Idle; status[q->value(0).toUInt()-129]=RDDeck::Idle;

View File

@ -237,7 +237,6 @@ class MainObject : public QObject
unsigned catch_heartbeat_cart; unsigned catch_heartbeat_cart;
int catch_default_format; int catch_default_format;
int catch_default_samplerate;
int catch_default_channels; int catch_default_channels;
int catch_default_layer; int catch_default_layer;
int catch_default_bitrate; int catch_default_bitrate;

View File

@ -224,12 +224,21 @@ void MainObject::LoadReplicators()
RDSqlQuery *q; RDSqlQuery *q;
ReplConfig *config; ReplConfig *config;
sql=QString(). sql=QString("select ")+
sprintf("select NAME,TYPE_ID,FORMAT,CHANNELS,SAMPRATE,\ "NAME,"+ // 00
BITRATE,QUALITY,URL,URL_USERNAME,URL_PASSWORD,\ "TYPE_ID,"+ // 01
ENABLE_METADATA,NORMALIZATION_LEVEL from \ "FORMAT,"+ // 02
REPLICATORS where STATION_NAME=\"%s\"", "CHANNELS,"+ // 03
(const char *)RDEscapeString(rda->config()->stationName())); "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); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
config=new ReplConfig(); config=new ReplConfig();

View File

@ -1407,11 +1407,6 @@ void MainObject::Revert285() const
q=new RDSqlQuery(sql,false); q=new RDSqlQuery(sql,false);
delete q; 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 ")+ sql=QString("alter table SERVICES add ")+
"column TFC_START_OFFSET int after TFC_TITLE_LENGTH"; "column TFC_START_OFFSET int after TFC_TITLE_LENGTH";
q=new RDSqlQuery(sql,false); q=new RDSqlQuery(sql,false);