provide for the GAVL impl facade to be registered as basic media type.
WIP actual implementation missing...
This commit is contained in:
parent
83b574bdea
commit
f80d0a49bd
2 changed files with 24 additions and 11 deletions
21
src/lib/external/libgavl.cpp
vendored
21
src/lib/external/libgavl.cpp
vendored
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
STypeManager - entry point for dealing with media stream types
|
||||
ImplFacadeGAVL - facade for integrating the GAVL media handling library
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "proc/lumiera.hpp"
|
||||
#include "lib/external/libgavl.hpp"
|
||||
#include "proc/control/stypemanager.hpp"
|
||||
|
||||
extern "C" {
|
||||
#include <gavl/gavl.h>
|
||||
|
|
@ -31,11 +32,24 @@ extern "C" {
|
|||
|
||||
namespace lib {
|
||||
namespace external {
|
||||
|
||||
namespace { // implementation internals
|
||||
|
||||
using control::STypeManager;
|
||||
using control::ON_STREAMTYPES_RESET;
|
||||
using lumiera::LifecycleHook;
|
||||
|
||||
void
|
||||
provide_GAVL_stream_implementation_types ()
|
||||
{
|
||||
STypeManager& typeManager = STypeManager::instance();
|
||||
UNIMPLEMENTED ("wire up a ImplFacade for GAVL implemented media streams");
|
||||
}
|
||||
|
||||
namespace { // internal functionality
|
||||
|
||||
LifecycleHook _register_gavl_types_ (ON_STREAMTYPES_RESET, &provide_GAVL_stream_implementation_types);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Use an type information struct, which actually has to be
|
||||
* a GAVL frametype (TODO), to wire up an ImplFacade such
|
||||
|
|
@ -49,7 +63,6 @@ namespace lib {
|
|||
TODO ("any chance to verify that the TypeTag actually points to a GAVL frame type descriptor?");
|
||||
UNIMPLEMENTED ("wire up an impl facade with the correct GAVL lib functions for the data type in question");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
14
src/lib/external/libgavl.hpp
vendored
14
src/lib/external/libgavl.hpp
vendored
|
|
@ -34,18 +34,20 @@ namespace lib {
|
|||
|
||||
|
||||
using lumiera::Symbol;
|
||||
|
||||
|
||||
using lumiera::StreamType;
|
||||
typedef StreamType::ImplFacade ImplFacade;
|
||||
typedef StreamType::ImplFacade::TypeTag TypeTag;
|
||||
|
||||
|
||||
|
||||
class LibGavl;
|
||||
|
||||
/**
|
||||
* Concrete media lib implementation facade
|
||||
* allowing to work with GAVL data frames and types
|
||||
* in an implementation agnostic way
|
||||
* in an implementation agnostic way.
|
||||
* @note GAVL types are automagically registered into the
|
||||
* control::STypeManager on reset and thus are always available.
|
||||
*/
|
||||
class ImplFacadeGAVL
|
||||
: public ImplFacade
|
||||
|
|
@ -67,7 +69,7 @@ namespace lib {
|
|||
virtual DataBuffer* createFrame () const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class LibGavl
|
||||
: public control::MediaImplLib
|
||||
{
|
||||
|
|
@ -78,9 +80,7 @@ namespace lib {
|
|||
|
||||
virtual ImplFacadeGAVL const& getImplFacade (TypeTag*);
|
||||
};
|
||||
|
||||
|
||||
////////////////////////////////////TODO: dafür sorgen, daß sich das beim Systemstart in den control::STypeManger einklinkt!!!!!!!!
|
||||
|
||||
|
||||
|
||||
} // namespace external
|
||||
|
|
|
|||
Loading…
Reference in a new issue