libcyberradio 22.01.24
SyncTXClient.h
1/*
2 * SyncTXClient.cpp
3 * Author: Joseph Martin
4 */
5#ifndef INCLUDED_LIBCYBERRADIO_NDR651_SYNCTXCLIENT_H_
6#define INCLUDED_LIBCYBERRADIO_NDR651_SYNCTXCLIENT_H_
7
8#include <LibCyberRadio/Common/Debuggable.h>
9#include <LibCyberRadio/NDR651/TXClient.h>
10#include <LibCyberRadio/Common/Debuggable.h>
11#include <LibCyberRadio/NDR651/FlowControlClient.h>
12#include <LibCyberRadio/NDR651/PacketTypes.h>
13#include <LibCyberRadio/NDR651/UdpStatusReceiver.h>
14#include <LibCyberRadio/NDR651/StatusReceiver.h>
15#include <LibCyberRadio/NDR651/RadioController.h>
16#include <LibCyberRadio/NDR651/Packetizer.h>
17#include <vector>
18
19namespace LibCyberRadio
20{
21 namespace NDR651
22 {
23 class SyncTXClient : public Debuggable
24 {
25
26 public:
27 SyncTXClient(std::vector<TXClient *> txClients, std::string hostname="ndr651", bool debug = false);
28 ~SyncTXClient();
29
30 void start();
31 void stop();
32 void sendFrames(short **frames, unsigned int samplesPerFrame);
33 void setDucGroup(int ducGroup);
34 int getDucGroup();
35
36 bool sendFrameToClient(short *frame, unsigned int samplesPerFrame, int client);
37 bool checkClientStatus(void);
38 bool areAllDucsPaused(void);
39
40 private:
41 std::vector<TXClient *> txClients;
42 std::string hostname;
43 RadioController *rc;
44 bool isRunning;
45 int ducGroup;
46 bool waitingToEnableDUCGE;
47 };
48 }
49}
50
51
52#endif
virtual int debug(const char *format,...)
Outputs debug information.
Provides programming elements for controlling the CyberRadio Solutions NDR651 radio.
Defines functionality for LibCyberRadio applications.
Definition App.h:24