lib: object: add functions to test active and supported features

This commit is contained in:
George Kiagiadakis
2023-11-08 11:51:20 +02:00
parent ed224f7c79
commit 44a157b506
2 changed files with 37 additions and 0 deletions

View File

@@ -336,6 +336,23 @@ wp_object_get_active_features (WpObject * self)
return priv->ft_active; return priv->ft_active;
} }
/*!
* \brief Checks if the given features are active on this object.
* \param self the object
* \param features the features to check
* \returns TRUE if all the given features are active on this object
* \ingroup wpobject
* \since 0.5.0
*/
gboolean
wp_object_test_active_features (WpObject * self, WpObjectFeatures features)
{
g_return_val_if_fail (WP_IS_OBJECT (self), FALSE);
WpObjectPrivate *priv = wp_object_get_instance_private (self);
return (priv->ft_active & features) == features;
}
/*! /*!
* \brief Gets the supported features of this object. * \brief Gets the supported features of this object.
* \ingroup wpobject * \ingroup wpobject
@@ -352,6 +369,20 @@ wp_object_get_supported_features (WpObject * self)
return WP_OBJECT_GET_CLASS (self)->get_supported_features (self); return WP_OBJECT_GET_CLASS (self)->get_supported_features (self);
} }
/*!
* \brief Checks if the given features are supported on this object.
* \param self the object
* \param features the features to check
* \returns TRUE if all the given features are supported on this object
* \ingroup wpobject
* \since 0.5.0
*/
gboolean
wp_object_test_supported_features (WpObject * self, WpObjectFeatures features)
{
return (wp_object_get_supported_features (self) & features) == features;
}
static gboolean static gboolean
wp_object_advance_transitions (WpObject * self) wp_object_advance_transitions (WpObject * self)
{ {

View File

@@ -89,9 +89,15 @@ WpCore * wp_object_get_core (WpObject * self);
WP_API WP_API
WpObjectFeatures wp_object_get_active_features (WpObject * self); WpObjectFeatures wp_object_get_active_features (WpObject * self);
WP_API
gboolean wp_object_test_active_features (WpObject * self, WpObjectFeatures features);
WP_API WP_API
WpObjectFeatures wp_object_get_supported_features (WpObject * self); WpObjectFeatures wp_object_get_supported_features (WpObject * self);
WP_API
gboolean wp_object_test_supported_features (WpObject * self, WpObjectFeatures features);
WP_API WP_API
void wp_object_activate (WpObject * self, void wp_object_activate (WpObject * self,
WpObjectFeatures features, GCancellable * cancellable, WpObjectFeatures features, GCancellable * cancellable,