diff --git a/libraries/AP_Camera/AP_Camera.cpp b/libraries/AP_Camera/AP_Camera.cpp index 706bfeea99..f748786ef6 100644 --- a/libraries/AP_Camera/AP_Camera.cpp +++ b/libraries/AP_Camera/AP_Camera.cpp @@ -86,9 +86,12 @@ void AP_Camera::init() CameraType camera_type = get_type(instance); // check for servo camera - if (camera_type == CameraType::SERVO) { + if (false) { +#if AP_CAMERA_SERVO_ENABLED + } else if (camera_type == CameraType::SERVO) { _backends[instance] = new AP_Camera_Servo(*this, _params[instance], instance); _num_instances++; +#endif #if AP_CAMERA_RELAY_ENABLED // check for relay camera diff --git a/libraries/AP_Camera/AP_Camera.h b/libraries/AP_Camera/AP_Camera.h index a8f4aead65..c7b439136f 100644 --- a/libraries/AP_Camera/AP_Camera.h +++ b/libraries/AP_Camera/AP_Camera.h @@ -47,7 +47,9 @@ public: // enums enum class CameraType { NONE = 0, // None +#if AP_CAMERA_SERVO_ENABLED SERVO = 1, // Servo/PWM controlled camera +#endif #if AP_CAMERA_RELAY_ENABLED RELAY = 2, // Relay controlled camera #endif diff --git a/libraries/AP_Camera/AP_Camera_Servo.cpp b/libraries/AP_Camera/AP_Camera_Servo.cpp index efd9e08d54..b297576d03 100644 --- a/libraries/AP_Camera/AP_Camera_Servo.cpp +++ b/libraries/AP_Camera/AP_Camera_Servo.cpp @@ -1,6 +1,6 @@ #include "AP_Camera_Servo.h" -#if AP_CAMERA_ENABLED +#if AP_CAMERA_SERVO_ENABLED #include @@ -68,4 +68,4 @@ void AP_Camera_Servo::configure(float shooting_mode, float shutter_speed, float } } -#endif // AP_CAMERA_ENABLED +#endif // AP_CAMERA_SERVO_ENABLED diff --git a/libraries/AP_Camera/AP_Camera_Servo.h b/libraries/AP_Camera/AP_Camera_Servo.h index 67f2dd6c53..bd2a585b8e 100644 --- a/libraries/AP_Camera/AP_Camera_Servo.h +++ b/libraries/AP_Camera/AP_Camera_Servo.h @@ -20,7 +20,7 @@ #include "AP_Camera_Backend.h" -#if AP_CAMERA_ENABLED +#if AP_CAMERA_SERVO_ENABLED class AP_Camera_Servo : public AP_Camera_Backend { @@ -47,4 +47,4 @@ private: uint16_t iso_counter; // count of number of cycles iso output should be held open }; -#endif // AP_CAMERA_ENABLED +#endif // AP_CAMERA_SERVO_ENABLED diff --git a/libraries/AP_Camera/AP_Camera_config.h b/libraries/AP_Camera/AP_Camera_config.h index 04cfeb00af..aa33528e23 100644 --- a/libraries/AP_Camera/AP_Camera_config.h +++ b/libraries/AP_Camera/AP_Camera_config.h @@ -23,6 +23,10 @@ #define AP_CAMERA_RELAY_ENABLED AP_CAMERA_BACKEND_DEFAULT_ENABLED #endif +#ifndef AP_CAMERA_SERVO_ENABLED +#define AP_CAMERA_SERVO_ENABLED AP_CAMERA_BACKEND_DEFAULT_ENABLED +#endif + #ifndef AP_CAMERA_SOLOGIMBAL_ENABLED #define AP_CAMERA_SOLOGIMBAL_ENABLED AP_CAMERA_BACKEND_DEFAULT_ENABLED && HAL_SOLO_GIMBAL_ENABLED #endif