ivi-shell: add new method to remove a callback to get notificaiton of ivi_layer property changes.
To get property changes of ivi_layer, callbacks can be registered. However there was no API to remove a callback rather than removing all callbacks by using layer_remove_notification. layer_remove_notification_by_callback can do it. Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
parent
82051705b5
commit
db8efd1f26
@ -790,6 +790,13 @@ struct ivi_controller_interface {
|
||||
surface_property_notification_func callback,
|
||||
void *userdata);
|
||||
|
||||
/**
|
||||
* \brief remove notification by callback on property changes of ivi_layer
|
||||
*/
|
||||
void (*layer_remove_notification_by_callback)(struct ivi_layout_layer *ivilayer,
|
||||
layer_property_notification_func callback,
|
||||
void *userdata);
|
||||
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -1882,6 +1882,19 @@ ivi_layout_layer_remove_notification(struct ivi_layout_layer *ivilayer)
|
||||
remove_all_notification(&ivilayer->property_changed.listener_list);
|
||||
}
|
||||
|
||||
static void
|
||||
ivi_layout_layer_remove_notification_by_callback(struct ivi_layout_layer *ivilayer,
|
||||
layer_property_notification_func callback,
|
||||
void *userdata)
|
||||
{
|
||||
if (ivilayer == NULL) {
|
||||
weston_log("ivi_layout_layer_remove_notification_by_callback: invalid argument\n");
|
||||
return;
|
||||
}
|
||||
|
||||
remove_notification(&ivilayer->property_changed.listener_list, callback, userdata);
|
||||
}
|
||||
|
||||
static void
|
||||
ivi_layout_layer_remove(struct ivi_layout_layer *ivilayer)
|
||||
{
|
||||
@ -2982,9 +2995,10 @@ static struct ivi_controller_interface ivi_controller_interface = {
|
||||
.surface_dump = ivi_layout_surface_dump,
|
||||
|
||||
/**
|
||||
* remove notification by callback on property changes of ivi_surface
|
||||
* remove notification by callback on property changes of ivi_surface/layer
|
||||
*/
|
||||
.surface_remove_notification_by_callback = ivi_layout_surface_remove_notification_by_callback
|
||||
.surface_remove_notification_by_callback = ivi_layout_surface_remove_notification_by_callback,
|
||||
.layer_remove_notification_by_callback = ivi_layout_layer_remove_notification_by_callback
|
||||
};
|
||||
|
||||
int
|
||||
|
Loading…
Reference in New Issue
Block a user