void RDLog::setLinkState(RDLog::Source src,bool state) const { switch(src) { case RDLog::SourceMusic: SetRow("MUSIC_LINKED",RDYesNo(state)); break; case RDLog::SourceTraffic: SetRow("TRAFFIC_LINKED",RDYesNo(state)); break; } }
void MainObject::Saveas(const QString &logname) { QString sql; RDSqlQuery *q; RDLog *log=new RDLog(logname); if(!log->exists()) { sql=QString("insert into LOGS set ")+ "NAME=\""+RDEscapeString(logname)+"\","+ "TYPE=0,"+ "DESCRIPTION=\""+RDEscapeString(edit_description)+"\","+ "ORIGIN_USER=\""+RDEscapeString(rda->user()->name())+"\","+ "ORIGIN_DATETIME=now(),"+ "LINK_DATETIME=now(),"+ "MODIFIED_DATETIME=now(),"+ "START_DATE="+RDCheckDateTime(edit_start_date,"yyyy-MM-dd")+","+ "END_DATE="+RDCheckDateTime(edit_end_date,"yyyy-MM-dd")+","+ "PURGE_DATE="+RDCheckDateTime(edit_purge_date,"yyyy-MM-dd")+","+ "AUTO_REFRESH=\""+RDYesNo(edit_auto_refresh)+"\","+ "SERVICE=\""+RDEscapeString(edit_service)+"\""; q=new RDSqlQuery(sql); delete q; RDCreateLogTable(RDLog::tableName(logname)); edit_log_event->setLogName(RDLog::tableName(logname)); edit_log_event->save(); delete edit_log; edit_log=log; edit_modified=false; edit_new_log=false; } else { fprintf(stderr,"saveas: log already exists\n"); delete log; } }
void RDSystem::setAllowDuplicateCartTitles(bool state) const { QString sql; RDSqlQuery *q; sql=QString().sprintf("update SYSTEM set DUP_CART_TITLES=\"%s\"", (const char *)RDYesNo(state)); q=new RDSqlQuery(sql); delete q; }
void RDSystem::setFixDuplicateCartTitles(bool state) const { QString sql; RDSqlQuery *q; sql=QString("update SYSTEM set ")+ "FIX_DUP_CART_TITLES=\""+RDYesNo(state)+"\""; q=new RDSqlQuery(sql); delete q; }
void RDSystem::setShowUserList(bool state) const { QString sql; RDSqlQuery *q; sql=QString("update SYSTEM set ")+ "SHOW_USER_LIST=\""+RDYesNo(state)+"\""; q=new RDSqlQuery(sql); delete q; }
void RDLogeditConf::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString("update RDLOGEDIT set ")+ param+"=\""+RDYesNo(value)+"\" where "+ "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); delete q; }
void RDStation::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString("update STATIONS set ")+ param+"=\""+RDYesNo(value)+"\" where "+ "NAME=\""+RDEscapeString(station_name)+"\""; q=new RDSqlQuery(sql); delete q; }
void RDRecording::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString("update RECORDINGS set ")+ param+"=\""+RDYesNo(value)+"\" where "+ QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; }
void RDDropbox::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString().sprintf("update DROPBOXES set %s=\"%s\" where ID=%d", (const char *)param,(const char *)RDYesNo(value), box_id); q=new RDSqlQuery(sql); delete q; }
void RDStation::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString().sprintf("UPDATE STATIONS SET %s=\"%s\" WHERE NAME=\"%s\"", (const char *)param, (const char *)RDYesNo(value), (const char *)RDEscapeString(station_name)); q=new RDSqlQuery(sql); delete q; }
void RDDeck::SetRow(const QString ¶m,bool value) const { RDSqlQuery *q; QString sql; sql=QString("update DECKS set ")+ param+"=\""+RDYesNo(value)+"\" where "+ "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); delete q; }
void RDTty::SetRow(const QString ¶m,bool value) { RDSqlQuery *q; QString sql; sql=QString("update TTYS set ")+ param+"=\""+RDYesNo(value)+"\" where "+ "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); delete q; }
void RDCut::setEvergreen(bool state) const { SetRow("EVERGREEN",RDYesNo(state)); }
void RDLibraryConf::SetRow(const QString ¶m,bool value) const { SetRow(param,RDYesNo(value)); }
void RDLibraryConf::setSearchLimited(bool state) const { SetRow("SEARCH_LIMITED",RDYesNo(state)); }
void RDLibraryConf::setEnableEditor(bool state) const { SetRow("ENABLE_EDITOR",RDYesNo(state)); }
void RDLog::setLogExists(bool state) const { SetRow("LOG_EXISTS",RDYesNo(state)); }
void RDFeed::setCastOrder(bool state) const { SetRow("CAST_ORDER",RDYesNo(state)); }
void RDStation::setStartJack(bool state) const { SetRow("START_JACK",RDYesNo(state)); }
void RDEvent::setUseTimescale(bool state) const { SetRow("USE_TIMESCALE",RDYesNo(state),true); }
void RDEvent::setUseAutofill(bool state) const { SetRow("USE_AUTOFILL",RDYesNo(state),true); }
void RDEvent::setPostPoint(bool state) const { SetRow("POST_POINT",RDYesNo(state),true); }
void RDUser::setEnableWeb(bool state) const { SetRow("ENABLE_WEB",RDYesNo(state)); }
void RDFeed::setKeepMetadata(bool state) { SetRow("KEEP_METADATA",RDYesNo(state)); }
void RDFeed::setEnableAutopost(bool state) const { SetRow("ENABLE_AUTOPOST",RDYesNo(state)); }
void RDCut::setWeekPart(int dayofweek,bool state) const { SetRow(RDGetShortDayNameEN(dayofweek).upper(),RDYesNo(state)); }
void RDLibraryConf::setReadIsrc(bool state) const { SetRow("READ_ISRC",RDYesNo(state)); }
void RDLog::setAutoRefresh(bool state) const { SetRow("AUTO_REFRESH",RDYesNo(state)); }
void RDUser::SetRow(const QString ¶m,bool value) const { SetRow(param,RDYesNo(value)); }
void RDCartSlot::LogPlayout(RDPlayDeck::State state) { if(state==RDPlayDeck::Playing) { RDCut *cut=new RDCut(slot_logline->cutName()); cut->logPlayout(); delete cut; } if((state!=RDPlayDeck::Stopped)&&(state!=RDPlayDeck::Finished)) { return; } RDAirPlayConf::TrafficAction action=RDAirPlayConf::TrafficFinish; if(state==RDPlayDeck::Stopped) { action=RDAirPlayConf::TrafficStop; } QString sql; RDSqlQuery *q; QDateTime datetime=QDateTime(QDate::currentDate(),QTime::currentTime()); int length= slot_logline->startTime(RDLogLine::Actual).msecsTo(datetime.time()); if(length<0) { // Event crossed midnight! length+=86400000; datetime.setDate(datetime.date().addDays(-1)); } if(!slot_svcname.isEmpty()) { QDateTime eventDateTime(datetime.date(), slot_logline->startTime(RDLogLine::Actual)); QString svctablename=slot_svcname; svctablename.replace(" ","_"); sql=QString("insert into `")+svctablename+"_SRT` set "+ QString().sprintf("LENGTH=%d,LOG_ID=%d,CART_NUMBER=%u,EVENT_TYPE=%d,\ EVENT_SOURCE=%d,EXT_LENGTH=%d,PLAY_SOURCE=%d, \ CUT_NUMBER=%d,USAGE_CODE=%d,START_SOURCE=%d,", length, slot_number+1, slot_logline->cartNumber(), action, slot_logline->source(), slot_logline->extLength(), RDLogLine::CartSlot, slot_logline->cutNumber(), slot_logline->usageCode(), slot_logline->startSource())+ "STATION_NAME=\""+RDEscapeString(slot_station->name())+"\","+ "EVENT_DATETIME="+RDCheckDateTime(eventDateTime,"yyyy-MM-dd hh:mm:ss")+ ","+ "EXT_START_TIME="+RDCheckDateTime( slot_logline->extStartTime(),"hh:mm:ss")+","+ "EXT_DATA=\""+RDEscapeString(slot_logline->extData())+"\","+ "EXT_EVENT_ID=\""+RDEscapeString(slot_logline->extEventId())+"\","+ "EXT_ANNC_TYPE=\""+RDEscapeString(slot_logline->extAnncType())+"\","+ "EXT_CART_NAME=\""+RDEscapeString(slot_logline->extCartName())+"\","+ "TITLE=\""+RDEscapeString(slot_logline->title())+"\","+ "ARTIST=\""+RDEscapeString(slot_logline->artist())+"\","+ "SCHEDULED_TIME="+ RDCheckDateTime(slot_logline->startTime(RDLogLine::Logged),"hh:mm:ss")+","+ "ISRC=\""+RDEscapeString(slot_logline->isrc())+"\","+ "PUBLISHER=\""+RDEscapeString(slot_logline->publisher())+"\","+ "COMPOSER=\""+RDEscapeString(slot_logline->composer())+"\","+ "ONAIR_FLAG=\""+RDYesNo(slot_ripc->onairFlag())+"\","+ "ALBUM=\""+RDEscapeString(slot_logline->album())+"\","+ "LABEL=\""+RDEscapeString(slot_logline->label())+"\","+ "CONDUCTOR=\""+RDEscapeString(slot_logline->conductor())+"\","+ "USER_DEFINED=\""+RDEscapeString(slot_logline->userDefined())+"\","+ "SONG_ID=\""+RDEscapeString(slot_logline->songId())+"\","+ "DESCRIPTION=\""+RDEscapeString(slot_logline->description())+"\","+ "OUTCUE=\""+RDEscapeString(slot_logline->outcue())+"\","+ "ISCI=\""+RDEscapeString(slot_logline->isci())+"\""; q=new RDSqlQuery(sql); delete q; }