Lumiera  0.pre.03
»edit your freedom«
media-impl-lib.hpp
Go to the documentation of this file.
1 /*
2  MEDIA-IMPL-LIB.hpp - facade interface to access an external media handling library
3 
4  Copyright (C) Lumiera.org
5  2008, 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 
36 #ifndef STEAM_CONTROL_MEDIA_IMPL_LIB_H
37 #define STEAM_CONTROL_MEDIA_IMPL_LIB_H
38 
39 
40 #include "steam/streamtype.hpp"
41 
42 
43 
44 namespace steam {
45 namespace control {
46 
47  using lib::Symbol;
48 
49 
51  {
52  protected:
53  virtual ~MediaImplLib() {};
54 
58 
59  public:
60  virtual Symbol getLibID() const =0;
61 
62  virtual ImplFacade const& getImplFacade (TypeTag&) =0;
63  };
64 
65 
66 }} // namespace steam::control
67 #endif /*STEAM_CONTROL_MEDIA_IMPL_LIB_H*/
Framework for classification of media streams.
opaque placeholder (type erasure) for implementation specific type info.
Definition: streamtype.hpp:178
Steam-Layer implementation namespace root.
A (more or less) concrete implementation type, wired up as a facade providing the basic set of operat...
Definition: streamtype.hpp:108
Token or Atom with distinct identity.
Definition: symbol.hpp:126
placeholder type for the contents of a data buffer.
Definition: streamtype.hpp:121