diff --git a/ChangeLog b/ChangeLog index 802935f0..9ded0b4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16684,3 +16684,6 @@ a segfault. 2018-08-29 Fred Gleason * Incremented the package version to 2.19.2int02. +2018-09-03 Fred Gleason + * Renamed the 'Add Next' ['PX'] RML to 'Insert Cart' ['PX']. + * Added an 'offset' parameter to the 'Insert Cart' ['PX'] RML. diff --git a/docs/opsguide/rml.xml b/docs/opsguide/rml.xml index 05ca41b1..fd52d427 100644 --- a/docs/opsguide/rml.xml +++ b/docs/opsguide/rml.xml @@ -198,36 +198,6 @@ - - Add Next [PX] - - - - Module - rdairplay1 - - - Mnemonic - PX - - - - - Insert a cart in a log in the next to play position. - - - PX - mach - cart - [PLAY|SEGUE|STOP]! - - - Insert cart cart in the next to play - position on log machine mach. The - transition may also be optionally specified. - - - Binary Serial Out [BO] @@ -890,6 +860,38 @@ + + Insert Cart [PX] + + + + Module + rdairplay1 + + + Mnemonic + PX + + + + + Insert a cart in a log. + + + PX + mach + cart + [offset] + [PLAY|SEGUE|STOP]! + + + Insert cart cart after the currently playing + or next event plus offset (default '0') + lines on log machine mach. The + transition may also be optionally specified. + + + Insert Serial Trap [SI] diff --git a/rdairplay/local_macros.cpp b/rdairplay/local_macros.cpp index a3082cf4..7d9eeed0 100644 --- a/rdairplay/local_macros.cpp +++ b/rdairplay/local_macros.cpp @@ -42,6 +42,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml) QString label; int mach=0; RDLogLine::TransType trans=RDLogLine::Play; + int offset=0; if(rml->role()!=RDMacro::Cmd) { return; @@ -783,7 +784,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml) break; case RDMacro::PX: // Add Next - if((rml->argQuantity()<2)||(rml->argQuantity()>3)) { + if((rml->argQuantity()<2)||(rml->argQuantity()>4)) { if(rml->echoRequested()) { rml->acknowledge(false); rdripc->sendRml(rml); @@ -798,18 +799,22 @@ void MainWidget::RunLocalMacros(RDMacro *rml) } return; } + offset=0; + if(rml->argQuantity()>=3) { + offset=rml->arg(2).toInt(); + } trans=RDLogLine::Play; - if(rml->argQuantity()==3) { - if(rml->arg(2).toString().lower()=="segue") { + if(rml->argQuantity()==4) { + if(rml->arg(3).toString().lower()=="segue") { trans=RDLogLine::Segue; } - if(rml->arg(2).toString().lower()=="stop") { + if(rml->arg(3).toString().lower()=="stop") { trans=RDLogLine::Stop; } } if(air_log[rml->arg(0).toInt()-1]->nextLine()>=0) { air_log[rml->arg(0).toInt()-1]-> - insert(air_log[rml->arg(0).toInt()-1]->nextLine(), + insert(air_log[rml->arg(0).toInt()-1]->nextLine()+offset, rml->arg(1).toUInt(),RDLogLine::NoTrans,trans); } else {