JackTrip
Settings.h
Go to the documentation of this file.
1 //*****************************************************************
2 /*
3  JackTrip: A System for High-Quality Audio Network Performance
4  over the Internet
5 
6  Copyright (c) 2008 Juan-Pablo Caceres, Chris Chafe.
7  SoundWIRE group at CCRMA, Stanford University.
8 
9  Permission is hereby granted, free of charge, to any person
10  obtaining a copy of this software and associated documentation
11  files (the "Software"), to deal in the Software without
12  restriction, including without limitation the rights to use,
13  copy, modify, merge, publish, distribute, sublicense, and/or sell
14  copies of the Software, and to permit persons to whom the
15  Software is furnished to do so, subject to the following
16  conditions:
17 
18  The above copyright notice and this permission notice shall be
19  included in all copies or substantial portions of the Software.
20 
21  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28  OTHER DEALINGS IN THE SOFTWARE.
29 */
30 //*****************************************************************
31 
39 #ifndef __SETTINGS_H__
40 #define __SETTINGS_H__
41 
42 #include <cstdlib>
43 #include <fstream>
44 #include <vector>
45 
46 #include "DataProtocol.h"
47 
48 #ifndef __NO_JACK__
49 #include "JackAudioInterface.h"
50 #endif //__NO_JACK__
51 
52 #include "JackTrip.h"
53 #include "UdpHubListener.h"
54 
55 #include "Effects.h"
56 #include "AudioTester.h"
57 
60 class Settings : public QObject
61 {
62  Q_OBJECT;
63 
64 public:
65  Settings();
66  virtual ~Settings();
67 
69  void parseInput(int argc, char** argv);
70 
73 
75  void printUsage();
76 
77  bool getLoopBack() { return mLoopBack; }
78  bool isHubServer() { return mJackTripServer; }
79 
80 private:
81  JackTrip::jacktripModeT mJackTripMode;
82  JackTrip::dataProtocolT mDataProtocol;
83  int mNumChans;
84  int mBufferQueueLength;
85  AudioInterface::audioBitResolutionT mAudioBitResolution;
86  QString mPeerAddress;
87  int mBindPortNum;
88  int mPeerPortNum;
89  int mServerUdpPortNum;
90  QString mClientName;
91  QString mRemoteClientName;
92  JackTrip::underrunModeT mUnderrunMode;
93  bool mStopOnTimeout;
94  int mBufferStrategy;
95 
96 #ifdef WAIR // wair
97  int mNumNetRevChans;
98  int mClientAddCombLen;
99  double mClientRoomSize;
100  bool mWAIR;
101 #endif // endwhere
102 
103  bool mLoopBack;
104  bool mJamLink;
105  bool mEmptyHeader;
106  bool mJackTripServer;
107  QString mLocalAddress;
108  unsigned int mRedundancy;
109  bool mUseJack;
110  bool mChanfeDefaultSR;
111  bool mChanfeDefaultID;
112  bool mChanfeDefaultBS;
113  unsigned int mSampleRate;
114  unsigned int mDeviceID;
115  unsigned int mAudioBufferSize;
116  unsigned int mHubConnectionMode;
117  bool mConnectDefaultAudioPorts;
118  int mIOStatTimeout;
119  QSharedPointer<std::ofstream> mIOStatStream;
120  Effects mEffects;
121  double mSimulatedLossRate;
122  double mSimulatedJitterRate;
123  double mSimulatedDelayRel;
124  int mBroadcastQueue;
125  bool mUseRtUdpPriority;
126  AudioTester mAudioTester;
127 };
128 
129 #endif
audioBitResolutionT
Enum for Audio Resolution in bits.
Definition: AudioInterface.h:62
Definition: AudioTester.h:54
Definition: Effects.h:49
Main class to creates a SERVER (to listen) or a CLIENT (to connect to a listening server) to send aud...
Definition: JackTrip.h:72
jacktripModeT
Enum for the JackTrip mode.
Definition: JackTrip.h:86
underrunModeT
Enum for the JackTrip Underrun Mode, when packets.
Definition: JackTrip.h:94
dataProtocolT
Enum for the data Protocol. At this time only UDP is implemented.
Definition: JackTrip.h:79
Class to set usage options and parse settings from input.
Definition: Settings.h:61
UdpHubListener * getConfiguredHubServer()
Definition: Settings.cpp:631
virtual ~Settings()
JackTrip * getConfiguredJackTrip()
Definition: Settings.cpp:669
void parseInput(int argc, char **argv)
Parses command line input.
Definition: Settings.cpp:112
bool isHubServer()
Definition: Settings.h:78
void printUsage()
Prints usage help.
Definition: Settings.cpp:550
Settings()
Definition: Settings.cpp:72
bool getLoopBack()
Definition: Settings.h:77
Hub UDP listener on the Server.
Definition: UdpHubListener.h:70