mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-03 23:53:59 +01:00 
			
		
		
		
	* Added a 'STATIONS.HAVE_MP4_DECODE' field to the database. * Incremented the database version to 243. * Added a 'Capability::HaveMp4Decode' value to the 'RDStation::Capability' enumeration in 'lib/rdstation.cpp' and 'lib/rdstation.h'.
		
			
				
	
	
		
			719 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			719 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// rdstation.cpp
 | 
						|
//
 | 
						|
// Abstract a Rivendell Workstation.
 | 
						|
//
 | 
						|
//   (C) Copyright 2002-2010 Fred Gleason <fredg@paravelsystems.com>
 | 
						|
//
 | 
						|
//      $Id: rdstation.cpp,v 1.30.4.8 2014/02/11 23:46:26 cvs Exp $
 | 
						|
//
 | 
						|
//   This program is free software; you can redistribute it and/or modify
 | 
						|
//   it under the terms of the GNU General Public License version 2 as
 | 
						|
//   published by the Free Software Foundation.
 | 
						|
//
 | 
						|
//   This program is distributed in the hope that it will be useful,
 | 
						|
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
//   GNU General Public License for more details.
 | 
						|
//
 | 
						|
//   You should have received a copy of the GNU General Public
 | 
						|
//   License along with this program; if not, write to the Free Software
 | 
						|
//   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
//
 | 
						|
 | 
						|
#include <rdconf.h>
 | 
						|
#include <rdstation.h>
 | 
						|
#include <rd.h>
 | 
						|
#include <rddb.h> 
 | 
						|
#include <rdescape_string.h>
 | 
						|
 | 
						|
//
 | 
						|
// Global Classes
 | 
						|
//
 | 
						|
