summaryrefslogtreecommitdiff
path: root/orkbasecxx/Config.h
blob: 8e7634ca9dd09a7bce69f9eba407feecf61e0416 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
/*
 * Oreka -- A media capture and retrieval platform
 * 
 * Copyright (C) 2005, orecx LLC
 *
 * http://www.orecx.com
 *
 * This program is free software, distributed under the terms of
 * the GNU General Public License.
 * Please refer to http://www.gnu.org/copyleft/gpl.html
 *
 */

#ifndef __CONFIG_H__
#define __CONFIG_H__

#include "StdString.h"
#include "Object.h"
#include "AudioCapture.h"
#include <log4cxx/logger.h>


#define LOG_MESSAGES_PARAM "LogMessages"
#define LOG_MESSAGES_DEFAULT false
#define CAPTURE_PLUGIN_PARAM "CapturePlugin"
#define CAPTURE_PLUGIN_DEFAULT ""
#define CAPTURE_PLUGIN_PATH_PARAM "CapturePluginPath"
#define CAPTURE_PLUGIN_PATH_DEFAULT "AudioCapturePlugins"
#define PLUGINS_DIRECTORY_PARAM "PluginsDirectory"
#define STORAGE_AUDIO_FORMAT_PARAM "StorageAudioFormat"
#define STORAGE_AUDIO_FORMAT_DEFAULT FfGsm
#define NUM_BATCH_THREADS_PARAM "NumBatchThreads"
#define NUM_BATCH_THREADS_DEFAULT 1
#define DELETE_NATIVE_FILE_PARAM "DeleteNativeFile"
#define DELETE_NATIVE_FILE_DEFAULT true
#define ENABLE_REPORTING_PARAM "EnableReporting"
#define ENABLE_REPORTING_DEFAULT true
#define AUDIO_CHUNK_DEFAULT_SIZE_PARAM "AudioChunkDefaultSize"
#define AUDIO_CHUNK_DEFAULT_SIZE_DEFAULT 8000
#define AUDIO_SEGMENTATION_PARAM "AudioSegmentation"
#define AUDIO_SEGMENTATION_DEFAULT false
#define AUDIO_SEGMENT_DURATION_PARAM "AudioSegmentDuration"
#define AUDIO_SEGMENT_DURATION_DEFAULT 60
#define LOG_RMS_PARAM "LogRms"
#define LOG_RMS_DEFAULT false
#define VAD_PARAM "VAD"
#define VAD_DEFAULT false
#define VAD_HIGH_THRESHOLD_DB_PARAM "VadHighThresholdDb"
#define VAD_HIGH_THRESHOLD_DB_DEFAULT -12.2
#define VAD_LOW_THRESHOLD_DB_PARAM "VadLowThresholdDb"
#define VAD_LOW_THRESHOLD_DB_DEFAULT -12.5
#define VAD_HOLD_ON_SEC_PARAM "VadHoldOnSec"
#define VAD_HOLD_ON_SEC_DEFAULT 4
#define TRACKER_HOSTNAME_PARAM "TrackerHostname"
#define TRACKER_HOSTNAME_DEFAULT "localhost"
#define TRACKER_TCP_PORT_PARAM "TrackerTcpPort"
#define TRACKER_TCP_PORT_DEFAULT 8080
#define TRACKER_SERVICENAME_PARAM "TrackerServicename"
#define TRACKER_SERVICENAME_DEFAULT "orktrack"
#define SERVICE_NAME_PARAM "ServiceName"
#define REPORTING_RETRY_DELAY_PARAM "ReportingRetryDelay"
#define CLIENT_TIMEOUT_PARAM "ClientTimeout"
#define AUDIO_OUTPUT_PATH_PARAM "AudioOutputPath"
#define AUDIO_OUTPUT_PATH_DEFAULT "."
#define AUDIO_FILE_PERMISSIONS_PARAM "AudioFilePermissions"
#define AUDIO_FILE_PERMISSIONS_DEFAULT "0644"
#define AUDIO_FILE_OWNER_PARAM "AudioFileOwner"
#define AUDIO_FILE_OWNER_DEFAULT "root"
#define AUDIO_FILE_GROUP_PARAM "AudioFileGroup"
#define AUDIO_FILE_GROUP_DEFAULT "root"
#define IMMEDIATE_PROCESSING_QUEUE_SIZE_PARAM "ImmediateProcessingQueueSize"
#define IMMEDIATE_PROCESSING_QUEUE_SIZE_DEFAULT 10000
#define BATCH_PROCESSING_QUEUE_SIZE_PARAM "BatchProcessingQueueSize"
#define BATCH_PROCESSING_QUEUE_SIZE_DEFAULT 20000
#define BATCH_PROCESSING_ENHANCE_PRIORITY_PARAM "BatchProcessingEnhancePriority"
#define BATCH_PROCESSING_ENHANCE_PRIORITY_DEFAULT false
#define DELETE_FAILED_CAPTURE_FILE_PARAM "DeleteFailedCaptureFile"
#define DELETE_FAILED_CAPTURE_FILE_DEFAULT false
#define CAPTURE_PORT_FILTERS_PARAM "CapturePortFilters" 
#define TAPE_PROCESSORS_PARAM "TapeProcessors"
#define CAPTURE_FILE_BATCH_SIZE_KBYTE_PARAM "CaptureFileBatchSizeKByte"
#define CAPTURE_FILE_BATCH_SIZE_KBYTE_DEFAULT 4
#define DEBUG_PARAM "Debug"
#define DEBUG_DEFAULT false
#define TAPE_FILE_NAMING_PARAM "TapeFileNaming"
#define TAPE_PATH_NAMING_PARAM "TapePathNaming"
#define REMOTE_PROCESSING_INPUT_PATH_PARAM "RemoteProcessingInputPath"
#define REMOTE_PROCESSING_OUTPUT_PATH_PARAM "RemoteProcessingOutputPath"
#define REMOTE_PROCESSING_HOSTNAME_PARAM "RemoteProcessingHostname"
#define REMOTE_PROCESSING_HOSTNAME_DEFAULT "localhost"
#define REMOTE_PROCESSING_TCP_PORT_PARAM "RemoteProcessingTcpPort"
#define REMOTE_PROCESSING_TCP_PORT_DEFAULT HTTP_SERVER_PORT_DEFAULT
#define REMOTE_PROCESSING_SERVICE_NAME_PARAM "RemoteProcessingServiceName"
#define REMOTE_PROCESSING_SERVICE_NAME_DEFAULT "orkaudio"
#define COMMAND_LINE_SERVER_PORT_PARAM "CommandLineServerPort"
#define COMMAND_LINE_SERVER_PORT_DEFAULT 59130
#define HTTP_SERVER_PORT_PARAM "HttpServerPort"
#define HTTP_SERVER_PORT_DEFAULT 59140
#define LOOKBACK_RECORDING_PARAM "LookBackRecording"
#define LOOKBACK_RECORDING_DEFAULT true
#define ALLOW_AUTOMATIC_RECORDING_PARAM "AllowAutomaticRecording"
#define ALLOW_AUTOMATIC_RECORDING_DEFAULT true
#define CAPTURE_FILE_SIZE_LIMIT_KB_PARAM "CaptureFileSizeLimitKb"
#define CAPTURE_FILE_SIZE_LIMIT_KB_DEFAULT 300000
#define PARTY_FILTER_PARAM "PartyFilter"
#define PARTY_FILTER_DEFAULT ""
#define STEREO_RECORDING_PARAM "StereoRecording"
#define STEREO_RECORDING_DEFAULT false
#define TAPE_NUM_CHANNELS_PARAM "TapeNumChannels"
#define TAPE_NUM_CHANNELS_DEFAULT 2
#define TAPE_DURATION_MINIMUM_SEC_PARAM "TapeDurationMinimumSec"
#define TAPE_DURATION_MINIMUM_SEC_DEFAULT 0
#define TRANSCODING_SLEEP_EVERY_NUM_FRAMES_PARAM "TranscodingSleepEveryNumFrames"
#define TRANSCODING_SLEEP_EVERY_NUM_FRAMES_DEFAULT 0
#define TRANSCODING_SLEEP_US_PARAM "TranscodingSleepUs"
#define TRANSCODING_SLEEP_US_DEFAULT 0
#define AUDIO_GAIN_PARAM "AudioGain"
#define AUDIO_GAIN_DEFAULT 0
#define AUDIO_GAIN_CHANNEL_1_PARAM "AudioGainChannel1"
#define AUDIO_GAIN_CHANNEL_1_DEFAULT 0
#define AUDIO_GAIN_CHANNEL_2_PARAM "AudioGainChannel2"
#define AUDIO_GAIN_CHANNEL_2_DEFAULT 0

