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 
19 namespace 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
Defines functionality for LibCyberRadio applications.
Definition: App.h:23