Create VideoCamera base class and move camera settings functions to it.

This makes them available for both UsbCamera and HttpCamera / AxisCamera.

To avoid virtual functions in the public-facing interface, move the
implementation of the camera settings functions to the core library.
This commit is contained in:
Peter Johnson
2017-01-01 14:24:13 -08:00
parent 23135d7a5a
commit 7ddbf20108
19 changed files with 581 additions and 186 deletions

View File

@@ -107,6 +107,16 @@ class SourceImpl {
std::vector<std::string> GetEnumPropertyChoices(int property,
CS_Status* status) const;
// Standard common camera properties
virtual void SetBrightness(int brightness, CS_Status* status) = 0;
virtual int GetBrightness(CS_Status* status) const = 0;
virtual void SetWhiteBalanceAuto(CS_Status* status) = 0;
virtual void SetWhiteBalanceHoldCurrent(CS_Status* status) = 0;
virtual void SetWhiteBalanceManual(int value, CS_Status* status) = 0;
virtual void SetExposureAuto(CS_Status* status) = 0;
virtual void SetExposureHoldCurrent(CS_Status* status) = 0;
virtual void SetExposureManual(int value, CS_Status* status) = 0;
// Video mode functions
VideoMode GetVideoMode(CS_Status* status) const;
virtual bool SetVideoMode(const VideoMode& mode, CS_Status* status) = 0;