forked from DanielMerget/FaceGrabber
/
ImageRecordingconfiguration.cpp
216 lines (180 loc) · 4.79 KB
/
ImageRecordingconfiguration.cpp
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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#include "stdafx.h"
#include "ImageRecordingConfiguration.h"
ImageRecordingConfiguration::ImageRecordingConfiguration() : m_outputFolder(), m_enabled(false)
{}
ImageRecordingConfiguration::ImageRecordingConfiguration(ImageRecordType imageType, ImageRecordingFileFormat format) :
m_outputFolder(),
m_enabled(false),
m_imageType(imageType),
m_fileFormat(format)
{
m_maxNumberOfFrames = UNLIMITED_FRAMES;
setDefaultFileName();
}
CString ImageRecordingConfiguration::getFileFormatAsString(ImageRecordingFileFormat fileFormat)
{
switch (fileFormat)
{
case PNM_BINARY:
return CString(L"pnm binary");
case PNG:
return CString(L"png");
case IMAGE_RECORD_FILE_FORMAT_COUNT:
return CString(L"ERROR");
default:
return CString(L"UNKNOWN_FILE FORMAT");
break;
}
}
void ImageRecordingConfiguration::setDefaultFileName()
{
m_fileName = getDefaultFileName();
}
CString ImageRecordingConfiguration::getDefaultFileName()
{
switch (m_imageType){
case KinectColorRaw:
return CString(L"Kinect_Color_Raw");
case KinectDepthRaw:
return CString(L"Kinect_Depth_Raw");
default:
return CString(L"Image");
}
return CString(L"");
}
bool ImageRecordingConfiguration::isRecordConfigurationValid()
{
if (!m_enabled){
return true;
}
bool fileNameLengthExists = (wcslen(m_fileName) > 0);
bool filePathSet = !m_outputFolder.IsEmpty();
bool limitCorrect = true;
if (!isRecordingDurationUnLimited()){
limitCorrect &= (m_maxNumberOfFrames > 0);
}
return fileNameLengthExists && filePathSet && limitCorrect;
}
CString ImageRecordingConfiguration::getFilePathCString()
{
return m_outputFolder;
}
std::string ImageRecordingConfiguration::getFilePath()
{
CT2CA pszConvertedAnsiString(m_outputFolder);
std::string strStd(pszConvertedAnsiString);
return strStd;
}
bool ImageRecordingConfiguration::isEnabled()
{
return m_enabled;
}
ImageRecordType ImageRecordingConfiguration::getImageRecordType(){
return m_imageType;
}
ImageRecordingFileFormat ImageRecordingConfiguration::getRecordFileFormat()
{
return m_fileFormat;
}
CString ImageRecordingConfiguration::getFileNameCString()
{
return m_fileName;
}
bool ImageRecordingConfiguration::isRecordingDurationUnLimited()
{
return m_maxNumberOfFrames == UNLIMITED_FRAMES;
}
void ImageRecordingConfiguration::setMaxNumberOfFrames(int newMaxNumberOfFrames)
{
m_maxNumberOfFrames = newMaxNumberOfFrames;
recordPathOrFileNameChanged(m_imageType);
}
int ImageRecordingConfiguration::getMaxNumberOfFrames()
{
return m_maxNumberOfFrames;
}
std::string ImageRecordingConfiguration::getFileNameString()
{
CT2CA pszConvertedAnsiString(m_fileName);
std::string strStd(pszConvertedAnsiString);
return strStd;
}
void ImageRecordingConfiguration::setFileName(CString fileName)
{
m_fileName = fileName;
recordPathOrFileNameChanged(m_imageType);
}
void ImageRecordingConfiguration::setFilePath(CString filePath)
{
m_outputFolder = CString(filePath);
recordPathOrFileNameChanged(m_imageType);
}
int ImageRecordingConfiguration::getThreadCountToStart()
{
return m_threadsCount;
}
void ImageRecordingConfiguration::setThreadCountToStart(int threadsCount)
{
m_threadsCount = threadsCount;
}
void ImageRecordingConfiguration::setEnabled(bool enabled)
{
m_enabled = enabled;
recordConfigurationStatusChanged(m_imageType, m_enabled);
}
void ImageRecordingConfiguration::setFileFormat(ImageRecordingFileFormat fileFormat)
{
m_fileFormat = fileFormat;
}
void ImageRecordingConfiguration::setTimeStampFolderName(CString folderName)
{
m_timeStampFolderName = folderName;
}
CString ImageRecordingConfiguration::getTimeStampFolderName()
{
return m_timeStampFolderName;
}
CString ImageRecordingConfiguration::getSubFolderNameForImageType(ImageRecordType imageType)
{
switch (imageType)
{
case KinectColorRaw:
return L"KinectColorRaw";
case KinectDepthRaw:
return L"KinectDepthRaw";
case IMAGE_RECORD_TYPE_COUNT:
break;
default:
break;
}
return L"UKNOWN IMAGE TYPE";
}
CString ImageRecordingConfiguration::getFullRecordingPath()
{
auto result = getFullRecordingPathForImageType(m_imageType, m_outputFolder, m_timeStampFolderName);
return result;
}
std::string ImageRecordingConfiguration::getFullRecordingPathString()
{
CString fullPath = getFullRecordingPath();
CT2CA pszConvertedAnsiString(fullPath);
std::string strStd(pszConvertedAnsiString);
return strStd;
}
CString ImageRecordingConfiguration::getFullRecordingPathForImageType(ImageRecordType imageType, CString outputFolder, CString timeStampFolderName)
{
CString subFolder = getSubFolderNameForImageType(imageType);
CString fullPath;
fullPath += outputFolder.GetString();
auto outputEnding = fullPath.Right(1);
if (outputEnding != L"\\"){
fullPath += _T("\\");
}
fullPath += timeStampFolderName.GetString();
outputEnding = fullPath.Right(1);
if (outputEnding != L"\\"){
fullPath += _T("\\");
}
fullPath += subFolder;
return fullPath;
}