Rivendellaudio/lib/rdrecording.h
Fred Gleason ecd2a2d427 2020-08-19 Fred Gleason <fredg@paravelsystems.com>
* Added a 'STATIONS.SSH_IDENTITY_FILE' field to the database.
	* Added a 'RECORDINGS.URL_USE_ID_FILE' field to the database.
	* Added a 'FEEDS.PURGE_USE_ID_FILE' field to the database.
	* Incremented the database version to 333.
	* Added 'RDStation::sshIdentityFile()' and
	'RDStation::setSshIdentityFile()' methods.
	* Added 'RDRecording::urlUseIdFile()' and
	'RDRecording::setUrlUseIdFile()' methods.
	* Added 'RDFeed::purgeUseIdFile()' and 'RDFeed::setPurgeUseIdFile()'
	methods.
	* Added a 'SSH Ident. File' control to the 'Host' dialog in
	rdadmin(1).
	* Added an 'Authenticate with local identity file' checkbox to
	the 'Feed' dialog in rdadmin(1).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2020-08-19 10:44:41 -04:00

162 lines
5.3 KiB
C++

// rdrecording.h
//
// Abstract a Rivendell RDCatch Event
//
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
//
// 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 <qsqldatabase.h>
#include <qdatetime.h>
#include <rdsettings.h>
#ifndef RDRECORDING_H
#define RDRECORDING_H
class RDRecording
{
public:
enum StartType {HardStart=0,GpiStart=1};
enum EndType {HardEnd=0,GpiEnd=1,LengthEnd=2};
enum Type {Recording=0,MacroEvent=1,SwitchEvent=2,Playout=3,
Download=4,Upload=5,LastType=6};
enum ExitCode {Ok=0,Short=1,LowLevel=2,HighLevel=3,
Downloading=4,Uploading=5,ServerError=6,InternalError=7,
Interrupted=8,RecordActive=9,PlayActive=10,Waiting=11,
DeviceBusy=12,NoCut=13,UnknownFormat=14};
RDRecording(int id,bool create=false);
int id() const;
bool isActive() const;
void setIsActive(bool state) const;
QString station() const;
void setStation(QString name) const;
RDRecording::Type type() const;
void setType(RDRecording::Type type) const;
unsigned channel() const;
void setChannel(unsigned chan) const;
QTime startTime() const;
void setStartTime(QTime time) const;
QTime endTime() const;
void setEndTime(QTime time) const;
QString cutName() const;
void setCutName(QString name) const;
bool sun() const;
void setSun(bool state) const;
bool mon() const;
void setMon(bool state) const;
bool tue() const;
void setTue(bool state) const;
bool wed() const;
void setWed(bool state) const;
bool thu() const;
void setThu(bool state) const;
bool fri() const;
void setFri(bool state) const;
bool sat() const;
void setSat(bool state) const;
int switchSource() const;
void setSwitchSource(int input) const;
int switchDestination() const;
void setSwitchDestination(int output) const;
QString description() const;
void setDescription(QString string) const;
unsigned length() const;
void setLength(unsigned length) const;
int startGpi() const;
void setStartGpi(int line) const;
int endGpi() const;
void setEndGpi(int line) const;
bool allowMultipleRecordings() const;
void setAllowMultipleRecordings(bool state) const;
unsigned maxGpiRecordingLength() const;
void setMaxGpiRecordingLength(unsigned len) const;
unsigned trimThreshold() const;
void setTrimThreshold(unsigned level) const;
unsigned startdateOffset() const;
void setStartdateOffset(unsigned offset) const;
unsigned enddateOffset() const;
void setEnddateOffset(unsigned offset) const;
int eventdateOffset() const;
void setEventdateOffset(int offset) const;
RDSettings::Format format() const;
void setFormat(RDSettings::Format fmt) const;
int channels() const;
void setChannels(int chan) const;
int sampleRate() const;
void setSampleRate(int rate);
int bitrate() const;
void setBitrate(int rate) const;
int quality() const;
void setQuality(int qual) const;
int normalizationLevel() const;
void setNormalizationLevel(int level) const;
int macroCart() const;
void setMacroCart(int cart) const;
bool oneShot() const;
void setOneShot(bool state) const;
StartType startType() const;
void setStartType(StartType type) const;
EndType endType() const;
void setEndType(EndType type) const;
int startMatrix() const;
void setStartMatrix(int matrix) const;
int startLine() const;
void setStartLine(int line) const;
int endMatrix() const;
void setEndMatrix(int matrix) const;
int endLine() const;
void setEndLine(int line) const;
int startLength() const;
void setStartLength(int len) const;
int endLength() const;
void setEndLength(int len) const;
int startOffset() const;
void setStartOffset(int offset) const;
QString url() const;
void setUrl(QString url) const;
QString urlUsername() const;
void setUrlUsername(QString name) const;
QString urlPassword() const;
void setUrlPassword(QString passwd) const;
bool urlUseIdFile() const;
void setUrlUseIdFile(bool state) const;
bool enableMetadata() const;
void setEnableMetadata(bool state) const;
int feedId() const;
void setFeedId(int id) const;
void setFeedId(const QString &keyname) const;
QString feedKeyName() const;
static QString typeString(RDRecording::Type type);
static QString exitString(RDRecording::ExitCode code);
private:
int GetIntValue(QString field) const;
unsigned GetUIntValue(QString field) const;
bool GetBoolValue(QString field) const;
QString GetStringValue(QString field) const;
QTime GetTimeValue(QString field) const;
int AddRecord() const;
void SetRow(const QString &param,int value) const;
void SetRow(const QString &param,unsigned value) const;
void SetRow(const QString &param,bool value) const;
void SetRow(const QString &param,const QString &value) const;
void SetRow(const QString &param,const QTime &value) const;
int rec_id;
};
#endif // RDRECORDING_H