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
60class Settings : public QObject
61{
62 Q_OBJECT;
63
64public:
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
80private:
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