RDStation::RDStation(const QString &name,bool create)
 | 
						|
{
 | 
						|
  QString sql;
 | 
						|
  time_offset_valid = false;
 | 
						|
  station_name=name;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
RDStation::~RDStation()
 | 
						|
{
 | 
						|
//  printf("Destroying RDStation\n");
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::exists() const
 | 
						|
{
 | 
						|
  return RDDoesRowExist("STATIONS","NAME",RDEscapeString(station_name));
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::name() const
 | 
						|
{
 | 
						|
  return station_name;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::description() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"DESCRIPTION").toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setDescription(QString desc) const
 | 
						|
{
 | 
						|
  SetRow("DESCRIPTION",desc);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::userName() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"USER_NAME").toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setUserName(QString name) const
 | 
						|
{
 | 
						|
  SetRow("USER_NAME",name);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::defaultName() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"DEFAULT_NAME").
 | 
						|
    toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setDefaultName(QString name) const
 | 
						|
{
 | 
						|
  SetRow("DEFAULT_NAME",name);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QHostAddress RDStation::address() const
 | 
						|
{
 | 
						|
  QHostAddress addr;
 | 
						|
  addr.setAddress(RDGetSqlValue("STATIONS","NAME",station_name,"IPV4_ADDRESS").
 | 
						|
		  toString());
 | 
						|
  return addr;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setAddress(QHostAddress addr) const
 | 
						|
{
 | 
						|
  SetRow("IPV4_ADDRESS",addr.toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QHostAddress RDStation::httpAddress(RDConfig *config) const
 | 
						|
{
 | 
						|
  QHostAddress addr;
 | 
						|
  
 | 
						|
  addr.setAddress("127.0.0.1");
 | 
						|
  if(httpStation()!="localhost") {
 | 
						|
    if(httpStation()==RD_RDSELECT_LABEL) {
 | 
						|
      addr.setAddress(config->audioStoreXportHostname());
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      addr.setAddress(RDGetSqlValue("STATIONS","NAME",httpStation(),
 | 
						|
				    "IPV4_ADDRESS").toString());
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return addr;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::httpStation() const
 | 
						|
{
 | 
						|
  return
 | 
						|
    RDGetSqlValue("STATIONS","NAME",station_name,"HTTP_STATION").toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setHttpStation(const QString &str)
 | 
						|
{
 | 
						|
  SetRow("HTTP_STATION",str);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::caeStation() const
 | 
						|
{
 | 
						|
  return
 | 
						|
    RDGetSqlValue("STATIONS","NAME",station_name,"CAE_STATION").toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QHostAddress RDStation::caeAddress(RDConfig *config) const
 | 
						|
{
 | 
						|
  QHostAddress addr;
 | 
						|
 | 
						|
  addr.setAddress("127.0.0.1");
 | 
						|
  if(caeStation()!="localhost") {
 | 
						|
    if(caeStation()==RD_RDSELECT_LABEL) {
 | 
						|
      addr.setAddress(config->audioStoreCaeHostname());
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      addr.setAddress(RDGetSqlValue("STATIONS","NAME",caeStation(),
 | 
						|
				    "IPV4_ADDRESS").toString());
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return addr;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCaeStation(const QString &str)
 | 
						|
{
 | 
						|
  SetRow("CAE_STATION",str);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::webServiceUrl(RDConfig *config) const
 | 
						|
{
 | 
						|
  return QString("http://")+httpAddress(config).toString()+
 | 
						|
    "/rd-bin/rdxport.cgi";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::timeOffset()
 | 
						|
{
 | 
						|
  if (!time_offset_valid){
 | 
						|
    time_offset = RDGetSqlValue("STATIONS","NAME",station_name,"TIME_OFFSET").toInt();
 | 
						|
    time_offset_valid = true;
 | 
						|
  }
 | 
						|
  return time_offset;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setTimeOffset(int msecs)
 | 
						|
{
 | 
						|
  SetRow("TIME_OFFSET",msecs);
 | 
						|
  time_offset = msecs;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::backupPath() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"BACKUP_DIR").toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setBackupPath(QString path) const
 | 
						|
{
 | 
						|
  SetRow("BACKUP_DIR",path);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::backupLife() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"BACKUP_LIFE").toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setBackupLife(int days) const
 | 
						|
{
 | 
						|
  SetRow("BACKUP_LIFE",days);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setBroadcastSecurity(BroadcastSecurityMode mode)
 | 
						|
{
 | 
						|
  SetRow("BROADCAST_SECURITY",mode);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
RDStation::BroadcastSecurityMode RDStation::broadcastSecurity() const
 | 
						|
{
 | 
						|
  return (RDStation::BroadcastSecurityMode)RDGetSqlValue("STATIONS","NAME",
 | 
						|
                                                         station_name,
 | 
						|
                                                         "BROADCAST_SECURITY").
 | 
						|
                                                         toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
unsigned RDStation::heartbeatCart() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"HEARTBEAT_CART").
 | 
						|
    toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setHeartbeatCart(unsigned cartnum) const
 | 
						|
{
 | 
						|
  SetRow("HEARTBEAT_CART",cartnum);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
unsigned RDStation::heartbeatInterval() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"HEARTBEAT_INTERVAL").
 | 
						|
    toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setHeartbeatInterval(unsigned interval) const
 | 
						|
{
 | 
						|
  SetRow("HEARTBEAT_INTERVAL",interval);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
unsigned RDStation::startupCart() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"STARTUP_CART").
 | 
						|
    toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setStartupCart(unsigned cartnum) const
 | 
						|
{
 | 
						|
  SetRow("STARTUP_CART",cartnum);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::editorPath() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"EDITOR_PATH").
 | 
						|
    toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setEditorPath(const QString &cmd)
 | 
						|
{
 | 
						|
  SetRow("EDITOR_PATH",cmd);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
RDStation::FilterMode RDStation::filterMode() const
 | 
						|
{
 | 
						|
  return (RDStation::FilterMode)RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
					      "FILTER_MODE").toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setFilterMode(RDStation::FilterMode mode) const
 | 
						|
{
 | 
						|
  SetRow("FILTER_MODE",(int)mode);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::startJack() const
 | 
						|
{
 | 
						|
  return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,"START_JACK").
 | 
						|
		toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setStartJack(bool state) const
 | 
						|
{
 | 
						|
  SetRow("START_JACK",RDYesNo(state));
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::jackServerName() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"JACK_SERVER_NAME").
 | 
						|
    toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setJackServerName(const QString &str) const
 | 
						|
{
 | 
						|
  SetRow("JACK_SERVER_NAME",str);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::jackCommandLine() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"JACK_COMMAND_LINE").
 | 
						|
    toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setJackCommandLine(const QString &str) const
 | 
						|
{
 | 
						|
  SetRow("JACK_COMMAND_LINE",str);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cueCard() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CUE_CARD").toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCueCard(int card)
 | 
						|
{
 | 
						|
  SetRow("CUE_CARD",card);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cuePort() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CUE_PORT").toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCuePort(int port)
 | 
						|
{
 | 
						|
  SetRow("CUE_PORT",port);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
unsigned RDStation::cueStartCart() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CUE_START_CART").
 | 
						|
    toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCueStartCart(unsigned cartnum) const
 | 
						|
{
 | 
						|
  SetRow("CUE_START_CART",cartnum);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
unsigned RDStation::cueStopCart() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CUE_STOP_CART").toUInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCueStopCart(unsigned cartnum) const
 | 
						|
{
 | 
						|
  SetRow("CUE_STOP_CART",cartnum);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cartSlotColumns() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CARTSLOT_COLUMNS").
 | 
						|
    toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCartSlotColumns(int cols)
 | 
						|
{
 | 
						|
  SetRow("CARTSLOT_COLUMNS",cols);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cartSlotRows() const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,"CARTSLOT_ROWS").toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCartSlotRows(int rows)
 | 
						|
{
 | 
						|
  SetRow("CARTSLOT_ROWS",rows);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::enableDragdrop() const
 | 
						|
{
 | 
						|
  return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
			      "ENABLE_DRAGDROP").toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setEnableDragdrop(bool state)
 | 
						|
{
 | 
						|
  SetRow("ENABLE_DRAGDROP",state);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::enforcePanelSetup() const
 | 
						|
{
 | 
						|
  return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
			      "ENFORCE_PANEL_SETUP").toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setEnforcePanelSetup(bool state)
 | 
						|
{
 | 
						|
  SetRow("ENFORCE_PANEL_SETUP",state);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::systemMaint() const
 | 
						|
{
 | 
						|
  return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,"SYSTEM_MAINT").
 | 
						|
	       toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setSystemMaint(bool state) const
 | 
						|
{
 | 
						|
  SetRow("SYSTEM_MAINT",state);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::scanned() const
 | 
						|
{
 | 
						|
  return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,"STATION_SCANNED").
 | 
						|
	       toString());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setScanned(bool state) const
 | 
						|
{
 | 
						|
  SetRow("STATION_SCANNED",state);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool RDStation::haveCapability(Capability cap) const
 | 
						|
{
 | 
						|
  switch(cap) {
 | 
						|
      case RDStation::HaveOggenc:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_OGGENC").toString());
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveOgg123:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_OGG123").toString());
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveFlac:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_FLAC").toString());
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveLame:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_LAME").toString());
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveMp4Decode:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_MP4_DECODE").toString());
 | 
						|
 | 
						|
      case RDStation::HaveMpg321:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_MPG321").toString());
 | 
						|
 | 
						|
      case RDStation::HaveTwoLame:
 | 
						|
	return RDBool(RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
				  "HAVE_TWOLAME").toString());
 | 
						|
	break;
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setHaveCapability(Capability cap,bool state) const
 | 
						|
{
 | 
						|
  switch(cap) {
 | 
						|
      case RDStation::HaveOggenc:
 | 
						|
	SetRow("HAVE_OGGENC",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveOgg123:
 | 
						|
	SetRow("HAVE_OGG123",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveFlac:
 | 
						|
	SetRow("HAVE_FLAC",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveLame:
 | 
						|
	SetRow("HAVE_LAME",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveMp4Decode:
 | 
						|
	SetRow("HAVE_MP4_DECODE",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveMpg321:
 | 
						|
	SetRow("HAVE_MPG321",state);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::HaveTwoLame:
 | 
						|
	SetRow("HAVE_TWOLAME",state);
 | 
						|
	break;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cards() const
 | 
						|
{
 | 
						|
  int n=0;
 | 
						|
 | 
						|
  QString sql=QString().sprintf("select CARD0_DRIVER,CARD1_DRIVER,\
 | 
						|
                                 CARD2_DRIVER,CARD3_DRIVER,CARD4_DRIVER,\
 | 
						|
                                 CARD5_DRIVER,CARD6_DRIVER,CARD7_DRIVER\
 | 
						|
                                 from STATIONS where NAME=\"%s\"",
 | 
						|
				(const char *)station_name);
 | 
						|
  RDSqlQuery *q=new RDSqlQuery(sql);
 | 
						|
  if(q->first()) {
 | 
						|
    for(int i=0;i<RD_MAX_CARDS;i++) {
 | 
						|
      if((RDStation::AudioDriver)q->value(i).toInt()!=RDStation::None) {
 | 
						|
	n++;
 | 
						|
      }
 | 
						|
      else {
 | 
						|
	delete q;
 | 
						|
	return n;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  delete q;
 | 
						|
 | 
						|
  return n;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
RDStation::AudioDriver RDStation::cardDriver(int cardnum) const
 | 
						|
{
 | 
						|
  return (RDStation::AudioDriver)
 | 
						|
    RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
		 QString().sprintf("CARD%d_DRIVER",cardnum)).
 | 
						|
    toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCardDriver(int cardnum,AudioDriver driver) const
 | 
						|
{
 | 
						|
  SetRow(QString().sprintf("CARD%d_DRIVER",cardnum),(int)driver);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::driverVersion(AudioDriver driver) const
 | 
						|
{
 | 
						|
  switch(driver) {
 | 
						|
      case RDStation::None:
 | 
						|
	return QString();
 | 
						|
 | 
						|
      case RDStation::Hpi:
 | 
						|
	return RDGetSqlValue("STATIONS","NAME",station_name,"HPI_VERSION").
 | 
						|
	  toString();
 | 
						|
 | 
						|
      case RDStation::Jack:
 | 
						|
	return RDGetSqlValue("STATIONS","NAME",station_name,"JACK_VERSION").
 | 
						|
	  toString();
 | 
						|
 | 
						|
      case RDStation::Alsa:
 | 
						|
	return RDGetSqlValue("STATIONS","NAME",station_name,"ALSA_VERSION").
 | 
						|
	  toString();
 | 
						|
  }
 | 
						|
  return QString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setDriverVersion(AudioDriver driver,QString ver) const
 | 
						|
{
 | 
						|
  switch(driver) {
 | 
						|
      case RDStation::None:
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::Hpi:
 | 
						|
	SetRow("HPI_VERSION",ver);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::Jack:
 | 
						|
	SetRow("JACK_VERSION",ver);
 | 
						|
	break;
 | 
						|
 | 
						|
      case RDStation::Alsa:
 | 
						|
	SetRow("ALSA_VERSION",ver);
 | 
						|
	break;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QString RDStation::cardName(int cardnum) const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
		      QString().sprintf("CARD%d_NAME",cardnum)).toString();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCardName(int cardnum,QString name) const
 | 
						|
{
 | 
						|
  SetRow(QString().sprintf("CARD%d_NAME",cardnum),name);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cardInputs(int cardnum) const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
		      QString().sprintf("CARD%d_INPUTS",cardnum)).toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCardInputs(int cardnum,int inputs) const
 | 
						|
{
 | 
						|
  SetRow(QString().sprintf("CARD%d_INPUTS",cardnum),inputs);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RDStation::cardOutputs(int cardnum) const
 | 
						|
{
 | 
						|
  return RDGetSqlValue("STATIONS","NAME",station_name,
 | 
						|
		      QString().sprintf("CARD%d_OUTPUTS",cardnum)).toInt();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::setCardOutputs(int cardnum,int outputs) const
 | 
						|
{
 | 
						|
  SetRow(QString().sprintf("CARD%d_OUTPUTS",cardnum),outputs);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::SetRow(const QString ¶m,const QString &value) const
 | 
						|
{
 | 
						|
  RDSqlQuery *q;
 | 
						|
  QString sql;
 | 
						|
 | 
						|
  sql=QString().sprintf("UPDATE STATIONS SET %s=\"%s\" WHERE NAME=\"%s\"",
 | 
						|
			(const char *)param,
 | 
						|
			(const char *)RDEscapeString(value),
 | 
						|
			(const char *)RDEscapeString(station_name));
 | 
						|
  q=new RDSqlQuery(sql);
 | 
						|
  delete q;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::SetRow(const QString ¶m,int value) const
 | 
						|
{
 | 
						|
  RDSqlQuery *q;
 | 
						|
  QString sql;
 | 
						|
 | 
						|
  sql=QString().sprintf("UPDATE STATIONS SET %s=%d WHERE NAME=\"%s\"",
 | 
						|
			(const char *)param,
 | 
						|
			value,
 | 
						|
			(const char *)RDEscapeString(station_name));
 | 
						|
  q=new RDSqlQuery(sql);
 | 
						|
  delete q;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RDStation::SetRow(const QString ¶m,unsigned value) const
 | 
						|
{
 | 
						|
  RDSqlQuery *q;
 | 
						|
  QString sql;
 | 
						|
 | 
						|
  sql=QString().sprintf("UPDATE STATIONS SET %s=%u WHERE NAME=\"%s\"",
 | 
						|
			(const char *)param,
 | 
						|
			value,
 | 
						|
			(const char *)RDEscapeString(station_name));
 | 
						|
  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;
 | 
						|
}
 |