Browse Source

AP_Camera: add singleton

master
Peter Barker 7 years ago committed by Randy Mackay
parent
commit
fb786b8d56
  1. 12
      libraries/AP_Camera/AP_Camera.cpp
  2. 11
      libraries/AP_Camera/AP_Camera.h

12
libraries/AP_Camera/AP_Camera.cpp

@ -444,3 +444,15 @@ void AP_Camera::update_trigger() @@ -444,3 +444,15 @@ void AP_Camera::update_trigger()
}
}
}
// singleton instance
AP_Camera *AP_Camera::_singleton;
namespace AP {
AP_Camera *camera()
{
return AP_Camera::get_singleton();
}
}

11
libraries/AP_Camera/AP_Camera.h

@ -44,6 +44,10 @@ public: @@ -44,6 +44,10 @@ public:
AP_Camera(const AP_Camera &other) = delete;
AP_Camera &operator=(const AP_Camera&) = delete;
// get singleton instance
static AP_Camera *get_singleton() {
return _singleton;
}
// MAVLink methods
void control_msg(const mavlink_message_t* msg);
@ -71,6 +75,9 @@ public: @@ -71,6 +75,9 @@ public:
void set_is_auto_mode(bool enable) { _is_in_auto_mode = enable; }
private:
static AP_Camera *_singleton;
AP_Int8 _trigger_type; // 0:Servo,1:Relay
AP_Int8 _trigger_duration; // duration in 10ths of a second that the camera shutter is held open
AP_Int8 _relay_on; // relay value to trigger camera
@ -127,3 +134,7 @@ private: @@ -127,3 +134,7 @@ private:
bool using_feedback_pin(void) const { return _feedback_pin > 0; }
};
namespace AP {
AP_Camera *camera();
};

Loading…
Cancel
Save