Lumiera  0.pre.03
»edit your freedom«
play-process.cpp
Go to the documentation of this file.
1 /*
2  PlayProcess - state frame for an ongoing play/render process
3 
4  Copyright (C) Lumiera.org
5  2011, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 * *****************************************************/
22 
23 
32 #include "lib/itertools.hpp"
33 
34 //#include <string>
35 //#include <memory>
36 //#include <functional>
37 
39 using lib::append_all;
40 
41 
42 namespace steam {
43 namespace play {
44 
45 // using std::string;
46 // using lumiera::Subsys;
47 // using std::bind;
48 
49 
50  namespace { // Implementation details...
51 
52 
53  } // (End) hidden service impl details
54 
55 
56  PlayProcess::PlayProcess (OutputFeeds feeds)
57  : outputFeeds_(feeds)
58  {
59  if (isnil (feeds))
60  throw error::State{"creating a PlayProcess without any usable output connections"
61  , LERR_(CANT_PLAY)};
62  }
63 
64 
65 
71  PlayProcess::initiate (ModelPorts dataGenerators, FeedBuilder activeOutputFeedBuilder)
72  {
73  OutputFeeds newFeeds;
74  append_all (transform (dataGenerators, activeOutputFeedBuilder), newFeeds);
75  return new PlayProcess (newFeeds);
77 // treat_all(dataGenerators)
78 // .apply (activeOutputFeedBuilder)
79 // .buildVector();
80  }
81 
82 
83 
84 
85 
87  Feed::Feed (engine::CalcStreams const& newActiveRenderingConnections)
88  : renderStreams_(newActiveRenderingConnections)
89  { }
90 
91 
92 
93 }} // namespace steam::play
Primary service of the Player subsystem: Starting and controlling render/playback.
Feed(engine::CalcStreams const &)
building a Feed effectively requires the definition of a rendering plan through the EngineService...
Strategy to hold all the detail knowledge necessary to establish a running render CalculationStream...
Steam-Layer implementation namespace root.
Playback/Render process within the Lumiera Player.
Derived specific exceptions within Lumiera&#39;s exception hierarchy.
Definition: error.hpp:199
_TransformIterT< IT, FUN >::Iter transform(IT &&source, FUN processingFunc)
pipes a given Lumiera Forward Iterator through a transformation function and wraps the resulting tran...
static PlayProcess * initiate(ModelPorts dataGenerators, FeedBuilder)
Factory: Initialise and configure a new PlayProcess.
Helpers for working with iterators based on the pipeline model.
Organisational unit of an ongoing render- or playback process.