2023-09-20 Fred Gleason <fredg@paravelsystems.com>

* Modified 'RDMarkerPlayer' to work with revised 'RDCae'.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2023-09-20 16:32:43 -04:00
parent 6bcd445650
commit 62f9e7ba86
23 changed files with 405 additions and 147 deletions

View File

@@ -23,6 +23,7 @@
#include <QList>
#include <QObject>
#include <QTimer>
#include <QUdpSocket>
#include <rd.h>
@@ -40,13 +41,22 @@ class RDCae : public QObject
enum AudioCoding {Pcm16=0,MpegL1=1,MpegL2=2,MpegL3=3,Pcm24=4};
RDCae(RDStation *station,RDConfig *config,QObject *parent=0);
~RDCae();
void connectHost();
void connectToHost(int timeout_msecs=-1);
void enableMetering(QList<int> *cards);
int startPlayback(const QString &cutname,int cardnum,int portnum,
int start_pos,int end_pos,int speed);
void positionPlay(int serial,int pos);
void pausePlayback(int serial);
void resumePlayback(int serial);
void stopPlayback(int serial);
/*
bool loadPlay(int card,QString name,int *stream,int *handle);
void unloadPlay(int handle);
void positionPlay(int handle,int msec);
void play(int handle,unsigned length,int speed,bool pitch);
void stopPlay(int handle);
*/
void loadRecord(int card,int stream,QString name,AudioCoding coding,
int chan,int samp_rate,int bit_rate);
void unloadRecord(int card,int stream);
@@ -66,11 +76,13 @@ class RDCae : public QObject
void setPlayPortActive(int card,int port,int stream);
signals:
void isConnected(bool state);
void playLoaded(int handle);
// void isConnected(bool state);
// void playLoaded(int handle);
void playPositioned(int handle,unsigned msec);
void playing(int handle);
void playStopped(int handle);
// void playing(int handle);
void playStarted(int serial);
void playbackStopped(int serial);
// void playStopped(int handle);
void playUnloaded(int handle);
void recordLoaded(int card,int stream);
void recording(int card,int stream);
@@ -83,18 +95,22 @@ class RDCae : public QObject
void timescalingSupported(int card,bool state);
private slots:
void readyData();
void readyData(int *stream,int *handle,QString name);
void readyReadData();
// void readyData();
// void readyData(int *stream,int *handle,QString name);
void clockData();
void keepaliveData();
private:
void SendCommand(QString cmd);
void DispatchCommand(RDCmdCache *cmd);
void SendCommand(const QString &cmd);
// void SendCommand(QString cmd);
// void DispatchCommand(RDCmdCache *cmd);
void ProcessCommand(const QString &cmd);
int CardNumber(const char *arg);
int StreamNumber(const char *arg);
int GetHandle(const char *arg);
void UpdateMeters();
int cae_socket;
// int cae_socket;
bool debug;
char args[CAE_MAX_ARGS][CAE_MAX_LENGTH];
int argnum;
@@ -114,6 +130,10 @@ class RDCae : public QObject
std::vector<RDCmdCache> delayed_cmds;
RDStation *cae_station;
RDConfig *cae_config;
QUdpSocket *cae_socket;
QTimer *cae_keepalive_timer;
int cae_next_serial_number;
};