mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-09 14:33:28 +02:00
128 lines
5.0 KiB
C++
128 lines
5.0 KiB
C++
// rdmatrix.h
|
|
//
|
|
// Abstract a Rivendell Switcher Matrix
|
|
//
|
|
// (C) Copyright 2002-2019 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.
|
|
//
|
|
|
|
#ifndef RDMATRIX_H
|
|
#define RDMATRIX_H
|
|
|
|
#include <qsqldatabase.h>
|
|
#include <qdatetime.h>
|
|
#include <qhostaddress.h>
|
|
|
|
class RDMatrix
|
|
{
|
|
public:
|
|
enum Role {Primary=0,Backup=2};
|
|
enum PortType {TtyPort=0,TcpPort=1,NoPort=2};
|
|
enum Type {LocalGpio=0,GenericGpo=1,GenericSerial=2,Sas32000=3,Sas64000=4,
|
|
Unity4000=5,BtSs82=6,Bt10x1=7,Sas64000Gpi=8,Bt16x1=9,Bt8x2=10,
|
|
BtAcs82=11,SasUsi=12,Bt16x2=13,BtSs124=14,
|
|
LocalAudioAdapter=15,LogitekVguest=16,BtSs164=17,StarGuideIII=18,
|
|
BtSs42=19,LiveWireLwrpAudio=20,Quartz1=21,BtSs44=22,BtSrc8III=23,
|
|
BtSrc16=24,Harlond=25,Acu1p=26,LiveWireMcastGpio=27,Am16=28,
|
|
LiveWireLwrpGpio=29,BtSentinel4Web=30,BtGpi16=31,ModemLines=32,
|
|
SoftwareAuthority=33,Sas16000=34,RossNkScp=35,BtAdms4422=36,
|
|
BtSs41Mlr=37,Modbus=38,KernelGpio=39,WheatnetSlio=40,
|
|
WheatnetLio=41,BtU41MlrWeb=42,BtSs21=43,Gvc7000=44,LastType=45};
|
|
enum Endpoint {Input=0,Output=1};
|
|
enum Mode {Stereo=0,Left=1,Right=2};
|
|
enum VguestAttribute {VguestEngine=0,VguestDevice=1,VguestSurface=2,
|
|
VguestRelay=3,VguestBuss=4};
|
|
enum VguestType {VguestTypeRelay=0,VguestTypeDisplay=2};
|
|
enum GpioType {GpioInput=0,GpioOutput=1};
|
|
enum Control {PortTypeControl=0,SerialPortControl=1,
|
|
IpAddressControl=2,IpPortControl=3,
|
|
UsernameControl=4,PasswordControl=5,
|
|
StartupCartControl=6,ShutdownCartControl=7,
|
|
CardControl=8,GpioDeviceControl=9,
|
|
LayerControl=10,InputsControl=11,
|
|
OutputsControl=12,GpisControl=13,
|
|
GposControl=14,DisplaysControl=15,
|
|
InputsButtonControl=16,OutputsButtonControl=17,
|
|
GpisButtonControl=18,GposButtonControl=19,
|
|
NodesButtonControl=20,VguestSwitchesButtonControl=21,
|
|
VguestDisplaysButtonControl=22,SasSwitchesButtonControl=23,
|
|
GpiGpoLinkedControl=24,GpioInputsLinkedControl=25,
|
|
DynamicGpioControl=26,GpioStepSize=27,
|
|
LivewireGpioButtonControl=28,LastControl=29};
|
|
RDMatrix(const QString &station,int matrix);
|
|
QString station() const;
|
|
int matrix() const;
|
|
bool exists() const;
|
|
RDMatrix::Type type() const;
|
|
void setType(RDMatrix::Type type) const;
|
|
int layer() const;
|
|
void setLayer(int layer);
|
|
QString name() const;
|
|
void setName(const QString &name) const;
|
|
PortType portType(RDMatrix::Role role) const;
|
|
void setPortType(RDMatrix::Role role,PortType type) const;
|
|
int card() const;
|
|
void setCard(int card) const;
|
|
QHostAddress ipAddress(RDMatrix::Role role) const;
|
|
void setIpAddress(RDMatrix::Role role,QHostAddress addr) const;
|
|
int ipPort(RDMatrix::Role role) const;
|
|
void setIpPort(RDMatrix::Role role,int port) const;
|
|
QString username(RDMatrix::Role role) const;
|
|
void setUsername(RDMatrix::Role role,const QString &name) const;
|
|
QString password(RDMatrix::Role role) const;
|
|
void setPassword(RDMatrix::Role role,const QString &passwd) const;
|
|
unsigned startCart(RDMatrix::Role role) const;
|
|
void setStartCart(RDMatrix::Role role,unsigned cartnum) const;
|
|
unsigned stopCart(RDMatrix::Role role) const;
|
|
void setStopCart(RDMatrix::Role role,unsigned cartnum) const;
|
|
int port(RDMatrix::Role role) const;
|
|
void setPort(RDMatrix::Role role,int port) const;
|
|
int inputs() const;
|
|
void setInputs(int inputs) const;
|
|
QString inputName(int input) const;
|
|
RDMatrix::Mode inputMode(int input) const;
|
|
int outputs() const;
|
|
void setOutputs(int outputs) const;
|
|
QString outputName(int output) const;
|
|
int gpis() const;
|
|
void setGpis(int gpis) const;
|
|
int gpos() const;
|
|
void setGpos(int gpos) const;
|
|
QString gpioDevice() const;
|
|
void setGpioDevice(const QString &gpos) const;
|
|
int faders() const;
|
|
void setFaders(int quan) const;
|
|
int displays() const;
|
|
void setDisplays(int quan) const;
|
|
static QString typeString(RDMatrix::Type type);
|
|
static bool controlActive(RDMatrix::Type type,RDMatrix::Role role,
|
|
RDMatrix::Control control);
|
|
static bool controlActive(RDMatrix::Type type,RDMatrix::Control control);
|
|
static int defaultControlValue(RDMatrix::Type type,
|
|
RDMatrix::Control control);
|
|
|
|
private:
|
|
QString GetEndpointName(int pointnum,const QString &table) const;
|
|
QVariant GetRow(const QString ¶m) const;
|
|
void SetRow(const QString ¶m,const QString &value) const;
|
|
void SetRow(const QString ¶m,int value) const;
|
|
void SetRow(const QString ¶m,unsigned value) const;
|
|
QString mx_station;
|
|
int mx_number;
|
|
};
|
|
|
|
|
|
#endif
|