Lumiera  0.pre.03
»edit your freedom«
libgavl.hpp
Go to the documentation of this file.
1 /*
2  LILBGAVL.hpp - facade for integrating the GAVL media handling library
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 
24 #ifndef STEAM_EXTERNAL_LIBGAVL_H
25 #define STEAM_EXTERNAL_LIBGAVL_H
26 
27 
29 
30 
31 
32 namespace steam {
33 namespace external {
34 
35 
36  using lib::Symbol;
37 
38  typedef StreamType::ImplFacade ImplFacade;
39  typedef StreamType::ImplFacade::TypeTag TypeTag;
40 
41 
42  class LibGavl;
43 
53  : public ImplFacade
54  {
55  protected:
57  : ImplFacade("GAVL")
58  { }
59 
60  friend class LibGavl;
61 
62  public:
63  virtual bool operator== (ImplFacade const& other) const;
64  virtual bool operator== (StreamType const& other) const;
65 
66  virtual bool canConvert (ImplFacade const& other) const;
67  virtual bool canConvert (StreamType const& other) const;
68 
69  virtual StreamType::MediaKind getKind() const;
70  virtual DataBuffer* createFrame () const;
71  };
72 
73 
74  class LibGavl
75  : public control::MediaImplLib
76  {
77  protected:
78 
79  public:
80  virtual Symbol getLibID() const { return "GAVL"; }
81 
82  virtual ImplFacadeGAVL const& getImplFacade (TypeTag&);
83  };
84 
85 
86 
87 }} // namespace steam::external
88 #endif
Abstraction to represent (metadata) of an external library to handle media data Lumiera delegates mos...
Concrete media lib implementation facade allowing to work with GAVL data frames and types in an imple...
Definition: libgavl.hpp:52
Steam-Layer implementation namespace root.
Token or Atom with distinct identity.
Definition: symbol.hpp:117
placeholder type for the contents of a data buffer.
Definition: streamtype.hpp:112