ADTF
Loading...
Searching...
No Matches
streaming_graph.h
Go to the documentation of this file.
1
7#pragma once
9#include "graph.h"
10#include "filtergraph_intf.h"
13
14#include <optional>
15
16
17namespace adtf
18{
19namespace streaming
20{
21namespace ant
22{
23
24class cStreamingGraph : public named_graph_object<graph<IStreamingGraph>>
25{
26
27 private:
30
31 tResult SetStateImpl(tStreamingState eFromState,
32 tStreamingState eToState,
33 tStreamingState& eErrorState,
34 std::optional<IFilterGraph::tFilterGraphState> eFilterGraphSubState) const;
35
36 public:
37 virtual ~cStreamingGraph();
38
39 tResult AddNamedGraphObject(const ucom::ant::iobject_ptr<INamedGraphObject>& pItem,
40 int32_t ui32OrderNumber) override;
42 tResult RemoveNamedGraphObject(const ucom::ant::iobject_ptr<INamedGraphObject>& pGraphObject) override;
43
44 tResult AddStreamIn(const char* strName,
45 const char* strSampleStreamSource,
46 const char* strSampleStreamPin,
47 const char* strAlias);
48 tResult AddStreamOut(const char* strName,
49 const char* strSampleStreamSink,
50 const char* strSampleStreamPin,
51 const char* strAlias);
52
53 tResult AddStreamInterfaceIn(const char* strName,
54 const char* strSampleStreamSource,
55 const char* strSampleStreamPin,
56 const char* strBindingProxy);
57 tResult AddStreamInterfaceOut(const char* strName,
58 const char* strBindingProxy,
59 const char* strSampleStreamSink,
60 const char* strSampleStreamPin);
61
62 tResult AddConnection(const char* strName,
63 const char* strSourceName,
64 const char* strSourceConnector,
65 const char* strDestinationName,
66 const char* strDestinationConnector,
67 int32_t ui32OrderNumber,
68 bool bSync);
69
70 public:
71 tResult SetState(tStreamingState eState) override;
72 tStreamingState GetState() override;
73
74 public:
84
85 private:
86
87 tResult RegisterFilterGraph(IFilterGraph& oFiltergraph);
88 tResult UnregisterFilterGraph(IFilterGraph* oFiltergraph);
89
90 template<typename T>
91 tResult AddStreamPort(const adtf_util::cString& strPrefix,
92 const ucom::object_ptr<T>& pPort,
93 uint8_t eCat);
94
95
96 template<typename T>
97 tResult AddStreamInterfacePort(const adtf_util::cString& strPrefix,
98 const ucom::object_ptr<T>& pPort,
99 uint8_t eCat);
100
101 tResult RegisterFiltergraphStreamPorts(const adtf_util::cString& strPrefix,
102 IFilterGraph& oFiltergraph);
103
104 void DestructAllObjects();
105 void DestructObject(ucom::ant::object_ptr<IStreamingService> pService);
106
107 tResult Init() const;
108 tResult Shutdown(std::optional<IFilterGraph::tFilterGraphState> eFilterGraphSubState) const;
109 tResult StartStreaming() const;
110 tResult StopStreaming() const;
111
112};
113
136
146
147}
148
152}
153
154}
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition filtergraph_intf.h:24
IFilter::tFilterState tFilterGraphState
Definition filtergraph_intf.h:47
Definition streaming_graph_intf.h:60
tStreamingState
State Levels for the streaming graph.
Definition streaming_graph_intf.h:68
@ State_Constructed
Definition streaming_graph_intf.h:74
tResult RemoveNamedGraphObject(const char *strName)
Definition streaming_graph.h:25
tResult SetFiltergraphSubState(IFilterGraph::tFilterGraphState eFilterGraphState)
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_ptr.h:384
Namespace for all functionality of the ADTF Streaming SDK provided since v3.0.
Definition bindingproxyoutport.h:16
tResult get_streaming_graph_objects(const IStreamingGraph &oGraph, ucom::ant::iobject_enum< ucom::ant::IObject > &lstObjects)
tResult get_streaming_graph_object(const IStreamingGraph &oGraph, ucom::ant::iobject_ptr< ucom::ant::IObject > &pObject)
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14