ADTF
Loading...
Searching...
No Matches
filtergraph.h
Go to the documentation of this file.
1
7#pragma once
8#include "filter_intf.h"
9#include "runtime_behaviour.h"
10#include "interface_binding.h"
11#include "data_binding.h"
12#include "named_graph_object.h"
13#include "filtergraph_intf.h"
14#include "graph.h"
15
16namespace adtf
17{
18namespace streaming
19{
20
26 IFilter,
27 ant::IFilterGraph,
28 graph<runtime_behaviour<interface_binding<ant::data_binding<named_graph_object<zebra::IFilterGraph>>>>>,
29 base::ant::IConfiguration>
30{
31private:
33 A_UTILS_D(cFilterGraph)
34
35private:
37 tFilterGraphState m_eState = tFilterGraphState::State_Constructed;
38 bool m_bIsSubGraph = false;
39
40public:
44 ~cFilterGraph() override;
45
46public: // implements IFilterGraph
51 tResult SetState(tFilterGraphState eFilterState) override;
56 tFilterGraphState GetState() const override;
57
72 tResult AddConnection(const char* strName,
73 const char* strSourceName,
74 const char* strSourceConnector,
75 const char* strDestinationName,
76 const char* strDestinationConnector,
77 int32_t ui32OrderNumber,
78 bool bSync);
79
80public:
98 int32_t ui32OrderNumber) override;
100 tResult RemoveNamedGraphObject(const ucom::ant::iobject_ptr<INamedGraphObject>& pItem) override;
101
102 tResult SetParent(const ucom::ant::IObject* oParentObject) override;
103
117
130 void SetLegacyConnectionOrder(bool bLegacyOrder);
131
142 void SetLegacyShutdownOrder(bool bLegacyOrder);
143
149 void SetPostConnectionCallback(std::function<tResult()> fnCallback);
150
172 tResult AttachConfiguration(const char* strName, base::ant::IConfiguration& oAttachedConfiguration) override;
179 tResult DetachConfiguration(const char* strName) override;
180
188 tResult
189 AddPropertyLink(const char* strSourcePropertyName, const char* strTargetObject, const char* strTargetProperty);
190
196
197 tResult RegisterScopedMacroResolver(
198 const ucom::ant::iobject_ptr<services::ant::IMacroResolver>& pScopedMacroResolver) noexcept;
199 tResult GetScopedMacroResolver(
200 ucom::ant::iobject_ptr<services::ant::IMacroResolver>& pScopedMacroResolver) const noexcept override;
201
202protected:
203 virtual tResult SetGraphObjectState(INamedGraphObject* pObject, IFilterGraph::tFilterGraphState eState) const;
204
205private:
206 tResult SetStateImpl(tFilterGraphState eOldState, tFilterGraphState eNewState, tFilterGraphState& eErrorNextState);
207 void DestructAllObjects();
208 void DestructObject(const ucom::ant::iobject_ptr<INamedGraphObject>& pObject);
209};
210
223tResult add_piped_connections(IFilterGraph& oGraph, adtf_util::cStringList lstObjectNames, bool bSync = true);
224
238tResult add_paired_connections(IFilterGraph& oGraph, adtf_util::cStringList lstObjectNames, bool bSync = true);
239
262
285
286} // namespace streaming
287} // namespace adtf
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition configuration_intf.h:24
IFilter::tFilterState tFilterGraphState
Definition filtergraph_intf.h:47
Definition filtergraph_intf.h:24
Definition named_graph_object_intf.h:25
tResult DetachConfiguration(const char *strName) override
Detaches a configuration attached with AttachConfiguration.
tResult GetProperties(ucom::ant::iobject_ptr< base::ant::IProperties > &pProperties) override
Retrieves writeable properties object of a Filter Graph.
tFilterGraphState GetState() const override
tResult AddNamedGraphObject(const ucom::ant::iobject_ptr< INamedGraphObject > &pItem, int32_t ui32OrderNumber) override
void SetLegacyShutdownOrder(bool bLegacyOrder)
void SetLegacyConnectionOrder(bool bLegacyOrder)
tResult GetProperties(ucom::ant::iobject_ptr< const base::ant::IProperties > &pProperties) const override
Retrieves readable properties object of a Filter Graph.
void SetPostConnectionCallback(std::function< tResult()> fnCallback)
tResult AddPropertyLink(const char *strSourcePropertyName, const char *strTargetObject, const char *strTargetProperty)
tResult AttachConfiguration(const char *strName, base::ant::IConfiguration &oAttachedConfiguration) override
Attaches a configuration to the Filter Graph under a specified name.
void SetConnectionCreationState(IFilterGraph::tFilterGraphState eState)
tResult SetState(tFilterGraphState eFilterState) override
tResult AddConnection(const char *strName, const char *strSourceName, const char *strSourceConnector, const char *strDestinationName, const char *strDestinationConnector, int32_t ui32OrderNumber, bool bSync)
tResult RemoveNamedGraphObject(const char *strName)
Definition object_intf.h:33
Definition object_list.h:22
Base object pointer to realize binary compatible reference counting in interface methods.
Definition object_ptr_intf.h:112
Definition object.h:397
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
tResult add_paired_connections(IFilterGraph &oGraph, adtf_util::cStringList lstObjectNames, bool bSync=true)
tResult get_filter_graph_object(const IFilterGraph &oGraph, ucom::ant::iobject_ptr< ucom::ant::IObject > &pObject)
tResult add_piped_connections(IFilterGraph &oGraph, adtf_util::cStringList lstObjectNames, bool bSync=true)
tResult get_filter_graph_objects(const IFilterGraph &oGraph, ucom::ant::iobject_enum< ucom::ant::IObject > &lstObjects)
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14