- def add_sink_component(self, component_class, name, params=None):
- if issubclass(component_class, bt2.component._UserSinkComponent):
+ def add_component(self, component_class, name, params=None):
+ if isinstance(component_class, bt2.component._GenericSourceComponentClass):
+ cc_ptr = component_class._ptr
+ add_fn = native_bt.graph_add_source_component
+ cc_type = native_bt.COMPONENT_CLASS_TYPE_SOURCE
+ elif isinstance(component_class, bt2.component._GenericFilterComponentClass):
+ cc_ptr = component_class._ptr
+ add_fn = native_bt.graph_add_filter_component
+ cc_type = native_bt.COMPONENT_CLASS_TYPE_FILTER
+ elif isinstance(component_class, bt2.component._GenericSinkComponentClass):
+ cc_ptr = component_class._ptr
+ add_fn = native_bt.graph_add_sink_component
+ cc_type = native_bt.COMPONENT_CLASS_TYPE_SINK
+ elif issubclass(component_class, bt2.component._UserSourceComponent):
+ cc_ptr = component_class._cc_ptr
+ add_fn = native_bt.graph_add_source_component
+ cc_type = native_bt.COMPONENT_CLASS_TYPE_SOURCE
+ elif issubclass(component_class, bt2.component._UserSinkComponent):
+ cc_ptr = component_class._cc_ptr
+ add_fn = native_bt.graph_add_sink_component
+ cc_type = native_bt.COMPONENT_CLASS_TYPE_SINK
+ elif issubclass(component_class, bt2.component._UserFilterComponent):