void LogLineBox::setTimer(int msecs) { line_up_label->setText(RDGetTimeLength(msecs,true,true)); line_down_label-> setText(RDGetTimeLength(line_logline->effectiveLength()-msecs,true,true)); line_position_bar->setProgress(msecs); }
void LogLineBox::UpdateCountdown() { QTime current=QTime::currentTime().addMSecs(rda->station()->timeOffset()); if(current<line_end_time) { line_length_label->setText(RDGetTimeLength(current.msecsTo(line_end_time), false,false)); } else { line_length_label->setText(RDGetTimeLength(0,false,false)); } }
void RDSlotBox::setTimer(int msecs) { if(line_logline==NULL) { line_up_label->setText(RDGetTimeLength(0,true,true)); line_down_label->setText(RDGetTimeLength(0,true,true)); line_position_bar->setProgress(0); } else { line_up_label->setText(RDGetTimeLength(msecs,true,true)); line_down_label-> setText(RDGetTimeLength(line_logline->effectiveLength()-msecs,true,true)); line_position_bar->setProgress(msecs); } }
void CdRipper::mediaChangedData() { Q3ListViewItem *l; rip_isrc_read=false; rip_track_list->clear(); rip_track[0]=-1; rip_track[1]=-1; for(int i=rip_cdrom->tracks();i>0;i--) { l=new Q3ListViewItem(rip_track_list); l->setText(0,QString().sprintf("%d",i)); if(rip_cdrom->isAudio(i)) { l->setText(4,tr("Audio Track")); } else { l->setText(4,tr("Data Track")); } l->setText(1,RDGetTimeLength(rip_cdrom->trackLength(i))); } rip_cddb_record->clear(); rip_cdrom->setCddbRecord(rip_cddb_record); rip_cddb_lookup->setCddbRecord(rip_cddb_record); Profile("starting metadata lookup"); rip_cddb_lookup->lookupRecord(rip_cdda_dir.path(),rip_conf->ripperDevice(), rip_conf->cddbServer(),8880, RIPPER_CDDB_USER,PACKAGE_NAME,VERSION); Profile("metadata lookup finished"); }
void EditClock::RefreshList(int select_line) { UpdateClock(); RDListViewItem *prev_item=(RDListViewItem *)edit_clocks_list->selectedItem(); if((prev_item!=NULL)&&(select_line>=0)) { select_line=prev_item->text(4).toInt(); } RDListViewItem *item; RDEventLine *eventline; edit_clocks_list->clear(); item=new RDListViewItem(edit_clocks_list); item->setText(2,tr("--- End of clock ---")); for(int i=edit_clock->size()-1;i>=0;i--) { if((eventline=edit_clock->eventLine(i))!=NULL) { item=new RDListViewItem(edit_clocks_list); item->setText(0,eventline->startTime().toString("mm:ss.zzz").left(7)); item->setText(1,eventline->startTime(). addMSecs(eventline->length()).toString("mm:ss.zzz"). left(7)); item->setText(3,RDGetTimeLength(eventline->length(),false,true)); item->setText(2,QString().sprintf("%s [%s]", (const char *)eventline->name(), (const char *)eventline->properties())); item->setText(4,QString().sprintf("%d",i)); if(eventline->color().isValid()) { item->setBackgroundColor(eventline->color()); } if(i==select_line) { edit_clocks_list->setSelected(item,true); } } } }
void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) { QString sql; RDSqlQuery *q; QString schedcode=""; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; } // // Prepend Field Names // if(prepend_names) { *report="CART,CUT,GROUP_NAME,TITLE,ARTIST,ALBUM,YEAR,ISRC,ISCI,LABEL,"; *report+="CLIENT,AGENCY,PUBLISHER,COMPOSER,USER_DEFINED,LENGTH\n"; } // // Generate Rows // if(list_type_filter.isEmpty()) { return; } sql="select CUTS.CUT_NAME,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,CART.ALBUM,\ CART.YEAR,CUTS.ISRC,CUTS.ISCI,CART.LABEL,CART.CLIENT,CART.AGENCY,\ CART.PUBLISHER,CART.COMPOSER,CART.USER_DEFINED,CUTS.LENGTH from CART \ join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ list_type_filter+" order by CUTS.CUT_NAME"; } else { sql=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ list_type_filter+" order by CUTS.CUT_NAME"; } q=new RDSqlQuery(sql); while(q->next()) { *report+=QString().sprintf("%u,",RDCut::cartNumber(q->value(0).toString())); *report+=QString().sprintf("%u,",RDCut::cutNumber(q->value(0).toString())); *report+="\""+q->value(1).toString()+"\","; *report+="\""+q->value(2).toString()+"\","; *report+="\""+q->value(3).toString()+"\","; *report+="\""+q->value(4).toString()+"\","; *report+="\""+q->value(5).toString()+"\","; *report+="\""+q->value(6).toString()+"\","; *report+="\""+q->value(7).toString()+"\","; *report+="\""+q->value(8).toString()+"\","; *report+="\""+q->value(9).toString()+"\","; *report+="\""+q->value(10).toString()+"\","; *report+="\""+q->value(11).toString()+"\","; *report+="\""+q->value(12).toString()+"\","; *report+="\""+q->value(13).toString()+"\","; *report+="\""+RDGetTimeLength(q->value(14).toInt(),false,false)+"\","; *report+="\n"; } }
void RDCueEdit::UpdateCounters() { if(edit_start_button->isOn()) { edit_up_label-> setText(RDGetTimeLength(edit_position_bar->marker(RDMarkerBar::Start),true)); edit_down_label-> setText(RDGetTimeLength(edit_logline-> forcedLength()-edit_position_bar-> marker(RDMarkerBar::Start),true)); } else { if(edit_end_button->isOn()) { edit_up_label-> setText(RDGetTimeLength(edit_position_bar->marker(RDMarkerBar::End), true)); edit_down_label-> setText(RDGetTimeLength(edit_logline-> forcedLength()-edit_position_bar-> marker(RDMarkerBar::End),true)); } else { edit_up_label-> setText(RDGetTimeLength(edit_position_bar->marker(RDMarkerBar::Play), true)); edit_down_label-> setText(RDGetTimeLength(edit_logline-> forcedLength()-edit_position_bar-> marker(RDMarkerBar::Play),true)); } } }
void LogLineBox::setTimer(int msecs) { line_up_label->setText(RDGetTimeLength(msecs,true,true)); switch(line_transition_point) { case RDAirPlayConf::CartSegue: line_down_label-> setText(RDGetTimeLength(line_logline->segueLength(RDLogLine::Segue)-msecs, true,true)); break; case RDAirPlayConf::CartEnd: line_down_label-> setText(RDGetTimeLength(line_logline->effectiveLength()-msecs,true,true)); break; case RDAirPlayConf::CartTransition: line_down_label-> setText(RDGetTimeLength(line_logline->segueLength(line_next_type)-msecs, true,true)); break; } line_position_bar->setProgress(msecs); }
bool RDCartSlot::breakAway(unsigned msecs) { bool ret=false; unsigned cartnum=0; if(slot_options->mode()==RDSlotOptions::BreakawayMode) { if(msecs==0) { stop(); SetInput(true); unload(); slot_box->setService(slot_svcname); slot_box->setStatusLine(tr("Waiting for break...")); } else { cartnum=SelectCart(slot_svcname,msecs); if(cartnum!=0) { switch(slot_deck->state()) { case RDPlayDeck::Playing: case RDPlayDeck::Paused: case RDPlayDeck::Stopping: slot_breakaway_cart=cartnum; slot_breakaway_length=msecs; stop(); break; case RDPlayDeck::Stopped: case RDPlayDeck::Finished: SetInput(false); if(slot_timescaling_active) { load(cartnum,msecs); } else { load(cartnum); } play(); syslog(LOG_INFO,"started breakaway, len: %u cart: %u cut: %d", msecs,cartnum,slot_logline->cutNumber()); break; } } else { slot_box->setStatusLine(tr("No cart found for length")+" "+ RDGetTimeLength(msecs,false,false)); } } } return ret; }
void AutofillCarts::addData() { int cart=0; if(admin_cart_dialog->exec(&cart,RDCart::Audio,NULL,0, admin_user->name(),admin_user->password())<0) { return; } RDCart *rdcart=new RDCart(cart); QListViewItem *item=new QListViewItem(svc_cart_list); item->setText(0,QString().sprintf("%06d",cart)); item->setText(1,RDGetTimeLength(rdcart->forcedLength(),false,true)); item->setText(2,rdcart->title()); item->setText(3,rdcart->artist()); svc_cart_list->setSelected(item,true); svc_cart_list->ensureItemVisible(item); delete rdcart; }
void DiskRipper::mediaChangedData() { RDListViewItem *l; rip_isrc_read=false; rip_cutnames.clear(); rip_end_track.clear(); for(unsigned i=0;i<rip_wave_datas.size();i++) { delete rip_wave_datas[i]; } rip_wave_datas.clear(); rip_track_list->clear(); rip_track=-1; rip_setcut_button->setDisabled(true); rip_setall_button->setDisabled(true); rip_setsingle_button->setDisabled(true); rip_cartlabel_button->setDisabled(true); rip_clear_button->setDisabled(true); for(int i=rip_cdrom->tracks();i>0;i--) { rip_cutnames.push_back(QString()); rip_end_track.push_back(-1); rip_wave_datas.push_back(new RDWaveData()); rip_wave_datas.back()->setTitle(tr("Track")+QString().sprintf(" %d",i+1)); l=new RDListViewItem(rip_track_list); l->setText(0,QString().sprintf("%d",i)); if(rip_cdrom->isAudio(i)) { l->setText(4,tr("Audio Track")); } else { l->setText(4,tr("Data Track")); } l->setText(1,RDGetTimeLength(rip_cdrom->trackLength(i))); } rip_cddb_record.clear(); rip_cdrom->setCddbRecord(&rip_cddb_record); rip_cddb_lookup->setCddbRecord(&rip_cddb_record); rip_cddb_lookup-> lookupRecord(rip_cdda_dir.path(),rdlibrary_conf->ripperDevice(), rdlibrary_conf->cddbServer(),8880, RIPPER_CDDB_USER,PACKAGE_NAME,VERSION); }
void AutofillCarts::RefreshList() { QListViewItem *item; svc_cart_list->clear(); QString sql=QString().sprintf("select AUTOFILLS.CART_NUMBER,\ CART.FORCED_LENGTH,CART.TITLE,CART.ARTIST\ from AUTOFILLS left join CART\ on AUTOFILLS.CART_NUMBER=CART.NUMBER\ where SERVICE=\"%s\"", (const char *)svc_svc->name()); RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { item=new QListViewItem(svc_cart_list); item->setText(0,QString().sprintf("%06u",q->value(0).toUInt())); item->setText(1,RDGetTimeLength(q->value(1).toInt(),false,true)); item->setText(2,q->value(2).toString()); item->setText(3,q->value(3).toString()); } delete q; }
void ListCasts::RefreshItem(RDListViewItem *item) { QString sql; RDSqlQuery *q; sql=QString().sprintf("select STATUS,ITEM_TITLE,ORIGIN_DATETIME,SHELF_LIFE,\ AUDIO_TIME,ITEM_DESCRIPTION,ITEM_CATEGORY,ITEM_LINK \ from PODCASTS where ID=%d",item->id()); q=new RDSqlQuery(sql); if(q->first()) { switch((RDPodcast::Status)q->value(0).toUInt()) { case RDPodcast::StatusActive: item->setPixmap(0,*list_greenball_map); break; case RDPodcast::StatusPending: item->setPixmap(0,*list_redball_map); break; case RDPodcast::StatusExpired: item->setPixmap(0,*list_whiteball_map); break; } item->setText(1,q->value(1).toString()); item->setText(2,RDUtcToLocal(q->value(2).toDateTime()). toString("MM/dd/yyyy hh:mm:ss")); if(q->value(3).toInt()==0) { item->setText(3,tr("Never")); } else { item->setText(3,RDUtcToLocal(q->value(2).toDateTime()). addDays(q->value(3).toInt()).toString("MM/dd/yyyy")); } item->setText(4,RDGetTimeLength(q->value(4).toInt(),false,false)); item->setText(5,q->value(5).toString()); item->setText(6,q->value(6).toString()); item->setText(7,q->value(7).toString()); } delete q; }
void RDMarkerWaveform::paintEvent(QPaintEvent *e) { int h=size().height(); int w=size().width(); int ref=YCoordinate(0.158489); QPixmap *pix=new QPixmap(size()); RDWavePainter *p= new RDWavePainter(pix,wave_cut,wave_station,wave_user,wave_config); p->fillRect(0,0,size().width(),size().height(),Qt::white); // // Dead Zone // p->setPen(colorGroup().mid()); p->setBrush(colorGroup().mid()); p->drawRect(XCoordinate(wave_raw_length)+10,0,w,h); // // Time Ticks // p->setFont(QFont("helvetica",8,QFont::Normal)); for(int i=GridIncrement();i<(2*wave_raw_length);i+=GridIncrement()) { p->setPen(Qt::green); p->moveTo(XCoordinate(i)+10,0); p->lineTo(XCoordinate(i)+10,h); p->setPen(Qt::red); p->drawText(XCoordinate(i)+5+10,h-5,RDGetTimeLength(i,false,false)); } // // Reference Level // p->setPen(Qt::red); p->setBrush(QBrush()); p->moveTo(10,h/2+ref); p->lineTo(w-10,h/2+ref); p->moveTo(10,h/2-ref); p->lineTo(w-10,h/2-ref); // // Waveform // p->drawWaveByMsecs(10,size().width()-20,wave_start,wave_start+wave_width, wave_gain,wave_channel,Qt::black); // // Faux End Pieces // p->setPen(palette().active().background()); p->setBrush(palette().active().background()); p->drawRect(0,0,10,h); p->drawRect(w-10,0,10,h); // // Border // p->setPen(Qt::black); p->setBrush(QBrush()); p->drawRect(10,0,size().width()-20,size().height()); // // Markers // for(int i=1;i<RDMarkerWaveform::LastMarker;i++) { if(wave_cursors[i]>=0) { DrawCursor(p,(RDMarkerWaveform::CuePoints)i); } } delete p; QPainter *pa=new QPainter(this); pa->drawPixmap(0,0,*pix); wave_image=pix->convertToImage(); delete pix; delete pa; }
bool RDReport::ExportTechnical(const QString &filename,const QDate &startdate, const QDate &enddate,bool incl_hdr,bool incl_crs, const QString &mixtable) { QString sql; RDSqlQuery *q; QString cut; QString str; QString cart_fmt; QString cart_num; char eol[3]="\n"; if(incl_crs) { strcpy(eol,"\r\n"); } QFile *file=new QFile(filename); if(!file->open(QIODevice::WriteOnly|QIODevice::Truncate)) { report_error_code=RDReport::ErrorCantOpen; delete file; return false; } Q3TextStream *strm=new Q3TextStream(file); strm->setEncoding(Q3TextStream::UnicodeUTF8); if(useLeadingZeros()) { cart_fmt=QString().sprintf("%%0%uu",cartDigits()); } else { cart_fmt="%6u"; } sql=QString("select ")+ "ELR_LINES.LENGTH,"+ // 00 "ELR_LINES.CART_NUMBER,"+ // 01 "ELR_LINES.EVENT_DATETIME,"+ // 02 "ELR_LINES.EVENT_TYPE,"+ // 03 "ELR_LINES.EXT_START_TIME,"+ // 04 "ELR_LINES.EXT_LENGTH,"+ // 05 "ELR_LINES.EXT_DATA,"+ // 06 "ELR_LINES.EXT_EVENT_ID,"+ // 07 "ELR_LINES.TITLE,"+ // 08 "CART.FORCED_LENGTH,"+ // 09 "ELR_LINES.STATION_NAME,"+ // 10 "ELR_LINES.PLAY_SOURCE,"+ // 11 "ELR_LINES.CUT_NUMBER,"+ // 12 "ELR_LINES.START_SOURCE,"+ // 13 "ELR_LINES.ONAIR_FLAG "+ // 14 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ "order by EVENT_DATETIME"; q=new RDSqlQuery(sql); // // Write File Header // if(incl_hdr) { if(startdate==enddate) { *strm << RDReport::center("Rivendell RDAirPlay Technical Playout Report for "+ startdate.toString("MM/dd/yyyy"),96); *strm << eol; } else { *strm << RDReport::center("Rivendell RDAirPlay Technical Playout Report for "+ startdate.toString("MM/dd/yyyy")+" - "+ enddate.toString("MM/dd/yyyy"),96); *strm << eol; } *strm << RDReport::center(name()+" -- "+description(),96); *strm << eol; *strm << "--Time-- -Cart- Cut --Title---------------- A-Len N-Len --Host---- Srce StartedBy OnAir"; *strm << eol; } // // Write Data Rows // while(q->next()) { if(q->value(12).toInt()>0) { cut=QString().sprintf("%03d",q->value(12).toInt()); } else { if((RDAirPlayConf::TrafficAction)q->value(3).toInt()== RDAirPlayConf::TrafficMacro) { cut="rml"; } else { cut=" "; } } cart_num=QString().sprintf(cart_fmt,q->value(1).toUInt()); *strm << q->value(2).toTime().toString("hh:mm:ss")+" "; *strm << cart_num+" "; *strm << cut+" "; *strm << RDReport::leftJustify(q->value(8).toString(),23)+" "; *strm << RDGetTimeLength(q->value(0).toInt(),true,false).right(5)+" "; *strm << RDGetTimeLength(q->value(9).toInt(),true,false).right(5)+" "; *strm << RDReport::leftJustify(q->value(10).toString(),10)+" "; switch((RDLogLine::PlaySource)q->value(11).toInt()) { case RDLogLine::MainLog: *strm << "Main "; break; case RDLogLine::AuxLog1: *strm << "Aux1 "; break; case RDLogLine::AuxLog2: *strm << "Aux2 "; break; case RDLogLine::SoundPanel: *strm << "SPnl "; break; case RDLogLine::CartSlot: *strm << "Slot "; break; default: *strm << " "; break; } *strm << RDReport::leftJustify(RDLogLine::startSourceText((RDLogLine::StartSource)q->value(13).toInt()),7)+" "; if(q->value(14).toString()=="Y") { *strm << " Yes "; } else { *strm << " No "; } *strm << eol; } delete q; delete strm; delete file; report_error_code=RDReport::ErrorOk; return true; }
void RDPanelButton::WriteKeycap(int secs) { QString text=button_text; QPixmap *pix=new QPixmap(size().width(),size().height()); QPainter *p=new QPainter(pix); if(button_state) { if(button_flash) { if(button_flash_state) { p->fillRect(0,0,size().width(),size().height(),button_color); p->setPen(RDGetTextColor(button_color)); } else { p->fillRect(0,0,size().width(),size().height(),button_default_color); p->setPen(RDGetTextColor(button_default_color)); } } else { p->fillRect(0,0,size().width(),size().height(),button_color); p->setPen(RDGetTextColor(button_color)); } } else { p->fillRect(0,0,size().width(),size().height(),button_color); p->setPen(RDGetTextColor(button_color)); } // // Button Title // QFont font("helvetica",13,QFont::Normal); font.setPixelSize(13); QFontMetrics m(font); p->setFont(font); p->drawText(RDPANEL_BUTTON_MARGIN,m.lineSpacing(), GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN)); p->drawText(RDPANEL_BUTTON_MARGIN,2*m.lineSpacing(), GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN)); p->drawText(RDPANEL_BUTTON_MARGIN,3*m.lineSpacing(), GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN)); // // Time Field & Output Text // if(!button_text.isEmpty()) { if(secs<0) { QFont out_font("helvetica",13,QFont::Normal); out_font.setPixelSize(13); p->setFont(out_font); if(button_pause_when_finished) { p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN,"Finished"); } else { if(button_active_length>=0) { p->drawText(RDPANEL_BUTTON_MARGIN,size().height()- RDPANEL_BUTTON_MARGIN, RDGetTimeLength(button_active_length+1000,true,false)); } else { p->drawText(RDPANEL_BUTTON_MARGIN,size().height()- RDPANEL_BUTTON_MARGIN,tr("No Audio")); } } } else { if(secs>8) { p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN, RDGetTimeLength(1000*(secs+1),true,false)); } else { QFont out_font("helvetica",18,QFont::Bold); out_font.setPixelSize(18); p->setFont(out_font); QString secstr=QString().sprintf(":%d",secs+1); p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN,secstr); } QFont out_font("helvetica",18,QFont::Bold); out_font.setPixelSize(18); p->setFont(out_font); QFontMetrics om(out_font); p->drawText(size().width()-om.width(button_output_text)- RDPANEL_BUTTON_MARGIN, size().height()-RDPANEL_BUTTON_MARGIN,button_output_text); } } p->end(); setPixmap(*pix); delete p; delete pix; }
QString RDLogLine::xml(int line) const { QString ret; #ifndef WIN32 ret+=" <logLine>\n"; ret+=" "+RDXmlField("line",line); ret+=" "+RDXmlField("id",id()); ret+=" "+RDXmlField("type",RDLogLine::typeText(type())); ret+=" "+RDXmlField("cartType",RDCart::typeText(cartType())); ret+=" "+RDXmlField("cartNumber",cartNumber()); ret+=" "+RDXmlField("cutNumber",cutNumber()); ret+=" "+RDXmlField("groupName",groupName()); ret+=" "+RDXmlField("groupColor",groupColor().name()); ret+=" "+RDXmlField("title",title()); ret+=" "+RDXmlField("artist",artist()); ret+=" "+RDXmlField("publisher",publisher()); ret+=" "+RDXmlField("composer",composer()); ret+=" "+RDXmlField("album",album()); ret+=" "+RDXmlField("label",label()); if(year().isValid()) { ret+=" "+RDXmlField("year",year().year()); } else { ret+=" "+RDXmlField("year"); } ret+=" "+RDXmlField("client",client()); ret+=" "+RDXmlField("agency",agency()); ret+=" "+RDXmlField("userDefined",userDefined()); ret+=" "+RDXmlField("usageCode",usageCode()); ret+=" "+RDXmlField("enforceLength",enforceLength()); ret+=" "+RDXmlField("forcedLength",RDGetTimeLength(forcedLength(),true)); ret+=" "+RDXmlField("evergreen",evergreen()); ret+=" "+RDXmlField("source",RDLogLine::sourceText(source())); ret+=" "+RDXmlField("timeType",RDLogLine::timeTypeText(timeType())); if(startTime(RDLogLine::Logged).isValid()&& (!startTime(RDLogLine::Logged).isNull())) { ret+=" "+RDXmlField("startTime",startTime(RDLogLine::Logged). toString("hh:mm:ss.zzz")); } else { ret+=" "+RDXmlField("startTime"); } ret+=" "+RDXmlField("transitionType",RDLogLine::transText(transType())); ret+=" "+RDXmlField("cutQuantity",cutQuantity()); ret+=" "+RDXmlField("lastCutPlayed",lastCutPlayed()); ret+=" "+RDXmlField("markerComment",markerComment()); ret+=" "+RDXmlField("markerLabel",markerLabel()); ret+=" "+RDXmlField("originUser",originUser()); ret+=" "+RDXmlField("originDateTime",originDateTime()); ret+=" "+RDXmlField("startPoint",startPoint(RDLogLine::CartPointer), "src=\"cart\""); ret+=" "+RDXmlField("startPoint",startPoint(RDLogLine::LogPointer), "src=\"log\""); ret+=" "+RDXmlField("endPoint",endPoint(RDLogLine::CartPointer), "src=\"cart\""); ret+=" "+RDXmlField("endPoint",endPoint(RDLogLine::LogPointer), "src=\"log\""); ret+=" "+RDXmlField("segueStartPoint", segueStartPoint(RDLogLine::CartPointer), "src=\"cart\""); ret+=" "+RDXmlField("segueStartPoint", segueStartPoint(RDLogLine::LogPointer),"src=\"log\""); ret+=" "+RDXmlField("segueEndPoint", segueEndPoint(RDLogLine::CartPointer), "src=\"cart\""); ret+=" "+RDXmlField("segueEndPoint", segueEndPoint(RDLogLine::LogPointer),"src=\"log\""); ret+=" "+RDXmlField("segueGain",segueGain()); ret+=" "+RDXmlField("fadeupPoint", fadeupPoint(RDLogLine::CartPointer),"src=\"cart\""); ret+=" "+RDXmlField("fadeupPoint", fadeupPoint(RDLogLine::LogPointer),"src=\"log\""); ret+=" "+RDXmlField("fadeupGain",fadeupGain()); ret+=" "+RDXmlField("fadedownPoint", fadedownPoint(RDLogLine::CartPointer),"src=\"cart\""); ret+=" "+RDXmlField("fadedownPoint", fadedownPoint(RDLogLine::LogPointer),"src=\"log\""); ret+=" "+RDXmlField("duckUpGain",duckUpGain()); ret+=" "+RDXmlField("duckDownGain",duckDownGain()); ret+=" "+RDXmlField("talkStartPoint",talkStartPoint()); ret+=" "+RDXmlField("talkEndPoint",talkEndPoint()); ret+=" "+RDXmlField("hookMode",hookMode()); ret+=" "+RDXmlField("hookStartPoint",hookStartPoint()); ret+=" "+RDXmlField("hookEndPoint",hookEndPoint()); ret+=" </logLine>\n"; #endif // WIN32 return ret; }
void ListReports::GenerateCartDumpFixed(QString *report,bool prepend_names) { QString sql; RDSqlQuery *q; QString schedcode=""; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; } // // Prepend Field Names // if(prepend_names) { *report="CART |"; *report+="CUT|"; *report+="GROUP_NAME|"; *report+="TITLE |"; *report+="ARTIST |"; *report+="ALBUM |"; *report+="YEAR|"; *report+="ISRC |"; *report+="LABEL |"; *report+="CLIENT |"; *report+="AGENCY |"; *report+="PUBLISHER |"; *report+="COMPOSER |"; *report+="USER_DEFINED |"; *report+="LENGTH |\n"; } // // Generate Rows // if(list_type_filter.isEmpty()) { return; } sql="select CUTS.CUT_NAME,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,CART.ALBUM,\ CART.YEAR,CUTS.ISRC,CART.LABEL,CART.CLIENT,CART.AGENCY,CART.PUBLISHER,\ CART.COMPOSER,CART.USER_DEFINED,CUTS.LENGTH from CART \ join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ list_type_filter+" order by CUTS.CUT_NAME"; } else { sql+=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ list_type_filter+" order by CUTS.CUT_NAME"; } q=new RDSqlQuery(sql); while(q->next()) { // // Cart Number // *report+=QString().sprintf("%-6s|",(const char *)q->value(0).toString(). utf8().left(6)); // // Cut Number // *report+= QString().sprintf("%-3s|",(const char *)q->value(0).toString().right(3)); // // Group Name // *report+=QString().sprintf("%-10s|",(const char *)q->value(1).toString(). utf8()); // // Title // *report+=QString().sprintf("%-255s|",(const char *)q->value(2).toString(). utf8()); // // Artist // *report+=QString().sprintf("%-255s|",(const char *)q->value(3).toString(). utf8()); // // Album // *report+=QString().sprintf("%-255s|",(const char *)q->value(4).toString(). utf8()); // // Year // if(q->value(5).toDate().isNull()) { *report+=" |"; } else { *report+=QString().sprintf("%4d|",q->value(5).toDate().year()); } // // ISRC // *report+=QString().sprintf("%-12s|",(const char *)q->value(6).toString(). utf8()); // // Label // *report+=QString().sprintf("%-64s|",(const char *)q->value(7).toString(). utf8()); // // Client // *report+=QString().sprintf("%-64s|",(const char *)q->value(8).toString(). utf8()); // // Agency // *report+=QString().sprintf("%-64s|",(const char *)q->value(9).toString(). utf8()); // // Publisher // *report+=QString().sprintf("%-64s|",(const char *)q->value(10).toString(). utf8()); // // Composer // *report+=QString().sprintf("%-64s|",(const char *)q->value(11).toString(). utf8()); // // User Defined // *report+=QString().sprintf("%-255s|",(const char *)q->value(12).toString(). utf8()); // // Length // *report+=QString().sprintf("%9s|", (const char *)RDGetTimeLength(q->value(13).toInt(),true,true)); // // End of Line // *report+="\n"; } delete q; }
void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names) { QString sql; RDSqlQuery *q; QString schedcode=""; QStringList f0; int code_quan=0; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; } // // Generate Rows // if(list_type_filter.isEmpty()) { return; } sql=QString("select CART.NUMBER,CART.TYPE,CUTS.CUT_NAME,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,")+ "CART.ALBUM,CART.YEAR,CUTS.ISRC,CUTS.ISCI,CART.LABEL,CART.CLIENT,"+ "CART.AGENCY,CART.PUBLISHER,CART.COMPOSER,CART.CONDUCTOR,CART.SONG_ID,"+ "CART.USER_DEFINED,CUTS.DESCRIPTION,CUTS.OUTCUE,"+ "CUTS.LENGTH,"+ "CUTS.START_POINT,CUTS.END_POINT,"+ "CUTS.SEGUE_START_POINT,CUTS.SEGUE_END_POINT,"+ "CUTS.HOOK_START_POINT,CUTS.HOOK_END_POINT,"+ "CUTS.TALK_START_POINT,CUTS.TALK_END_POINT,"+ "CUTS.FADEUP_POINT,CUTS.FADEDOWN_POINT,"+ "SCHED_CODES from CART "+ "left join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ list_type_filter+" order by CART.NUMBER,CUTS.CUT_NAME"; } else { sql+=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ list_type_filter+" order by CART.NUMBER,CUTS.CUT_NAME"; } q=new RDSqlQuery(sql); // // Get max number of scheduler codes // while(q->next()) { f0=f0.split(" ",q->value(17).toString()); if((int)f0.size()>code_quan) { code_quan=f0.size(); } } code_quan--; // // Prepend Field Names // if(prepend_names) { *report="CART,CUT,TYPE,GROUP_NAME,TITLE,ARTIST,ALBUM,YEAR,ISRC,ISCI,LABEL,"; *report+="CLIENT,AGENCY,PUBLISHER,COMPOSER,CONDUCTOR,SONG_ID,USER_DEFINED,"; *report+="DESCRIPTION,OUTCUE,"; *report+="FILENAME,LENGTH,"; *report+="START_POINT,END_POINT,"; *report+="SEGUE_START_POINT,SEGUE_END_POINT,"; *report+="HOOK_START_POINT,HOOK_END_POINT,"; *report+="TALK_START_POINT,TALK_END_POINT,"; *report+="FADEUP_POINT,FADEDOWN_POINT,"; for(int i=0;i<code_quan;i++) { *report+=QString().sprintf("SCHED_CODE%u,",i+1); } *report=report->left(report->length()-1); *report+="\n"; } // // Generate Rows // q->seek(-1); while(q->next()) { RDCart::Type type=(RDCart::Type)q->value(1).toInt(); *report+=QString().sprintf("%u,",q->value(0).toUInt()); if(type==RDCart::Macro) { *report+="0,\"macro\","; } else { *report+=QString().sprintf("%u,",RDCut::cutNumber(q->value(2).toString())); *report+="\"audio\","; } *report+="\""+q->value(3).toString()+"\","; *report+="\""+q->value(4).toString()+"\","; *report+="\""+q->value(5).toString()+"\","; *report+="\""+q->value(6).toString()+"\","; *report+="\""+q->value(7).toDate().toString("yyyy")+"\","; *report+="\""+q->value(8).toString()+"\","; *report+="\""+q->value(9).toString()+"\","; *report+="\""+q->value(10).toString()+"\","; *report+="\""+q->value(11).toString()+"\","; *report+="\""+q->value(12).toString()+"\","; *report+="\""+q->value(13).toString()+"\","; *report+="\""+q->value(14).toString()+"\","; *report+="\""+q->value(15).toString()+"\","; *report+="\""+q->value(16).toString()+"\","; *report+="\""+q->value(17).toString()+"\","; *report+="\""+q->value(18).toString()+"\","; *report+="\""+q->value(19).toString()+"\","; if(type==RDCart::Macro) { *report+="\"\","; } else { *report+="\""+q->value(2).toString()+".wav\","; } *report+="\""+ RDGetTimeLength(q->value(20).toInt(),false,false).stripWhiteSpace()+"\","; if(type==RDCart::Macro) { *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; *report+="-1,"; } else { *report+=QString().sprintf("%d,",q->value(21).toInt()); *report+=QString().sprintf("%d,",q->value(22).toInt()); *report+=QString().sprintf("%d,",q->value(23).toInt()); *report+=QString().sprintf("%d,",q->value(24).toInt()); *report+=QString().sprintf("%d,",q->value(25).toInt()); *report+=QString().sprintf("%d,",q->value(26).toInt()); *report+=QString().sprintf("%d,",q->value(27).toInt()); *report+=QString().sprintf("%d,",q->value(28).toInt()); *report+=QString().sprintf("%d,",q->value(29).toInt()); *report+=QString().sprintf("%d,",q->value(30).toInt()); } f0=f0.split(" ",q->value(31).toString()); for(int i=0;i<code_quan;i++) { if(((int)f0.size()>i)&&(f0[i]!=".")) { *report+="\""+f0[i].stripWhiteSpace()+"\","; } else { *report+="\"\","; } } *report=report->left(report->length()-1); *report+="\n"; } }
QString MainObject::ListLine(RDLogEvent *evt,int line) const { QString ret=""; RDLogLine *logline=evt->logLine(line); switch(logline->timeType()) { case RDLogLine::Hard: ret+=QString(). sprintf("T%s ",(const char *)logline->startTime(RDLogLine::Logged). toString("hh:mm:ss")); break; case RDLogLine::Relative: ret+=QString(). sprintf(" %s ",(const char *)evt->blockStartTime(line). toString("hh:mm:ss")); break; case RDLogLine::NoTime: ret+=" "; break; } ret+=QString().sprintf("%-7s", (const char *)RDLogLine::transText(logline->transType())); switch(logline->type()) { case RDLogLine::Cart: case RDLogLine::Macro: ret+=QString().sprintf("%06u ",logline->cartNumber()); ret+=QString().sprintf("%-12s",(const char *)logline->groupName()); ret+=QString().sprintf("%5s", (const char *)RDGetTimeLength(logline->forcedLength(),false,false))+" "; ret+=logline->title(); break; case RDLogLine::Marker: ret+="MARKER "; ret+=" "; ret+=" "; ret+=logline->markerComment(); break; case RDLogLine::Track: ret+="TRACK "; ret+=" "; ret+=" "; ret+=logline->markerComment(); break; case RDLogLine::Chain: ret+="LOG CHN "; ret+=" "; ret+=" "; ret+=logline->markerLabel(); break; case RDLogLine::MusicLink: ret+="LINK "; ret+=" "; ret+=" "; ret+="[music import]"; break; case RDLogLine::TrafficLink: ret+="LINK "; ret+=" "; ret+=" "; ret+="[traffic import]"; break; case RDLogLine::OpenBracket: case RDLogLine::CloseBracket: case RDLogLine::UnknownType: break; } return ret; }
bool RDReport::ExportRadioTraffic(const QDate &startdate,const QDate &enddate, const QString &mixtable) { QString sql; RDSqlQuery *q; FILE *f; QString air_fmt; #ifdef WIN32 QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate); #else QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate); #endif QFile file(filename); if((f=fopen((const char *)filename,"w"))==NULL) { report_error_code=RDReport::ErrorCantOpen; return false; } if(useLeadingZeros()) { air_fmt=QString().sprintf("%%0%uu ",cartDigits()); } else { air_fmt=QString().sprintf("%%%-uu ",cartDigits()); } sql=QString().sprintf("select `%s_SRT`.LENGTH,`%s_SRT`.CART_NUMBER,\ `%s_SRT`.EVENT_DATETIME,`%s_SRT`.EVENT_TYPE,\ `%s_SRT`.EXT_START_TIME,`%s_SRT`.EXT_LENGTH,\ `%s_SRT`.EXT_DATA,`%s_SRT`.EXT_EVENT_ID,\ `%s_SRT`.EXT_ANNC_TYPE,`%s_SRT`.TITLE,\ `%s_SRT`.EXT_CART_NAME from `%s_SRT` \ left join CART on\ `%s_SRT`.CART_NUMBER=CART.NUMBER\ order by EVENT_DATETIME", (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable, (const char *)mixtable); q=new RDSqlQuery(sql); // // Write Data Rows // while(q->next()) { fprintf(f,"%s ",(const char *)q->value(4).toTime().toString("hh:mm:ss")); fprintf(f,"%s ",(const char *)q->value(2).toDateTime(). toString("hh:mm:ss")); if(q->value(5).toInt()>0) { fprintf(f,"0%s ",(const char *)RDGetTimeLength(q->value(5).toInt(), true,false)); } else { fprintf(f,"00:00:00 "); } if(q->value(0).toInt()>0) { fprintf(f,"0%s ",(const char *)RDGetTimeLength(q->value(0).toInt(), true,false)); } else { fprintf(f,"00:00:00 "); } fprintf(f,air_fmt,q->value(1).toUInt()); fprintf(f,"%-34s ",(const char *)q->value(9).toString().left(34)); if(q->value(6).toString().isEmpty()) { fprintf(f," "); } else { fprintf(f,"%-32s",(const char *)q->value(6).toString().left(32). stripWhiteSpace()); } fprintf(f,"\r\n"); } delete q; fclose(f); report_error_code=RDReport::ErrorOk; return true; }
void RecordCut::recTimerData() { rec_timer_value+=RECORD_CUT_TIMER_INTERVAL; rec_timer_label->setText(RDGetTimeLength(rec_timer_value,true)); }
void ListLog::RefreshItem(RDListViewItem *l,int line) { int lines[TRANSPORT_QUANTITY]; bool is_next=false; RDLogLine *log_line=list_log->logLine(line); if(log_line==NULL) { return; } switch(log_line->timeType()) { case RDLogLine::Hard: l->setText(1,QString("T")+ TimeString(log_line->startTime(RDLogLine::Logged))); l->setText(8,QString("T")+ TimeString(log_line->startTime(RDLogLine::Logged))); for(int i=0; i<list_log_list->columns(); i++) { l->setTextColor(i,LOG_HARDTIME_TEXT_COLOR,QFont::Bold); } l->setText(14,"N"); break; default: if(!log_line->startTime(RDLogLine::Logged).isNull()) { l->setText(8,TimeString(log_line->startTime(RDLogLine::Logged))); } else { l->setText(8,""); } for(int i=0; i<list_log_list->columns(); i++) { l->setTextColor(i,LOG_RELATIVE_TEXT_COLOR,QFont::Normal); } l->setText(14,""); break; } switch(log_line->transType()) { case RDLogLine::Play: l->setText(3,tr("PLAY")); l->setTextColor(3,l->textColor(2),QFont::Normal); break; case RDLogLine::Stop: l->setText(3,tr("STOP")); l->setTextColor(3,l->textColor(2),QFont::Normal); break; case RDLogLine::Segue: l->setText(3,tr("SEGUE")); if(log_line->hasCustomTransition()) { l->setTextColor(3,RD_CUSTOM_TRANSITION_COLOR,QFont::Bold); } else { if(log_line->timeType()==RDLogLine::Hard) { l->setTextColor(3,l->textColor(2),QFont::Bold); } else { l->setTextColor(3,l->textColor(2),QFont::Normal); } } break; default: break; } switch(log_line->type()) { case RDLogLine::Cart: switch(log_line->source()) { case RDLogLine::Tracker: l->setPixmap(0,*list_track_cart_map); break; default: l->setPixmap(0,*list_playout_map); break; } l->setText(2,RDGetTimeLength(log_line->effectiveLength(),false,false)); l->setText(4,QString(). sprintf("%06u",log_line->cartNumber())); if((log_line->source()!=RDLogLine::Tracker)|| log_line->originUser().isEmpty()|| (!log_line->originDateTime().isValid())) { l->setText(5,log_line->title()); } else { l->setText(5,QString(). sprintf("%s -- %s %s", (const char *)log_line->title(), (const char *)log_line->originUser(), (const char *)log_line->originDateTime(). toString("M/d hh:mm"))); } l->setText(6,log_line->artist()); l->setText(7,log_line->groupName()); l->setTextColor(7,log_line->groupColor(),QFont::Bold); l->setText(9,log_line->album()); l->setText(10,log_line->label()); l->setText(11,log_line->client()); l->setText(12,log_line->agency()); break; case RDLogLine::Macro: l->setPixmap(0,*list_macro_map); l->setText(2,RDGetTimeLength(log_line->forcedLength(),false,false)); l->setText(4,QString(). sprintf("%06u",log_line->cartNumber())); l->setText(5,log_line->title()); l->setText(6,log_line->artist()); l->setText(7,log_line->groupName()); l->setTextColor(7,log_line->groupColor(),QFont::Bold); l->setText(9,log_line->album()); l->setText(10,log_line->label()); l->setText(11,log_line->client()); l->setText(12,log_line->agency()); break; case RDLogLine::Marker: l->setPixmap(0,*list_notemarker_map); l->setText(2,"00:00"); l->setText(4,tr("MARKER")); l->setText(5,RDTruncateAfterWord(log_line->markerComment(),5,true)); l->setText(13,log_line->markerLabel()); break; case RDLogLine::Track: l->setPixmap(0,*list_mic16_map); l->setText(2,"00:00"); l->setText(4,tr("TRACK")); l->setText(5,RDTruncateAfterWord(log_line->markerComment(),5,true)); break; case RDLogLine::MusicLink: l->setPixmap(0,*list_music_map); l->setText(2,"00:00"); l->setText(4,tr("LINK")); l->setText(5,tr("[music import]")); break; case RDLogLine::TrafficLink: l->setPixmap(0,*list_traffic_map); l->setText(2,"00:00"); l->setText(4,tr("LINK")); l->setText(5,tr("[traffic import]")); break; case RDLogLine::Chain: l->setPixmap(0,*list_chain_map); l->setText(2,""); l->setText(4,tr("CHAIN TO")); l->setText(5,log_line->markerLabel()); l->setText(6,RDTruncateAfterWord(log_line->markerComment(),5,true)); break; default: break; } l->setText(14,QString().sprintf("%d",log_line->id())); l->setText(15,QString().sprintf("%d",line)); l->setText(16,QString().sprintf("%d",log_line->status())); SetPlaybuttonMode(ListLog::ButtonDisabled); list_modify_button->setDisabled(true); switch(log_line->state()) { case RDLogLine::NoCart: if(log_line->type()==RDLogLine::Cart) { l->setPixmap(0,NULL); l->setText(8,""); l->setText(3,""); l->setText(5,tr("[CART NOT FOUND]")); } break; case RDLogLine::NoCut: if(log_line->type()==RDLogLine::Cart) { l->setText(6,tr("[NO VALID CUT AVAILABLE]")); } break; default: if((log_line->type()==RDLogLine::Cart)&& (log_line->effectiveLength()==0)) { l->setText(6,tr("[NO AUDIO AVAILABLE]")); } break; } list_log->transportEvents(lines); for(int i=0; i<TRANSPORT_QUANTITY; i++) { if(line==lines[i]) { is_next=true; } } UpdateColor(line,is_next); }
void RDSlotBox::setCart(RDLogLine *logline) { QString cutname; QPalette p; line_logline=logline; RDCart *cart; RDCut *cut; line_type=logline->type(); switch(line_type) { case RDLogLine::Cart: cart=new RDCart(logline->cartNumber()); cut=new RDCut(QString().sprintf("%06u_%03u",logline->cartNumber(), logline->cutNumber())); if(!cart->exists()) { line_cart_label-> setText(QString().sprintf("%06u",logline->cartNumber())); line_description_label->clear(); line_artist_label->clear(); line_cut_label->clear(); line_group_label->clear(); line_outcue_label->clear(); line_length_label->setText("00:00"); line_talktime_label->setText(":00"); line_up_label->setText("0:00:00"); line_down_label->setText("0:00:00"); line_title_label->setText(tr("[CART NOT FOUND]")); switch(cart->type()) { case RDCart::Audio: case RDCart::Macro: case RDCart::All: line_icon_label->setPixmap(*line_playout_map); break; } SetColor(QColor(LABELBOX_MISSING_COLOR)); } else { if(((cart->forcedLength()==0)&&(cart->type()==RDCart::Audio))|| (line_logline->state()==RDLogLine::NoCut)) { line_cart_label-> setText(QString().sprintf("%06u",logline->cartNumber())); line_description_label->setText(cut->description()); line_artist_label->setText(tr("[NO AUDIO AVAILABLE]")); line_cut_label->clear(); line_group_label->clear(); line_outcue_label->clear(); line_length_label->setText("00:00"); line_talktime_label->setText(":00"); line_up_label->setText("0:00:00"); line_down_label->setText("0:00:00"); line_icon_label->setPixmap(*line_playout_map); line_title_label->setText(logline->title()); SetColor(QColor(LABELBOX_MISSING_COLOR)); } else { line_cart_label-> setText(QString().sprintf("%06u",logline->cartNumber())); if(line_logline->evergreen()) { SetColor(QColor(LABELBOX_EVERGREEN_COLOR)); } else { SetColor(QColor(LABELBOX_BACKGROUND_COLOR)); } switch(cart->type()) { case RDCart::Audio: case RDCart::All: line_icon_label->setPixmap(*line_playout_map); break; case RDCart::Macro: line_icon_label->setPixmap(*line_macro_map); break; } line_group_label->setText(cart->groupName()); p=line_group_label->palette(); p.setColor(QColorGroup::Foreground,line_logline->groupColor()); line_group_label->setPalette(p); if(line_logline->talkLength()<=0) { line_talktime_label->setText(":00"); } else { line_talktime_label-> setText(RDGetTimeLength(line_logline->talkLength(), false,false)); } line_length_label-> setText(RDGetTimeLength(line_logline->effectiveLength(), false,false)); if(line_logline->timescalingActive()) { line_length_label->setPalette(line_hard_palette); } else { line_length_label->setPalette(line_time_palette); } if(line_logline->originUser().isEmpty()|| (!line_logline->originDateTime().isValid())) { line_title_label-> setText(RDResolveNowNext(line_airplay_conf->titleTemplate(), logline)); } else { line_title_label->setText(line_logline->title()+" -- "+ line_logline->originUser()+" "+ line_logline->originDateTime(). toString("M/d hh:mm")); } line_description_label-> setText(RDResolveNowNext(line_airplay_conf->descriptionTemplate(), logline)); line_artist_label-> setText(RDResolveNowNext(line_airplay_conf->artistTemplate(), logline)); line_up_label-> setText(RDGetTimeLength(line_logline->playPosition(),true,true)); line_down_label-> setText(RDGetTimeLength(line_logline->effectiveLength()- line_logline->playPosition(),true,true)); line_position_bar->setTotalSteps(line_logline->effectiveLength()); line_position_bar->setProgress(line_logline->playPosition()); if(logline->cutNumber()>=0) { line_cut_label-> setText(QString().sprintf("%03u",logline->cutNumber())); line_outcue_label-> setText(RDResolveNowNext(line_airplay_conf->outcueTemplate(), logline)); line_position_bar->show(); line_up_label->show(); line_down_label->show(); } else { SetColor(QColor(LABELBOX_MISSING_COLOR)); line_cut_label->clear(); line_outcue_label->setText(tr("[NO VALID CUT AVAILABLE]")); } line_title_label->show(); line_artist_label->show(); } } delete cart; delete cut; break; case RDLogLine::Macro: line_icon_label->setPixmap(*line_macro_map); line_position_bar->hide(); line_up_label->hide(); line_down_label->hide(); cart=new RDCart(logline->cartNumber()); cut=new RDCut(QString().sprintf("%06u_%03u",logline->cartNumber(), logline->cutNumber())); if(!cart->exists()) { SetColor(QColor(LABELBOX_MISSING_COLOR)); } else { SetColor(QColor(LABELBOX_BACKGROUND_COLOR)); } line_cart_label->setText(QString().sprintf("%06u",cart->number())); line_cut_label->setText(""); line_group_label->setText(cart->groupName()); p=line_group_label->palette(); p.setColor(QColorGroup::Foreground,line_logline->groupColor()); line_group_label->setPalette(p); line_length_label-> setText(RDGetTimeLength(line_logline->effectiveLength(), false,false)); line_title_label->setText(cart->title()); line_description_label->setText(""); line_artist_label->setText(cart->artist()); line_outcue_label->setText(""); delete cart; delete cut; line_title_label->show(); line_artist_label->show(); break; default: break; } }
void ListLog::selectionChangedData() { int count=0; RDListViewItem *item=NULL; RDListViewItem *next=(RDListViewItem *)list_log_list->firstChild(); int start_line=-1; int end_line=-1; while(next!=NULL) { if(list_log_list->isSelected(next)) { item=next; if((start_line<0)&&(next->text(14).toInt()!=END_MARKER_ID)) { start_line=next->text(15).toInt(); } if(next->text(12).toInt()!=END_MARKER_ID) { end_line=next->text(15).toInt(); } count++; } next=(RDListViewItem *)next->nextSibling(); } if(count!=1) { list_endtime_edit->setText(""); list_stoptime_label->setText(tr("Selected:")); SetPlaybuttonMode(ListLog::ButtonDisabled); list_modify_button->setDisabled(true); list_next_button->setDisabled(true); if(start_line>=0) { list_stoptime_edit->setText(RDGetTimeLength(list_log-> length(start_line,end_line+1),true,false)); } return; } switch(CurrentStatus()) { case RDLogLine::Scheduled: case RDLogLine::Paused: SetPlaybuttonMode(ListLog::ButtonPlay); list_modify_button->setEnabled(true); list_next_button->setEnabled(true); break; case RDLogLine::Playing: SetPlaybuttonMode(ListLog::ButtonStop); list_modify_button->setEnabled(true); list_next_button->setDisabled(true); break; case RDLogLine::Finished: SetPlaybuttonMode(ListLog::ButtonDisabled); list_modify_button->setDisabled(true); list_next_button->setDisabled(true); break; default: break; } if(item->text(15).toInt()>=0) { list_endtime_edit->setText(RDGetTimeLength(list_log-> length(item->text(15).toInt(),list_log->size()),true,false)); list_stoptime_label->setText(tr("Next Stop:")); int stoplen=list_log->lengthToStop(item->text(15).toInt()); if(stoplen>=0) { list_stoptime_edit->setText(RDGetTimeLength(stoplen,true,false)); } else { list_stoptime_edit->setText(""); } } else { list_endtime_edit->setText(""); list_stoptime_edit->setText(""); } }
void TestImport::importData() { RDListViewItem *item; int next_line=0; test_events_list->clear(); if(!test_svc->import(test_src,test_date_edit->date(),test_svc->breakString(), test_svc->trackString(test_src),QString(). sprintf("%s_TEST_IMP", (const char *)test_svc->name()))) { QMessageBox::information(this,tr("Import Error"), tr("There was an error during import\nplease check your settings and try again.")); return; } QString sql=QString("select ")+ "TYPE,"+ // 00 "START_HOUR,"+ // 01 "START_SECS,"+ // 02 "EXT_CART_NAME,"+ // 03 "LENGTH,"+ // 04 "EXT_DATA,"+ // 05 "EXT_EVENT_ID,"+ // 06 "EXT_ANNC_TYPE,"+ // 07 "TITLE,"+ // 08 "TRANS_TYPE,"+ // 09 "TIME_TYPE,"+ // 10 "GRACE_TIME "+ // 11 "from `"+RDEscapeString(test_svc->name())+"_TEST_IMP`"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { item=new RDListViewItem(test_events_list); item->setLine(next_line++); item->setText(0,RDSvc::timeString(q->value(1).toInt(), q->value(2).toInt())); item->setText(3,q->value(8).toString()); switch((RDSvc::ImportType)q->value(0).toInt()) { case RDSvc::Cart: case RDSvc::Label: item->setText(1,q->value(3).toString()); if(q->value(4).toInt()>=0) { item->setText(2,RDGetTimeLength(q->value(4).toInt(),false,false)); } item-> setText(4,RDLogLine::transText((RDLogLine::TransType)q->value(9).toInt())); if(q->value(10).toInt()==RDLogLine::Hard) { if(q->value(11).toInt()<0) { item->setText(5,tr("Make Next")); } else { item->setText(5,tr("Start Immediately")); if(q->value(11).toInt()>0) { item->setText(6,RDGetTimeLength(q->value(11).toInt(),true,false)); } } } item->setText(7,q->value(5).toString()); item->setText(8,q->value(6).toString()); item->setText(9,q->value(7).toString()); break; case RDSvc::Break: item->setText(2,RDGetTimeLength(q->value(4).toInt(),false,false)); break; case RDSvc::Track: break; } } delete q; if(getenv(RD_DEBUG_KEEP_IMPORT_TABLE)==NULL) { sql=QString().sprintf("drop table `%s_TEST_IMP`", (const char *)test_svc->name()); q=new RDSqlQuery(sql); delete q; } else { printf("RDAdmin - IMPORT TABLE: %s_TEST_IMP\n", (const char *)test_svc->name()); } }
RecordCut::RecordCut(RDCart *cart,QString cut,bool use_weight, QWidget *parent) : QDialog(parent,"",true) { bool valid; bool is_track=cart->owner().isEmpty(); bool allow_modification=rda->user()->modifyCarts()&&is_track; bool allow_editing=rda->user()->editAudio()&&is_track; rec_use_weighting=use_weight; // // Fix the Window Size // setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); // // Generate Fonts // QFont font=QFont("Helvetica",12,QFont::Bold); font.setPixelSize(12); QFont small_font=QFont("Helvetica",10,QFont::Bold); small_font.setPixelSize(10); QFont large_font=QFont("Helvetica",18,QFont::Bold); large_font.setPixelSize(18); QFont timer_font=QFont("Helvetica",20,QFont::Bold); timer_font.setPixelSize(20); QFont day_font=QFont("helvetica",10,QFont::Normal); day_font.setPixelSize(10); setCaption(tr("RDLibrary - Record")); rec_cut=new RDCut(cut); is_playing=false; is_ready=false; is_recording=false; is_closing=false; rec_timer_value=0; // // Load Audio Assignments // rec_card_no[0]=rda->libraryConf()->inputCard(); rec_port_no[0]=rda->libraryConf()->inputPort(); rec_card_no[1]=rda->libraryConf()->outputCard(); rec_port_no[1]=rda->libraryConf()->outputPort(); rec_play_handle=-1; // // CAE Connection // connect(rda->cae(),SIGNAL(isConnected(bool)),this,SLOT(initData(bool))); connect(rda->cae(),SIGNAL(playing(int)),this,SLOT(playedData(int))); connect(rda->cae(),SIGNAL(playStopped(int)),this,SLOT(playStoppedData(int))); connect(rda->cae(),SIGNAL(recordLoaded(int,int)), this,SLOT(recordLoadedData(int,int))); connect(rda->cae(),SIGNAL(recordUnloaded(int,int,unsigned)), this,SLOT(recordUnloadedData(int,int,unsigned))); connect(rda->cae(),SIGNAL(recording(int,int)),this,SLOT(recordedData(int,int))); connect(rda->cae(),SIGNAL(recordStopped(int,int)), this,SLOT(recordStoppedData(int,int))); connect(rda->cae(),SIGNAL(inputStatusChanged(int,int,bool)), this,SLOT(aesAlarmData(int,int,bool))); // // Audio Parameters // rec_card_no[0]=rda->libraryConf()->inputCard(); rec_card_no[1]=rda->libraryConf()->outputCard(); rec_name=rec_cut->cutName(); switch(rec_cut->codingFormat()) { case 0: rec_format=RDCae::Pcm16; break; case 1: rec_format=RDCae::MpegL2; break; default: rec_format=RDCae::Pcm16; break; } rec_channels=rec_cut->channels(); rec_samprate=rec_cut->sampleRate(); rec_bitrate=rec_cut->bitRate(); rec_length=rec_cut->length(); // // Cut Description // cut_description_edit=new QLineEdit(this); cut_description_edit->setGeometry(10,30,355,19); cut_description_edit->setMaxLength(64); QLabel *cut_description_label= new QLabel(cut_description_edit,tr("&Description"),this); cut_description_label->setGeometry(15,11,120,19); cut_description_label->setFont(font); cut_description_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut Outcue // cut_outcue_edit=new QLineEdit(this); cut_outcue_edit->setGeometry(10,75,355,19); cut_outcue_edit->setMaxLength(64); QLabel *cut_outcue_label=new QLabel(cut_outcue_edit,tr("&Outcue"),this); cut_outcue_label->setGeometry(15,56,120,19); cut_outcue_label->setFont(font); cut_outcue_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut ISCI Code // cut_isci_edit=new QLineEdit(this); cut_isci_edit->setGeometry(10,120,355,19); cut_isci_edit->setMaxLength(32); QLabel *cut_isci_label=new QLabel(cut_isci_edit,tr("&ISCI Code"),this); cut_isci_label->setGeometry(15,101,120,19); cut_isci_label->setFont(font); cut_isci_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut Origin // cut_origin_edit=new QLineEdit(this); cut_origin_edit->setGeometry(10,165,190,19); cut_origin_edit->setReadOnly(true); cut_origin_edit->setMaxLength(64); QLabel *cut_origin_label=new QLabel(cut_origin_edit,tr("Origin"),this); cut_origin_label->setGeometry(15,146,120,19); cut_origin_label->setFont(font); cut_origin_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut ISRC // cut_isrc_edit=new QLineEdit(this); cut_isrc_edit->setGeometry(220,165,145,19); cut_isrc_edit->setMaxLength(64); QLabel *cut_isrc_label=new QLabel(cut_isrc_edit,tr("ISRC"),this); cut_isrc_label->setGeometry(225,146,120,19); cut_isrc_label->setFont(font); cut_isrc_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut Weight // cut_weight_box=new QSpinBox(this); cut_weight_box->setGeometry(10,210,61,19); cut_weight_box->setRange(0,100); QLabel *cut_weight_label=new QLabel(cut_weight_box,tr("Weight"),this); cut_weight_label->setGeometry(10,191,61,19); cut_weight_label->setFont(font); cut_weight_label->setAlignment(Qt::AlignHCenter|Qt::TextShowMnemonic); // // Cut Play Date Time // cut_playdate_edit=new QLineEdit(this); cut_playdate_edit->setGeometry(100,210,150,19); cut_playdate_edit->setReadOnly(true); cut_playdate_edit->setMaxLength(64); QLabel *cut_playdate_label= new QLabel(cut_playdate_edit,tr("Last Played"),this); cut_playdate_label->setGeometry(105,191,120,19); cut_playdate_label->setFont(font); cut_playdate_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Cut Play Counter // cut_playcounter_edit=new QLineEdit(this); cut_playcounter_edit->setGeometry(285,210,80,19); cut_playcounter_edit->setAlignment(Qt::AlignRight); cut_playcounter_edit->setReadOnly(true); cut_playcounter_edit->setMaxLength(64); QLabel *cut_playcounter_label= new QLabel(cut_playcounter_edit,tr("# of Plays"),this); cut_playcounter_label->setGeometry(290,191,120,19); cut_playcounter_label->setFont(font); cut_playcounter_label->setAlignment(Qt::AlignLeft|Qt::TextShowMnemonic); // // Evergreen Checkbox // rec_evergreen_box=new QCheckBox(this); rec_evergreen_box->setGeometry(10,245,15,15); rec_evergreen_label=new QLabel(rec_evergreen_box,tr("Cut is EVERGREEN"),this); rec_evergreen_label->setGeometry(30,245,sizeHint().width()-40,15); rec_evergreen_label->setFont(font); rec_evergreen_label->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); connect(rec_evergreen_box,SIGNAL(toggled(bool)), this,SLOT(evergreenToggledData(bool))); // // Cut Air Date Times // cut_killdatetime_label=new QLabel(tr("Air Date/Time"),this); cut_killdatetime_label->setGeometry(50,268,100,19); cut_killdatetime_label->setAlignment(Qt::AlignHCenter); cut_killdatetime_label->setFont(font); Q3ButtonGroup *button_group=new Q3ButtonGroup(this); button_group->hide(); connect(button_group,SIGNAL(clicked(int)),this,SLOT(airDateButtonData(int))); cut_startdatetime_enable_button=new QRadioButton(tr("Enabled"),this, "air_date_enabled_button"); cut_startdatetime_enable_button->setGeometry(40,290,100,20); button_group->insert(cut_startdatetime_enable_button,true); cut_startdatetime_disable_button=new QRadioButton(tr("Disabled"),this); cut_startdatetime_disable_button->setGeometry(40,310,100,20); button_group->insert(cut_startdatetime_disable_button,false); cut_startdatetime_edit=new Q3DateTimeEdit(this); cut_startdatetime_edit->setGeometry(165,289,170,19); cut_startdatetime_label=new QLabel(cut_startdatetime_edit,tr("&Start"),this); cut_startdatetime_label->setGeometry(120,293,40,12); cut_startdatetime_label->setFont(small_font); cut_startdatetime_label->setAlignment(Qt::AlignRight|Qt::TextShowMnemonic); cut_enddatetime_edit=new Q3DateTimeEdit(this); cut_enddatetime_edit->setGeometry(165,309,170,19); cut_enddatetime_label=new QLabel(cut_enddatetime_edit,tr("End"),this); cut_enddatetime_label->setGeometry(120,313,40,12); cut_enddatetime_label->setFont(small_font); cut_enddatetime_label->setAlignment(Qt::AlignRight|Qt::TextShowMnemonic); // // Cut Daypart // cut_daypart_label=new QLabel(tr("Daypart"),this); cut_daypart_label->setGeometry(50,348,65,19); cut_daypart_label->setAlignment(Qt::AlignHCenter); cut_daypart_label->setFont(font); button_group=new Q3ButtonGroup(this); button_group->hide(); connect(button_group,SIGNAL(clicked(int)),this,SLOT(daypartButtonData(int))); cut_starttime_enable_button=new QRadioButton(tr("Enabled"),this); cut_starttime_enable_button->setGeometry(57,370,100,20); button_group->insert(cut_starttime_enable_button,true); cut_starttime_disable_button=new QRadioButton(tr("Disabled"),this); cut_starttime_disable_button->setGeometry(57,390,100,20); button_group->insert(cut_starttime_disable_button,false); cut_starttime_edit=new RDTimeEdit(this); cut_starttime_edit->setGeometry(222,369,90,19); cut_starttime_label=new QLabel(cut_starttime_edit,tr("&Start Time"),this); cut_starttime_label->setGeometry(137,373,80,12); cut_starttime_label->setFont(small_font); cut_starttime_label->setAlignment(Qt::AlignRight|Qt::TextShowMnemonic); cut_endtime_edit=new RDTimeEdit(this); cut_endtime_edit->setGeometry(222,389,90,19); cut_endtime_label=new QLabel(cut_endtime_edit,tr("End Time"),this); cut_endtime_label->setGeometry(137,393,80,12); cut_endtime_label->setFont(small_font); cut_endtime_label->setAlignment(Qt::AlignRight|Qt::TextShowMnemonic); // // Days of the Week // rec_dayofweek_label=new QLabel(tr("Day of the Week"),this); rec_dayofweek_label->setGeometry(50,428,125,19); rec_dayofweek_label->setAlignment(Qt::AlignHCenter); rec_dayofweek_label->setFont(font); rec_weekpart_button[0]=new QCheckBox(this); rec_weekpart_button[0]->setGeometry(40,447,15,15); rec_weekpart_label[0]=new QLabel(rec_weekpart_button[0],tr("Monday"), this,"rec_weekpart_label[0]"); rec_weekpart_label[0]->setGeometry(62,445,80,20); rec_weekpart_label[0]->setFont(day_font); rec_weekpart_label[0]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[1]=new QCheckBox(this); rec_weekpart_button[1]->setGeometry(120,447,15,15); rec_weekpart_label[1]=new QLabel(rec_weekpart_button[1],tr("Tuesday"),this); rec_weekpart_label[1]->setGeometry(142,445,80,20); rec_weekpart_label[1]->setFont(day_font); rec_weekpart_label[1]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[2]=new QCheckBox(this); rec_weekpart_button[2]->setGeometry(200,447,15,15); rec_weekpart_label[2]=new QLabel(rec_weekpart_button[2],tr("Wednesday"),this); rec_weekpart_label[2]->setGeometry(222,445,80,20); rec_weekpart_label[2]->setFont(day_font); rec_weekpart_label[2]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[3]=new QCheckBox(this); rec_weekpart_button[3]->setGeometry(80,467,15,15); rec_weekpart_label[3]=new QLabel(rec_weekpart_button[3],tr("Thursday"),this); rec_weekpart_label[3]->setGeometry(102,465,80,20); rec_weekpart_label[3]->setFont(day_font); rec_weekpart_label[3]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[4]=new QCheckBox(this); rec_weekpart_button[4]->setGeometry(180,467,15,15); rec_weekpart_label[4]=new QLabel(rec_weekpart_button[4],tr("Friday"),this); rec_weekpart_label[4]->setGeometry(202,465,80,20); rec_weekpart_label[4]->setFont(day_font); rec_weekpart_label[4]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[5]=new QCheckBox(this); rec_weekpart_button[5]->setGeometry(80,487,15,15); rec_weekpart_label[5]=new QLabel(rec_weekpart_button[5],tr("Saturday"),this); rec_weekpart_label[5]->setGeometry(102,485,80,20); rec_weekpart_label[5]->setFont(day_font); rec_weekpart_label[5]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_weekpart_button[6]=new QCheckBox(this); rec_weekpart_button[6]->setGeometry(180,485,15,15); rec_weekpart_label[6]=new QLabel(rec_weekpart_button[6],tr("Sunday"),this); rec_weekpart_label[6]->setGeometry(202,485,80,20); rec_weekpart_label[6]->setFont(day_font); rec_weekpart_label[6]->setAlignment(Qt::AlignVCenter|Qt::AlignLeft); rec_set_button=new QPushButton(tr("Set All"),this); rec_set_button->setGeometry(sizeHint().width()-80,441,55,30); rec_set_button->setFont(small_font); connect(rec_set_button,SIGNAL(clicked()),this,SLOT(setAllData())); rec_clear_button=new QPushButton(tr("Clear All"),this); rec_clear_button->setGeometry(sizeHint().width()-80,476,55,30); rec_clear_button->setFont(small_font); connect(rec_clear_button,SIGNAL(clicked()),this,SLOT(clearAllData())); // // Audio Meter // rec_meter=new RDStereoMeter(this); rec_meter->setGeometry(20,520,rec_meter->geometry().width(), rec_meter->geometry().height()); rec_meter->setReference(0); rec_meter->setMode(RDSegMeter::Independent); QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(meterData())); timer->start(RD_METER_UPDATE_INTERVAL); // // AES Alarm // rec_aes_alarm_label=new QLabel(this); rec_aes_alarm_label->setGeometry(15,592,110,22); rec_aes_alarm_label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter); rec_aes_alarm_label->setFont(large_font); rec_aes_alarm_label->setPalette(QColor(Qt::red)); rec_aes_alarm_label->setText(tr("AES ALARM")); rec_aes_alarm_label->hide(); // // Record Timer // rec_timer=new QTimer(this); connect(rec_timer,SIGNAL(timeout()),this,SLOT(recTimerData())); rec_timer_label=new QLabel(this); rec_timer_label->setGeometry(130,580,120,50); rec_timer_label->setFont(timer_font); rec_timer_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); rec_timer_label->setText(RDGetTimeLength(rec_length,true)); // // Channels // rec_channels_box=new QComboBox(this); rec_channels_box->setGeometry(20,635,60,35); rec_channels_edit=new QLineEdit(this); rec_channels_edit->setGeometry(20,635,60,35); QLabel *rec_channels_box_label= new QLabel(rec_channels_box,tr("Channels"),this); rec_channels_box_label->setGeometry(10,616,80,16); rec_channels_box_label->setAlignment(Qt::AlignHCenter); rec_channels_box_label->setFont(font); connect(rec_channels_box,SIGNAL(activated(int)), this,SLOT(channelsData(int))); // // Record Button // rec_record_button=new RDTransportButton(RDTransportButton::Record,this); rec_record_button->setGeometry(100,620,80,50); rec_record_button->setDefault(true); connect(rec_record_button,SIGNAL(clicked()),this,SLOT(recordData())); // // Play Button // rec_play_button=new RDTransportButton(RDTransportButton::Play,this); rec_play_button->setGeometry(190,620,80,50); rec_play_button->setDefault(true); connect(rec_play_button,SIGNAL(clicked()),this,SLOT(playData())); // // Stop Button // rec_stop_button=new RDTransportButton(RDTransportButton::Stop,this); rec_stop_button->setGeometry(280,620,80,50); rec_stop_button->setDefault(true); rec_stop_button->setState(RDTransportButton::On); rec_stop_button->setOnColor(QColor(Qt::red)); connect(rec_stop_button,SIGNAL(clicked()),this,SLOT(stopData())); // // Record Mode // rec_mode_box=new QComboBox(this); rec_mode_box->setGeometry(10,695,100,35); QLabel *rec_mode_box_label=new QLabel(rec_mode_box,tr("Record Mode"),this); rec_mode_box_label->setGeometry(10,676,100,16); rec_mode_box_label->setAlignment(Qt::AlignHCenter); rec_mode_box_label->setFont(font); // // AutoTrim Mode // rec_trim_box=new QComboBox(this); rec_trim_box->setGeometry(145,695,70,35); QLabel *rec_trim_box_label=new QLabel(rec_trim_box,tr("AutoTrim"),this); rec_trim_box_label->setGeometry(130,676,100,16); rec_trim_box_label->setAlignment(Qt::AlignHCenter); rec_trim_box_label->setFont(font); // // Close Button // QPushButton *close_button=new QPushButton(this); close_button->setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50); close_button->setDefault(true); close_button->setFont(font); close_button->setText(tr("&Close")); connect(close_button,SIGNAL(clicked()),this,SLOT(closeData())); // // Populate Fields // cut_description_edit->setText(rec_cut->description()); cut_outcue_edit->setText(rec_cut->outcue()); cut_origin_name=rec_cut->originName(); cut_origin_datetime=rec_cut->originDatetime(&valid); if(valid) { cut_origin_edit->setText(cut_origin_name+" - "+ cut_origin_datetime.toString("M/d/yyyy hh:mm:ss")); } cut_isci_edit->setText(rec_cut->isci()); cut_isrc_edit->setText(rec_cut->isrc(RDCut::FormattedIsrc)); if(use_weight) { cut_weight_label->setText(tr("Weight")); cut_weight_box->setValue(rec_cut->weight()); } else { cut_weight_label->setText(tr("Order")); cut_weight_box->setValue(rec_cut->playOrder()); } if(rec_cut->playCounter()>0) { cut_playdate_edit-> setText(rec_cut->lastPlayDatetime(&valid).toString("M/d/yyyy hh:mm:ss")); } else { cut_playdate_edit->setText("Never"); } cut_playcounter_edit-> setText(QString().sprintf("%d",rec_cut->playCounter())); rec_evergreen_box->setChecked(rec_cut->evergreen()); evergreenToggledData(rec_evergreen_box->isChecked()); cut_startdatetime_edit->setDateTime(rec_cut->startDatetime(&valid)); cut_enddatetime_edit->setDateTime(rec_cut->endDatetime(&valid)); cut_startdatetime_enable_button->setChecked(valid); cut_startdatetime_disable_button->setChecked(!valid); airDateButtonData(valid); cut_starttime_edit->setTime(rec_cut->startDaypart(&valid)); cut_endtime_edit->setTime(rec_cut->endDaypart(&valid)); cut_starttime_enable_button->setChecked(valid); cut_starttime_disable_button->setChecked(!valid); daypartButtonData(valid); for(int i=0;i<7;i++) { if(rec_cut->weekPart(i+1)) { rec_weekpart_button[i]->setChecked(true); } } rec_channels_box->insertItem("1"); rec_channels_box->insertItem("2"); rec_channels_box->setCurrentItem(rec_cut->channels()-1); rec_channels_edit->setText(QString().sprintf("%d",rec_cut->channels())); rec_mode_box->insertItem(tr("Manual")); rec_mode_box->insertItem(tr("VOX")); switch(rda->libraryConf()->defaultRecordMode()) { case RDLibraryConf::Manual: rec_mode_box->setCurrentItem(0); break; case RDLibraryConf::Vox: rec_mode_box->setCurrentItem(1); break; } rec_trim_box->insertItem(tr("On")); rec_trim_box->insertItem(tr("Off")); if(rda->libraryConf()->defaultTrimState()) { rec_trim_box->setCurrentItem(0); } else { rec_trim_box->setCurrentItem(1); } aesAlarmData(rec_card_no[0],rec_port_no[0], rda->cae()->inputStatus(rec_card_no[0],rec_port_no[0])); // // Set Control Perms // cut_description_edit->setReadOnly(!allow_modification); cut_outcue_edit->setReadOnly(!allow_modification); cut_isci_edit->setReadOnly(!allow_modification); cut_starttime_edit->setReadOnly(!allow_modification); cut_endtime_edit->setReadOnly(!allow_modification); if(!allow_modification) { cut_weight_box->setRange(cut_weight_box->value(),cut_weight_box->value()); if(cut_startdatetime_enable_button->isChecked()) { cut_startdatetime_edit->dateEdit()-> setRange(cut_startdatetime_edit->dateEdit()->date(), cut_startdatetime_edit->dateEdit()->date()); cut_startdatetime_edit->timeEdit()-> setRange(cut_startdatetime_edit->timeEdit()->time(), cut_startdatetime_edit->timeEdit()->time()); cut_enddatetime_edit->dateEdit()-> setRange(cut_enddatetime_edit->dateEdit()->date(), cut_enddatetime_edit->dateEdit()->date()); } if(cut_starttime_enable_button->isChecked()) { cut_enddatetime_edit->timeEdit()-> setRange(cut_enddatetime_edit->timeEdit()->time(), cut_enddatetime_edit->timeEdit()->time()); } } rec_evergreen_box->setEnabled(allow_modification); if(!allow_modification) { cut_startdatetime_enable_button->setDisabled(true); cut_startdatetime_disable_button->setDisabled(true); cut_starttime_enable_button->setDisabled(true); cut_starttime_disable_button->setDisabled(true); rec_set_button->setDisabled(true); rec_clear_button->setDisabled(true); } for(int i=0;i<7;i++) { rec_weekpart_button[i]->setEnabled(allow_modification); } rec_record_button-> setEnabled(allow_editing&&(rec_card_no[0]>=0)&&(rec_port_no[0]>=0)); rec_mode_box->setEnabled(allow_editing); rec_trim_box->setEnabled(allow_editing); if(allow_editing) { rec_channels_edit->hide(); } else { rec_channels_box->hide(); } }
void ListReports::GenerateCartReport(QString *report) { QString sql; RDSqlQuery *q; QString schedcode=""; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; } // // Generate Header // QString filter=list_filter; if(list_filter.isEmpty()) { filter="[none]"; } *report=" Rivendell Cart Report\n"; *report+=QString(). sprintf("Generated: %s Group: %-10s Filter: %s\n", (const char *)QDateTime(QDate::currentDate(),QTime::currentTime()). toString("MM/dd/yyyy - hh:mm:ss"), (const char *)list_group.utf8(),(const char *)filter.utf8()); *report+="\n"; *report+="Type -Cart- -Group---- -Len- -Title------------------------- -Artist----------------------- Cuts Rot Enf -LenDev -Owner--------------\n"; // // Generate Rows // if(list_type_filter.isEmpty()) { return; } sql=QString("select CART.TYPE,CART.NUMBER,CART.GROUP_NAME,")+ "CART.FORCED_LENGTH,CART.TITLE,CART.ARTIST,CART.CUT_QUANTITY,"+ "CART.PLAY_ORDER,CART.ENFORCE_LENGTH,CART.LENGTH_DEVIATION,CART.OWNER "+ "from CART left join CUTS on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ list_type_filter+" order by NUMBER"; } else { sql+=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ list_type_filter+" order by NUMBER"; } q=new RDSqlQuery(sql); while(q->next()) { // // Cart Type // switch((RDCart::Type)q->value(0).toInt()) { case RDCart::Audio: *report+=" A "; break; case RDCart::Macro: *report+=" M "; break; default: *report+=" ? "; break; } // // Cart Number // *report+=QString().sprintf("%06u ",q->value(1).toUInt()); // // Group // *report+= QString().sprintf("%-10s ",(const char *)q->value(2).toString().utf8()); // // Length // *report+= QString().sprintf("%5s ", (const char *)RDGetTimeLength(q->value(3).toInt(),false,false)); // // Title // *report+=QString().sprintf("%-31s ",(const char *)q->value(4).toString(). utf8().left(31)); // // Artist // *report+=QString().sprintf("%-30s ",(const char *)q->value(5).toString(). utf8().left(30)); // // Cut Quantity // *report+=QString().sprintf("%4d ",q->value(6).toInt()); // // Play Order // switch((RDCart::PlayOrder)q->value(7).toInt()) { case RDCart::Sequence: *report+="SEQ "; break; case RDCart::Random: *report+="RND "; break; default: *report+="???"; break; } // // Enforce Length // if(q->value(8).toString()=="Y") { *report+="Yes "; } else { *report+="No "; } // // Length Deviation // *report+= QString().sprintf("%7s ", (const char *)RDGetTimeLength(q->value(9).toInt(),false,true)); // // Owner // if(q->value(10).toString().isEmpty()) { *report+="[none]"; } else { *report+=QString().sprintf("%s",(const char *)q->value(10).toString(). utf8().left(20)); } // // End of Line // *report+="\n"; } delete q; }
bool RDReport::ExportMusicPlayout(const QDate &startdate,const QDate &enddate, const QString &mixtable) { QString sql; RDSqlQuery *q; FILE *f; QString cut; QString str; QString cart_fmt; QString cart_num; #ifdef WIN32 QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate); #else QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate); #endif QFile file(filename); if((f=fopen((const char *)filename,"w"))==NULL) { report_error_code=RDReport::ErrorCantOpen; return false; } if(useLeadingZeros()) { cart_fmt=QString().sprintf("%%0%uu",cartDigits()); } else { cart_fmt="%6u"; } sql=QString("select ")+ "`"+mixtable+"_SRT`.LENGTH,"+ // 00 "`"+mixtable+"_SRT`.CART_NUMBER,"+ // 01 "`"+mixtable+"%s_SRT`.EVENT_DATETIME,"+ // 02 "`"+mixtable+"_SRT`.EXT_EVENT_ID,"+ // 03 "`"+mixtable+"_SRT`.TITLE,"+ // 04 "`"+mixtable+"_SRT`.CUT_NUMBER,"+ // 05 "`"+mixtable+"_SRT`.ARTIST,"+ // 06 "`"+mixtable+"_SRT`.ALBUM,"+ // 07 "`"+mixtable+"_SRT`.LABEL "+ // 08 "from `"+mixtable+"_SRT` left join CART "+ "on `"+mixtable+"_SRT`.CART_NUMBER=CART.NUMBER "+ "order by EVENT_DATETIME"; q=new RDSqlQuery(sql); // // Write File Header // if(startdate==enddate) { fprintf(f," Rivendell RDAirPlay Music Playout Report for %s\n", (const char *)startdate.toString("MM/dd/yyyy")); } else { fprintf(f," Rivendell RDAirPlay Music Playout Report for %s - %s\n", (const char *)startdate.toString("MM/dd/yyyy"), (const char *)enddate.toString("MM/dd/yyyy")); } str=QString().sprintf("%s -- %s\n",(const char *)name(), (const char *)description()); for(int i=0;i<(180-str.length())/2;i++) { fprintf(f," "); } fprintf(f,"%s\n",(const char *)str); fprintf(f,"--Time-- -Cart- Cut A-Len --Title----------------------- --Artist---------------------- --Album------------------ --Label-------------\n"); // // Write Data Rows // while(q->next()) { if(q->value(5).toInt()>0) { cut=QString().sprintf("%03d",q->value(5).toInt()); } else { if((RDAirPlayConf::TrafficAction)q->value(6).toInt()== RDAirPlayConf::TrafficMacro) { cut="rml"; } else { cut=" "; } } cart_num=QString().sprintf(cart_fmt,q->value(1).toUInt()); fprintf(f,"%8s %6s %3s %5s %-30s %-30s %-25s %-20s\n", (const char *)q->value(2).toDateTime().time().toString("hh:mm:ss"), (const char *)cart_num, (const char *)cut, (const char *)RDGetTimeLength(q->value(0).toInt(),true,false). right(5), (const char *)StringField(q->value(4).toString().left(30)), (const char *)StringField(q->value(6).toString().left(30)), (const char *)StringField(q->value(7).toString().left(25)), (const char *)StringField(q->value(8).toString().left(20))); } delete q; fclose(f); report_error_code=RDReport::ErrorOk; return true; }
void ListReports::GenerateCutReport(QString *report) { QString sql; RDSqlQuery *q; unsigned current_cart=0; QString schedcode=""; if(list_schedcode!=tr("ALL")) { schedcode=list_schedcode; } // // Generate Header // QString filter=list_filter; if(list_filter.isEmpty()) { filter="[none]"; } *report=" Rivendell Cut Report\n"; *report+=QString(). sprintf("Generated: %s Group: %-10s Filter: %s\n", (const char *)QDateTime(QDate::currentDate(),QTime::currentTime()). toString("MM/dd/yyyy - hh:mm:ss"), (const char *)list_group.utf8(),(const char *)filter.utf8()); *report+="\n"; *report+="-Cart- Cut Wht -Cart Title-------------- -Description--- -Len- Last Play Plays Start Date End Date -Days of Week- -Daypart-----------\n"; // // Generate Rows // if(list_type_filter.isEmpty()) { return; } sql="select CART.NUMBER,CUTS.CUT_NAME,CUTS.WEIGHT,CART.TITLE,\ CUTS.DESCRIPTION,CUTS.LENGTH,CUTS.LAST_PLAY_DATETIME,CUTS.PLAY_COUNTER,\ CUTS.START_DATETIME,CUTS.END_DATETIME,SUN,MON,TUE,WED,THU,FRI,SAT,\ CUTS.START_DAYPART,CUTS.END_DAYPART from CART join CUTS \ on CART.NUMBER=CUTS.CART_NUMBER"; if(list_group==QString("ALL")) { sql+=QString(" where ")+ RDAllCartSearchText(list_filter,schedcode,lib_user->name(),true)+" && "+ list_type_filter+" order by CART.NUMBER"; } else { sql+=QString(" where ")+ RDCartSearchText(list_filter,list_group,schedcode,true)+" && "+ list_type_filter+" order by CART.NUMBER"; } q=new RDSqlQuery(sql); while(q->next()) { // // Cart Number // if(q->value(0).toUInt()!=current_cart) { *report+=QString().sprintf("%06u ",q->value(0).toUInt()); } else { *report+=" "; } // // Cut Number // *report+= QString().sprintf("%03d ",q->value(1).toString().right(3).toInt()); // // Weight // *report+=QString().sprintf("%3d ",q->value(2).toInt()); // // Title // if(q->value(0).toUInt()!=current_cart) { *report+=QString().sprintf("%-25s ",(const char *)q->value(3).toString(). utf8().left(25)); } else { *report+=" "; } // // Description // *report+=QString().sprintf("%-15s ",(const char *)q->value(4).toString(). utf8().left(15)); // // Length // *report+= QString().sprintf("%5s ", (const char *)RDGetTimeLength(q->value(5).toInt(),false,false)); // // Last Play // if(q->value(6).toDateTime().isNull()) { *report+=" [none] "; } else { *report+=QString().sprintf(" %8s ", (const char *)q->value(6).toDate().toString("MM/dd/yy")); } // // Plays // *report+=QString().sprintf("%4d ",q->value(7).toInt()); // // Start Date // if(q->value(8).toDateTime().isNull()) { *report+=" [none] "; } else { *report+=QString().sprintf(" %8s ", (const char *)q->value(8).toDateTime().toString("MM/dd/yy")); } // // End Date // if(q->value(9).toDateTime().isNull()) { *report+=" TFN "; } else { *report+=QString().sprintf(" %8s ", (const char *)q->value(9).toDateTime().toString("MM/dd/yy")); } // // Days of the Week // if(q->value(10).toString()=="Y") { *report+="Su"; } else { *report+=" "; } if(q->value(11).toString()=="Y") { *report+="Mo"; } else { *report+=" "; } if(q->value(12).toString()=="Y") { *report+="Tu"; } else { *report+=" "; } if(q->value(13).toString()=="Y") { *report+="We"; } else { *report+=" "; } if(q->value(14).toString()=="Y") { *report+="Th"; } else { *report+=" "; } if(q->value(15).toString()=="Y") { *report+="Fr"; } else { *report+=" "; } if(q->value(16).toString()=="Y") { *report+="Sa "; } else { *report+=" "; } // // Dayparts // if(q->value(18).toTime().isNull()) { *report+="[none]"; } else { *report+=QString().sprintf("%8s - %8s", (const char *)q->value(17).toTime().toString("hh:mm:ss"), (const char *)q->value(18).toTime().toString("hh:mm:ss")); } // // End of Line // *report+="\n"; current_cart=q->value(0).toUInt(); } delete q; }