diff --git a/ChangeLog b/ChangeLog index 3cb7e094..97b39869 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17530,3 +17530,6 @@ 2018-08-25 Patrick Linstruth * Fixed a regression in rdservice(8) by removing quotation marks from rdimport(1) '--add-scheduler-code' argument that broke dropboxes. +2018-08-28 Fred Gleason + * Added an optional third argument to the 'Add Next' ['PX'] RML + to allow specication of the transition type. diff --git a/docs/opsguide/rml.xml b/docs/opsguide/rml.xml index 1d1f8ccf..76035bb5 100644 --- a/docs/opsguide/rml.xml +++ b/docs/opsguide/rml.xml @@ -218,11 +218,13 @@ PX mach - cart! + cart + [PLAY|SEGUE|STOP]! - Insert cart cart> in the next to play - position on log machine mach. + Insert cart cart in the next to play + position on log machine mach. The + transition may also be optionally specified. diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index bc4e1bef..1620d0c2 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -850,8 +850,7 @@ void RDLogPlay::insert(int line,int cartnum,RDLogLine::TransType next_type, if(nextLine()<0) { play_next_line=line; } - logline->loadCart(cartnum,next_type,play_id,play_timescaling_available, - rda->airplayConf()->defaultTransType()); + logline->loadCart(cartnum,next_type,play_id,play_timescaling_available,type); logline-> setTimescalingActive(play_timescaling_available&&logline->enforceLength()); UpdateStartTimes(line); diff --git a/rdairplay/local_macros.cpp b/rdairplay/local_macros.cpp index 68f243b0..deffd29f 100644 --- a/rdairplay/local_macros.cpp +++ b/rdairplay/local_macros.cpp @@ -42,6 +42,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml) RDLogLine *logline=NULL; QString label; int mach=0; + RDLogLine::TransType trans=RDLogLine::Play; 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) { + if((rml->argQuantity()<2)||(rml->argQuantity()>3)) { if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -798,15 +799,24 @@ void MainWidget::RunLocalMacros(RDMacro *rml) } return; } + trans=RDLogLine::Play; + if(rml->argQuantity()==3) { + if(rml->arg(2).toLower()=="segue") { + trans=RDLogLine::Segue; + } + if(rml->arg(2).toLower()=="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(), - rml->arg(1).toUInt(),RDLogLine::Play); + rml->arg(1).toUInt(),RDLogLine::NoTrans,trans); } else { air_log[rml->arg(0).toInt()-1]-> insert(air_log[rml->arg(0).toInt()-1]->size(), - rml->arg(1).toUInt(),RDLogLine::Play); + rml->arg(1).toUInt(),RDLogLine::NoTrans,trans); air_log[rml->arg(0).toInt()-1]-> makeNext(air_log[rml->arg(0).toInt()-1]->size()-1); }