Lumiera  0.pre.03
»edit your freedom«
operationpoint.cpp
Go to the documentation of this file.
1 /*
2  OperationPoint - abstraction representing the point where to apply a build instruction
3 
4  Copyright (C)
5  2008, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 * *****************************************************************/
13 
14 
25 #include "steam/asset/media.hpp"
26 #include "steam/asset/proc.hpp"
28 #include "steam/streamtype.hpp"
29 //#include "common/util.hpp"
30 
31 //#include <boost/ptr_container/ptr_vector.hpp>
32 
33 namespace steam {
34 namespace mobject {
35 namespace builder {
36 
37 // using util::isnil;
38  using engine::NodeFactory;
39 
41  struct PNode
42  {
43  ;
44  };
45 
46 
47  struct RefPoint
48  {
49  NodeFactory& alloc_;
50 
51  vector<PNode> sources_;
52  const StreamType * sType_;
53 
54 
56  RefPoint (RefPoint const& pred)
57  : alloc_(pred.alloc_),
58  sources_(pred.sources_),
59  sType_(pred.sType_)
60  { }
61 
63  RefPoint (NodeFactory& nFactory, asset::Media const& srcMedia)
64  : alloc_(nFactory),
65  sType_(0)
66  {
67  establishMediaChannels (srcMedia);
68  deriveSourceStreamType ();
69  }
70 
71 
72  private:
73  void
74  establishMediaChannels (asset::Media const& srcMedia)
75  {
76  UNIMPLEMENTED ("find out about the actual channels for this stream to connect");
77  }
78 
79  void
80  deriveSourceStreamType ()
81  {
82  UNIMPLEMENTED ("calculate / decide on the effective stream type used within this pipe");
83  }
84 
85  };
86 
87 
88 
89  OperationPoint::OperationPoint (NodeFactory& nFact, asset::Media const& srcMedia)
90  : refPoint_(new RefPoint (nFact, srcMedia))
91  { }
92 
93 
94  OperationPoint::OperationPoint (RefPoint const& sourcePoint)
95  : refPoint_(new RefPoint (sourcePoint))
96  { }
97 
98 
99  void
101  {
102  UNIMPLEMENTED ("Actually-really-finally create a node corresponding to this processing asset");
103  }
104 
105 
106  void
108  {
109  UNIMPLEMENTED ("Actually-really-finally do a mixing output connection");
110  }
111 
112 
113 
114 }}} // namespace steam::mobject::builder
Framework for classification of media streams.
key abstraction: media-like assets
Definition: media.hpp:63
Media data represented a specific kind of Asset.
Steam-Layer implementation namespace root.
void attach(asset::Proc const &)
create node(s) corresponding to the given Processor-Asset and wire them as a successor to this Operat...
Create processing nodes based on given objects of the high-level model.
Data processing Plugins and Codecs can be treated as a specific Kind of Asset.
A point in the render node network under construction.
key abstraction: data processing asset
Definition: proc.hpp:63
A factory to build processing nodes.
RefPoint(RefPoint const &pred)
just continue connection chaining
RefPoint(NodeFactory &nFactory, asset::Media const &srcMedia)
initiate a connection chain at a real source
Abstraction to represent the current point of operation within the builder.
void join(OperationPoint &target)
connect the output this OperationPoint refers such as to connect or combine with the input of the alr...