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,
|
surface_property_notification_func callback,
|
||||||
void *userdata);
|
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
|
#ifdef __cplusplus
|
||||||
|
@ -1882,6 +1882,19 @@ ivi_layout_layer_remove_notification(struct ivi_layout_layer *ivilayer)
|
|||||||
remove_all_notification(&ivilayer->property_changed.listener_list);
|
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
|
static void
|
||||||
ivi_layout_layer_remove(struct ivi_layout_layer *ivilayer)
|
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,
|
.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
|
int
|
||||||
|
Loading…
Reference in New Issue
Block a user