Lumiera  0.pre.03
»edit your freedom«
libgavl.cpp
Go to the documentation of this file.
1 /*
2  ImplFacadeGAVL - facade for integrating the GAVL 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 
30 #include "steam/common.hpp"
33 
34 extern "C" {
35 #include <gavl/gavl.h>
36 }
37 
38 
39 namespace steam {
40 namespace external {
41 
42  using control::STypeManager;
45 
46  void
47  provide_GAVL_stream_implementation_types ()
48  {
49  STypeManager& typeManager = STypeManager::instance();
50  UNIMPLEMENTED ("wire up a ImplFacade for GAVL implemented media streams");
51  }
52 
53  namespace { // internal functionality
54 
55  LifecycleHook _register_gavl_types_ (ON_STREAMTYPES_RESET, &provide_GAVL_stream_implementation_types);
56  }
57 
58 
66  ImplFacadeGAVL const&
68  {
69  TODO ("any chance to verify that the TypeTag actually points to a GAVL frame type descriptor?");
70  UNIMPLEMENTED ("wire up an impl facade with the correct GAVL lib functions for the data type in question");
71  }
72 
73 
74 
75 }} // namespace steam::external
Basic set of definitions and includes commonly used together.
opaque placeholder (type erasure) for implementation specific type info.
Definition: streamtype.hpp:178
Concrete media lib implementation facade allowing to work with GAVL data frames and types in an imple...
Definition: libgavl.hpp:61
Steam-Layer implementation namespace root.
Interface to the stream type system.
static lib::Depend< STypeManager > instance
access the system-wide stream type manager instance.
define and register a callback for a specific lifecycle event.
Definition: lifecycle.h:76
const char * ON_STREAMTYPES_RESET
triggered to load the generic pristine default
virtual ImplFacadeGAVL const & getImplFacade(TypeTag &)
Use an type information struct, which actually has to be a GAVL frame type (TODO), to wire up an ImplFacade such as to deal with GAVL data frames of this type.
Definition: libgavl.cpp:67
Concrete implementation of the MediaImplLib facade to work with libGAVL