Added isPlaying() function

Added ability to select and play specific cuts
This commit is contained in:
Patrick Linstruth
2018-10-07 13:26:15 -07:00
parent 2ef482dca2
commit ebb341d847
2 changed files with 38 additions and 9 deletions

View File

@@ -36,6 +36,7 @@ RDSimplePlayer::RDSimplePlayer(RDCae *cae,RDRipc *ripc,int card,int port,
play_end_cart=end_cart; play_end_cart=end_cart;
play_stream=-1; play_stream=-1;
play_cart=0; play_cart=0;
play_cut="";
play_is_playing=false; play_is_playing=false;
// //
@@ -74,12 +75,37 @@ RDSimplePlayer::~RDSimplePlayer()
} }
bool RDSimplePlayer::isPlaying()
{
return play_is_playing;
}
void RDSimplePlayer::setCart(unsigned cart) void RDSimplePlayer::setCart(unsigned cart)
{ {
play_cart=cart; play_cart=cart;
} }
void RDSimplePlayer::setCart(QString cart)
{
QStringList cartcut=cart.split("_");
play_cart=cartcut[0].toUInt();
if(cartcut.size()>1) {
setCut(cart);
}
else {
play_cut="";
}
}
void RDSimplePlayer::setCut(QString cut)
{
play_cut=cut;
}
RDTransportButton *RDSimplePlayer::playButton() const RDTransportButton *RDSimplePlayer::playButton() const
{ {
return play_start_button; return play_start_button;
@@ -112,14 +138,14 @@ void RDSimplePlayer::play(int start_pos)
stop(); stop();
} }
QString cut = ""; if(play_cut.isEmpty()) {
RDCart *cart=new RDCart(play_cart); RDCart *cart=new RDCart(play_cart);
if(cart->selectCut(&cut)) { cart->selectCut(&play_cut);
if(cut.isEmpty()) { delete cart;
return; }
} if(!play_cut.isEmpty()) {
play_cae-> play_cae->
loadPlay(play_card,cut,&play_stream,&handle); loadPlay(play_card,play_cut,&play_stream,&handle);
if(play_stream<0) { if(play_stream<0) {
return; return;
@@ -130,7 +156,7 @@ void RDSimplePlayer::play(int start_pos)
"END_POINT,"+ // 01 "END_POINT,"+ // 01
"PLAY_GAIN "+ // 02 "PLAY_GAIN "+ // 02
"from CUTS where "+ "from CUTS where "+
"CUT_NAME=\""+RDEscapeString(cut)+"\""; "CUT_NAME=\""+RDEscapeString(play_cut)+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
play_cut_gain=q->value(2).toInt(); play_cut_gain=q->value(2).toInt();
@@ -147,7 +173,6 @@ void RDSimplePlayer::play(int start_pos)
} }
delete q; delete q;
} }
delete cart;
} }

View File

@@ -38,6 +38,9 @@ class RDSimplePlayer : public QWidget
unsigned start_cart,unsigned end_cart,QWidget *parent=0); unsigned start_cart,unsigned end_cart,QWidget *parent=0);
~RDSimplePlayer(); ~RDSimplePlayer();
void setCart(unsigned cart); void setCart(unsigned cart);
void setCart(QString cart);
void setCut(QString cart);
bool isPlaying();
RDTransportButton *playButton() const; RDTransportButton *playButton() const;
RDTransportButton *stopButton() const; RDTransportButton *stopButton() const;
@@ -62,6 +65,7 @@ class RDSimplePlayer : public QWidget
int play_port; int play_port;
std::queue<int> play_handles; std::queue<int> play_handles;
unsigned play_cart; unsigned play_cart;
QString play_cut;
unsigned play_start_cart; unsigned play_start_cart;
unsigned play_end_cart; unsigned play_end_cart;
bool play_is_playing; bool play_is_playing;