class DLL_IMPORT_EXPORT_ORKBASE Config : public Object
{
public:
	Config();	
	void Define(Serializer* s);
	void Validate();

	CStdString GetClassName();
	ObjectRef NewInstance();
	inline ObjectRef Process() {return ObjectRef();};
	time_t m_serviceStartedTime;
	bool m_logMessages;
	bool m_logRms;
	bool m_enableReporting;
	CStdString m_capturePlugin;
	CStdString m_capturePluginPath;
	CStdString m_pluginsDirectory;
	int m_numBatchThreads;
	bool m_deleteNativeFile;
	int m_audioChunkDefaultSize;
	bool m_audioSegmentation;
	int m_audioSegmentDuration;
	FileFormatEnum m_storageAudioFormat;
	bool m_vad;
	double m_vadHighThresholdDb;
	double m_vadLowThresholdDb;
	double m_vadHoldOnSec;
	std::list<CStdString> m_trackerHostname;
	CStdString m_trackerServicename;
	int m_trackerTcpPort;
	CStdString m_serviceName;
	int m_reportingRetryDelay;
	int m_clientTimeout;
	CStdString m_audioOutputPath;
	int m_audioFilePermissions;
	CStdString m_audioFileOwner;
	CStdString m_audioFileGroup;
	int m_immediateProcessingQueueSize;
	int m_batchProcessingQueueSize;
	bool m_batchProcessingEnhancePriority;
	bool m_deleteFailedCaptureFile;
	std::list<CStdString> m_capturePortFilters;
	std::list<CStdString> m_tapeProcessors;
	int m_captureFileBatchSizeKByte;
	bool m_debug;
	std::list<CStdString> m_tapeFileNaming;
	std::list<CStdString> m_tapePathNaming;
	std::list<CStdString> m_remoteProcessingInputPath;
	CStdString m_remoteProcessingOutputPath;
	CStdString m_remoteProcessingHostname;
	int m_remoteProcessingTcpPort;
	CStdString m_remoteProcessingServiceName;
	int m_commandLineServerPort;
	int m_httpServerPort;
	bool m_lookBackRecording;
	bool m_allowAutomaticRecording;
	int m_captureFileSizeLimitKb;
	std::list<CStdString> m_partyFilter;
	bool m_stereoRecording;
	int m_tapeNumChannels;
	int m_tapeDurationMinimumSec;
	int m_transcodingSleepEveryNumFrames;
	int m_transcodingSleepUs;
	double m_audioGain;
	double m_audioGainChannel1;
	double m_audioGainChannel2;

private:
	log4cxx::LoggerPtr m_log;
	CStdString m_audioFilePermissionsStr;
};


#endif