Skip to content

Commit b67d24c

Browse files
committed
Add preferences for camera settings (gain and exposure). Right now, only it's implemented the behaviour for the PS3 camera. Will be needed to also implement it for OCVCamera.
1 parent 12bfced commit b67d24c

File tree

15 files changed

+101
-6
lines changed

15 files changed

+101
-6
lines changed

Client/Client.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
</Link>
174174
</ItemDefinitionGroup>
175175
<ItemGroup>
176+
<ClCompile Include="src\camera\CameraSettings.cpp" />
176177
<ClCompile Include="src\camera\NullCamera.cpp" />
177178
<ClCompile Include="src\camera\OCVCamera.cpp" />
178179
<ClCompile Include="src\camera\CameraFactory.cpp" />
@@ -195,6 +196,7 @@
195196
<QtUic Include="src\view\MainWindow.ui" />
196197
</ItemGroup>
197198
<ItemGroup>
199+
<ClInclude Include="src\camera\CameraSettings.h" />
198200
<ClInclude Include="src\camera\Camera.h" />
199201
<ClInclude Include="src\camera\NullCamera.h" />
200202
<ClInclude Include="src\camera\OCVCamera.h" />

Client/Client.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
<ClCompile Include="src\tracker\TrackerFactory.cpp">
2626
<Filter>Source Files</Filter>
2727
</ClCompile>
28+
<ClCompile Include="src\camera\CameraSettings.cpp">
29+
<Filter>Source Files</Filter>
30+
</ClCompile>
2831
</ItemGroup>
2932
<ItemGroup>
3033
<ClInclude Include="Include\ps3eye.h" />
@@ -61,6 +64,9 @@
6164
<ClInclude Include="src\tracker\TrackerFactory.h">
6265
<Filter>Header Files</Filter>
6366
</ClInclude>
67+
<ClInclude Include="src\camera\CameraSettings.h">
68+
<Filter>Header Files</Filter>
69+
</ClInclude>
6470
</ItemGroup>
6571
<ItemGroup>
6672
<QtMoc Include="src\view\WindowMain.h" />

Client/src/camera/Camera.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22

33
#include <cstdint>
4+
#include "CameraSettings.h"
45

56
class Camera
67
{
@@ -11,6 +12,8 @@ class Camera
1112
virtual void start_camera() = 0;
1213
virtual void stop_camera() = 0;
1314
virtual void get_frame(uint8_t* buffer) = 0;
15+
virtual void set_settings(CameraSettings& settings) = 0;
16+
virtual CameraSettings get_settings() = 0;
1417

1518
Camera(int width, int height, int fps) {
1619
this->width = width;

Client/src/camera/CameraFactory.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "OCVCamera.h"
55
#include "NullCamera.h"
66

7-
Camera* CameraFactory::buildCamera(int width, int height)
7+
Camera* CameraFactory::buildCamera(int width, int height, int exposure, int gain)
88
{
99
Camera *camera = NULL;
1010
bool error = false;
@@ -35,5 +35,10 @@ Camera* CameraFactory::buildCamera(int width, int height)
3535
camera = new NullCamera;
3636
}
3737

38+
CameraSettings cam_settings;
39+
cam_settings.exposure = exposure;
40+
cam_settings.gain = gain;
41+
camera->set_settings(cam_settings);
42+
3843
return camera;
3944
}

Client/src/camera/CameraFactory.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
class CameraFactory
66
{
77
public:
8-
Camera* buildCamera(int width, int height);
8+
Camera* buildCamera(int width, int height, int exposure=-1, int gain=-1);
99
};
1010

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#include "CameraSettings.h"
2+
3+
4+
CameraSettings::CameraSettings()
5+
{
6+
exposure = -1;
7+
gain = -1;
8+
}
9+
10+
CameraSettings::CameraSettings(CameraSettings& settings)
11+
{
12+
exposure = settings.exposure;
13+
gain = settings.gain;
14+
}
15+
16+
CameraSettings::~CameraSettings()
17+
{}

Client/src/camera/CameraSettings.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
struct CameraSettings
4+
{
5+
int exposure;
6+
int gain;
7+
8+
CameraSettings();
9+
CameraSettings(CameraSettings& settings);
10+
~CameraSettings();
11+
};
12+

Client/src/camera/NullCamera.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ class NullCamera : public Camera
99
void start_camera() {};
1010
void stop_camera() {};
1111
void get_frame(uint8_t* buffer) {};
12+
void set_settings(CameraSettings& settings) {};
13+
CameraSettings get_settings() { return CameraSettings(); };
1214
};

Client/src/camera/OCVCamera.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,13 @@ void OCVCamera::get_frame(uint8_t* buffer)
6565
buffer[i] = frame.data[i];
6666

6767
}
68+
69+
void OCVCamera::set_settings(CameraSettings& settings)
70+
{
71+
//TODO
72+
}
73+
74+
CameraSettings OCVCamera::get_settings()
75+
{
76+
return CameraSettings();
77+
}

Client/src/camera/OCVCamera.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@ class OCVCamera : public Camera
1919
void start_camera();
2020
void stop_camera();
2121
void get_frame(uint8_t* buffer);
22+
void set_settings(CameraSettings& settings);
23+
CameraSettings get_settings();
2224
};
2325

0 commit comments

Comments
 (0)