Add `activate_feed` and `deactivate_feed` virtual bind to CameraFeed

This commit is contained in:
Jason Kuo 2024-09-28 13:02:09 +08:00
parent 76a135926a
commit d655ee5130
3 changed files with 22 additions and 3 deletions

View File

@ -10,6 +10,18 @@
<tutorials> <tutorials>
</tutorials> </tutorials>
<methods> <methods>
<method name="_activate_feed" qualifiers="virtual">
<return type="bool" />
<description>
Called when the camera feed is activated.
</description>
</method>
<method name="_deactivate_feed" qualifiers="virtual">
<return type="void" />
<description>
Called when the camera feed is deactivated.
</description>
</method>
<method name="get_datatype" qualifiers="const"> <method name="get_datatype" qualifiers="const">
<return type="int" enum="CameraFeed.FeedDataType" /> <return type="int" enum="CameraFeed.FeedDataType" />
<description> <description>

View File

@ -59,6 +59,9 @@ void CameraFeed::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_formats"), &CameraFeed::get_formats); ClassDB::bind_method(D_METHOD("get_formats"), &CameraFeed::get_formats);
ClassDB::bind_method(D_METHOD("set_format", "index", "parameters"), &CameraFeed::set_format); ClassDB::bind_method(D_METHOD("set_format", "index", "parameters"), &CameraFeed::set_format);
GDVIRTUAL_BIND(_activate_feed);
GDVIRTUAL_BIND(_deactivate_feed);
ADD_SIGNAL(MethodInfo("frame_changed")); ADD_SIGNAL(MethodInfo("frame_changed"));
ADD_SIGNAL(MethodInfo("format_changed")); ADD_SIGNAL(MethodInfo("format_changed"));
@ -256,12 +259,13 @@ void CameraFeed::set_YCbCr_imgs(const Ref<Image> &p_y_img, const Ref<Image> &p_c
} }
bool CameraFeed::activate_feed() { bool CameraFeed::activate_feed() {
// nothing to do here bool ret = true;
return true; GDVIRTUAL_CALL(_activate_feed, ret);
return ret;
} }
void CameraFeed::deactivate_feed() { void CameraFeed::deactivate_feed() {
// nothing to do here GDVIRTUAL_CALL(_deactivate_feed);
} }
bool CameraFeed::set_format(int p_index, const Dictionary &p_parameters) { bool CameraFeed::set_format(int p_index, const Dictionary &p_parameters) {

View File

@ -120,6 +120,9 @@ public:
virtual bool activate_feed(); virtual bool activate_feed();
virtual void deactivate_feed(); virtual void deactivate_feed();
GDVIRTUAL0R(bool, _activate_feed)
GDVIRTUAL0(_deactivate_feed)
}; };
VARIANT_ENUM_CAST(CameraFeed::FeedDataType); VARIANT_ENUM_CAST(CameraFeed::FeedDataType);