struct bt_notification_iterator *bt_notification_iterator_create(
struct bt_component *component)
{
+ enum bt_component_type type;
struct bt_notification_iterator *iterator = NULL;
- if (!component ||
- bt_component_get_type(component) != BT_COMPONENT_TYPE_SOURCE) {
+ if (!component) {
+ goto end;
+ }
+
+ type = bt_component_get_type(component);
+ switch (type) {
+ case BT_COMPONENT_TYPE_SOURCE:
+ case BT_COMPONENT_TYPE_FILTER:
+ break;
+ default:
goto end;
}
return ret;
}
+enum bt_notification_iterator_status
+bt_notification_iterator_set_seek_time_cb(
+ struct bt_notification_iterator *iterator,
+ bt_notification_iterator_seek_time_cb seek_time)
+{
+ enum bt_notification_iterator_status ret =
+ BT_NOTIFICATION_ITERATOR_STATUS_OK;
+
+ if (!iterator || !seek_time) {
+ ret = BT_NOTIFICATION_ITERATOR_STATUS_INVAL;
+ goto end;
+ }
+
+ iterator->seek_time = seek_time;
+end:
+ return ret;
+}
+
enum bt_notification_iterator_status
bt_notification_iterator_set_destroy_cb(
struct bt_notification_iterator *iterator,
return ret;
}
+struct bt_notification *bt_notification_iterator_get_notification(
+ struct bt_notification_iterator *iterator)
+{
+ assert(iterator);
+ assert(iterator->get);
+ return iterator->get(iterator);
+}
+
+enum bt_notification_iterator_status
+bt_notification_iterator_next(struct bt_notification_iterator *iterator)
+{
+ assert(iterator);
+ assert(iterator->next);
+ return iterator->next(iterator);
+}
+
struct bt_component *bt_notification_iterator_get_component(
struct bt_notification_iterator *iterator)
{
return bt_get(iterator->component);
}
+enum bt_notification_iterator_status bt_notification_iterator_seek_time(
+ struct bt_notification_iterator *iterator,
+ enum bt_notification_iterator_seek_origin seek_origin,
+ int64_t time)
+{
+ enum bt_notification_iterator_status ret =
+ BT_NOTIFICATION_ITERATOR_STATUS_UNSUPPORTED;
+ return ret;
+}